I would like to do something in Org-Mode, but I'm not sure how to achieve it in the best way.

I basically want to be able to have an item in my agenda every few days that reminds me every few days to work on a personal project. The reminder should reflect the current sub-task. I don't want to be pressured by fixed deadlines (weekly or daily).

How can I do this?

What I have

Let's say I would like to do something that involves multiple small steps. Naturally I would break it down like this:

** TODO Work through the book Practical Common Lisp
*** TODO Read chapter 1 of PCL
*** TODO Read chapter 2 of PCL
*** TODO Read chapter 3 of PCL

I use book chapters as an example, but I would use this for other, more abstract tasks, too.

What I want (I guess)

I would like to have an entry in my agenda that reminds me to do this. More specifically it would be nice, if the following things were true:

  1. There is only one entry in the agenda (i.e. not all children).
  2. The entry in the agenda changes (i.e. not the parent item).
  3. When one sub-task is set to DONE, it takes a (configurable) number of days until the next item is shown in the agenda.

I am imagining (3) similar to how ".+5d" in a SCHEDULED timestamp would repeat a TODO five days from today.

The problem

At the moment to me it seems I can always only have only two of the three points above. I can set a repeating timestamp on the parent heading, but that will always only show the general heading, not the particular task. Relative rescheduling (or repeating) for child tasks does not make sense, but I also don't want fixed deadlines here.

Thoughts on a solution

I haven't used Org Mode's habits feature, but it seems related. Also I considered using TODO dependencies as suggested in this answer, maybe org-depend, or something using a single NEXT for only one child heading. However, right now I can't see how the relative scheduling of child headings could work in both cases. There is a similar question with the suggestion to use org-clone-subtree-with-time-shift, but I don't want copies, I already have them.

I'm about to cook something up in Elisp (I am learning since the summer). However this problem seems really not that uncommon, so I wondered whether somebody knows better existing solutions. I'm also open to completely quite other suggestions that achieve the same thing, in case I'm missing something obvious. I want to keep task and sub-tasks represented as Org Mode's parent and child headings.

Edit: Current workaround

My current workaround is a list of checkboxes ("- [ ] ...") under a parent heading that contains a cookie (e.g. "[5/12]") and a file: link. The link points to the same file and contains a regex that matches the first unchecked checkbox with some arbitrary keyword, which I've appended to checkbox line. While this approach allows me to quickly jump to the next item, the item is not shown in the agenda.

In case somebody is interested, the link looks like the following. I somehow wasn't able to figure out quickly how to escape [ and ], so I used a dirty . instead (enough for me in this case).

file:~/doc/org/inbox.org::/^- . . .* #offload$/
  • You might consider setting a single multipart TODO Read book [ ] task with a repeating interval set to ++1w. This indicates you want to work on this project weekly. You could then list each part of the task as a checkbox, ` - [ ] Chapter 1`. That would give you a weekly reminder for your task, and a way to check off your progress through each chapter.
    – Tyler
    Commented Dec 8, 2020 at 19:02
  • @Tyler Thank you for your response! Your suggestion is good and comes pretty close to my current workaround, which I forgot to include. I've added a paragraph on that at the end. Commented Dec 8, 2020 at 19:37


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Browse other questions tagged or ask your own question.