I want to know how can I set a repetitive task for only a range of days of the week, for instance from Monday to Friday only.
This special sexp diary entry will repeat the TODO on weekdays:
** TODO On Weekdays <%%(let ((dayname (calendar-day-of-week date)))(memq dayname '(1 2 3 4 5)))> [2015-02-01 So]
1This doesn't seem to work properly. While it does cause the event to display in the agenda on weekdays, it doesn't work correctly with the repeating-todo functionality. When I mark the task as DONE, it doesn't return to the TODO state.– user3871Aug 24, 2015 at 22:04
6The diary sexps are not meant to work with rescheduling. If you depend on this, it's probably easier to set up multiple todo entries, one per weekday. Aug 26, 2015 at 8:31
Thanks, but I'm confused: assuming a TODO entry will be marked DONE when it's done, how is a repeating sexp useful if it doesn't cause the TODO to get rescheduled?– user3871Aug 29, 2015 at 17:47
Citing the Org-mode manual: "the use of diary sexp entries like
<%%(diary-float t 42)>in scheduling and deadline timestamps is limited. [...] However, it will show the item on each day where the sexp entry matches". Aug 30, 2015 at 6:21
I suppose, then, that you could use an agenda view that displays DONE items, and then manually mark it TODO and then DONE again. Too bad that the sexps can't just work with repeating items. :(– user3871Sep 2, 2015 at 7:41
The great org-habit module lacks a way to handle a very common type of habits, those that can/may/must be executed only on certain weekdays. There exist several workarounds like creating a habit for each day of interest, but they are less flexible and spoil the beauty of Org.
This little enhancement aims to fill the gap. It’s a fork of the original org-habit module and most of the internals are left untouched.
The desired minimum.
How it works
As simple as specifying the weekdays (1 = Monday, 7 = Sunday, space separated), on which a habit is expected to be performed, in the :HABIT_WEEKDAYS: property.
Expect consistent behaviour only for “.+”-style habits. The “+”- and “++”-style habits are better, at least for now, to be used the original way.
I was currently searching for the same functionality and came across this solution from org-mode FAQ
** Daily meeting <%%(memq (calendar-day-of-week date) '(1 2 3 4 5))>
It works for me. I am using Emacs 27.1 on Debian 11.
Make a repeating entry for Monday and then use Org's timeshift to create additional entries for Tuesday to Friday.
1Humm... could you expand your answer with an example? Thank you!– shackraFeb 1, 2015 at 9:06
3@shackra For anybody still wondering, I think what he meant is just to create like five entries with the same name in parallel, just with different scheduled times. e.g. this one: emacs.stackexchange.com/questions/26610/…– xjiSep 1, 2016 at 16:03