Implement "delay" cookies for scheduled items.
commit8ecc966292f322ec6d0d0fb29e1087a55d22975f
authorBastien Guerry <bzg@altern.org>
Tue, 5 Feb 2013 16:35:51 +0000 (5 17:35 +0100)
committerBastien Guerry <bzg@altern.org>
Wed, 6 Feb 2013 16:23:24 +0000 (6 17:23 +0100)
treed428f070539ac92b3a037682debbdbc8be1603c1
parent8517be79b5c1fe165d23ea65ad70a282e9c595bb
Implement "delay" cookies for scheduled items.

* org-agenda.el (org-agenda-skip-scheduled-delay-if-deadline):
New option.  The structure of the possible values is copied
from `org-agenda-skip-deadline-prewarning-if-scheduled'.
(org-agenda-get-scheduled): Honor the two new option,
`org-scheduled-delay-days' and
`org-agenda-skip-deadline-prewarning-if-scheduled'.  I.e. if a
scheduled entry has a delay cookie like "-2d" (similar to the
prewarning cookie for deadline), don't show the entry until
needed.

* org.el (org-deadline-warning-days): Small docstring fix.
(org-scheduled-delay-days): New option (see
`org-deadline-warning-days'.)
(org-get-wdays): Use the new option.

Thanks to Andrew M. Nuxoll and Michael Brand for this idea.

You can now use a "delay cookie" in scheduled items.  For example,

* TODO Sleep
  SCHEDULED: <2013-02-06 mer. -3d>

will not be shown on 06/02 but on 09/02, three days later.

The value of the cookie overrides any value of `org-scheduled-delay-days',
unless `org-scheduled-delay-days' is negative (same logic than for
`org-deadline-warning-days'.)

Also check org-agenda-skip-scheduled-delay-if-deadline, which does for
delay cookies what `org-agenda-skip-deadline-prewarning-if-scheduled' does
for prewarning deadline cookies.
lisp/org-agenda.el
lisp/org.el