Org mode: How to schedule repeating tasks for the first Saturday of every month?
Org Mode has a great documentation, use it.
(info "(org) Deadlines and scheduling")
You may use timestamps with repeaters in scheduling and deadline entries. Org mode will issue early and late warnings based on the assumption that the timestamp represents the nearest instance of the repeater. However, the use of diary sexp entries like `<%%(diary-float t 42)>' in scheduling and deadline timestamps is limited. Org mode does not know enough about the internals of each sexp function to issue early and late warnings. However, it will show the item on each day where the sexp entry matches.
* My Task
<%%(diary-float t 6 1)>
org-float
is now obsolete (see this commit). From now on, you'll have to use diary-float
in place of org-float
.
(Sorry for the noise: this does not deserve a full answer, but for now I don't have enough "reputation" to comment.)
Using sexp in scheduling and deadline timestamp is limited,like info says
Org mode does not know enough about the internals of each sexp function to issue early and late warnings.
I write a elisp code to change the timestamp automatically,with it,all you need to do is setting a property.
the elisp code is here
add
(load "/path/to/next-spec-day")
to your dot emacs file.set
NEXT-SPEC-DEADLINE
and/orNEXT-SPEC-SCHEDULED
property of a TODO task,like this:* test :PROPERTIES: :NEXT-SPEC-SCHEDULED: (org-float t 6 1) :END:
The value of NEXT-SPEC-SCHEDULED is a sexp will return
non-nil
ifdate
is the first Saturday of the monthThen,when you change the TODO state of that tasks,the timestamp will be changed automatically(include lead time of warnings settings).It becomes:
* TODO test SCHEDULED: <2013-01-05 Sat> :PROPERTIES: :NEXT-SPEC-SCHEDULED: (org-float t 6 1) :END: