Dealing with actions due after previous action completion?

I have a repeating sequential project that has this structure (w/contexts):

  1. Request prescription from doctor (Online)
  2. Get email from doctor about prescription (Waiting)
  3. Pick up prescription from doctor (People:Doctor)
  4. Take prescription to drugstore (Errands:Drugstore)
  5. Get notification from pharmacy that prescription is ready (Waiting)
  6. Pick up prescription from drugstore (Errands:Drugstore)

While the entire project has defer and due dates (repeating with the Repeat Every method because I need my new prescription at regular calendar intervals), the due dates for internal actions are hard to figure out.

Some of these work with standard OmniFocus repetition date behavior. For instance, Action 1 (Request prescription from doctor) needs completion by the day after the defer date, Action 2 (Get email from doctor about prescription) needs to be due by 5 p.m. the same day, and Action 4 (Take prescription to drugstore) needs completion by the day before the project due date, and Action 6 (Pick up prescription from drugstore) just has the same due date as the overall project. These just work when I set the actions’ dates and repeat the project.

But two actions’ due dates don’t work that well. Action 3 (Pick up prescription from doctor), for instance, needs to be done by 5 p.m. after Action 2 (Get email from doctor about prescription) is completed, and Action 5 (Get notification from pharmacy that prescription is ready) needs to have a due date by the morning after the previous Action 4 (Take prescription to drugstore) is done.

AFAIK, there’s no way to make a defer or due date explicitly relative to the previous action. So I’m wondering how you might deal with a dependency like this? I know there are scripts to help with this kind of thing (like Complete and Await Reply), and I’ve seen people put in extra actions like:

  1. Await something (Waiting)
  2. Modify due date of next action (OmniFocus)
  3. Do something based on #1’s completion

But I’m wondering if there are other ways people have attacked this problem that I might consider. Thanks for any thoughts!

(Two ancillary points: I use the convention of making the due date of Waiting context actions be the latest point by when I should have expected a reply, and the reason I’m being so meticulous for having due dates on each action in this project is that these medications can be hard to get and insurance requires I refill on a precise date, not too early or late, so getting these right is important.)

For similar projects, I’d just add a meta comment in the precedent task, when extra (meta) work is needed

eg. In this case, as you said your problem is on Tasks 3 and 5, I’d change tasks 2 and 4 to be:
2. Get email from doctor about prescription → && set Due date on next task for 5pm (Waiting)
4. Take prescription to drugstore → && set Due date on next task for next morning (Errands:Drugstore)

This is my workaround, but I’d also love OF to be more flexible and implement such complex dependencies. Suggestion: submit a feature request through email, through Help>Contact Omni in the app itself ;-)

1 Like

I’ve done this (make the task description “complete something and then set the date for the next action”, but since I often complete stuff using the iPad app and I don’t want to mess with dates too much outside of the Mac application, I’ve found it better to use the multiple-action method

  • Complete thing
  • Set date of next action
  • Next action

I’ll definitely put in a feature request, though, thanks for the suggestion.

1 Like

I’ve also run into that, and for cases when I know I’ll be using iOS most probably I also do that.
With one important details: set the intermediate/meta actions (in your case above “set date of next action”) with the same context as the one immediately before, just so they appear immediately after I check the previous one despite the view/perspective I’m in at a given moment ;)

To my knowledge, OmniFocus doesn’t provide the kind of automatic due date walking back such that, if a goal has to be done on a certain date, then predicate action A has to be done by date A, action B by date B, etc.

If it were me, I would approach this as more of a priority thing. That is, if there is anything to be done in the pick up prescription project, it has to be done before anything else. That is, I don’t have to set a due date for picking up the prescription, because the first time that is available, I’m going to pick it up.

To reflect relative importance, I do a lot of work out of a perspective that is organized by project. I glance at the forecast; but if the thing due on a particular day is not more important than the top project, I stick in the top project. It sounds like that would be the case for your prescription project.