Sequential projects: due date calculated on completion date of previous task

Even though I have been using OmniFocus since version 1, I’m still unable to create a sequential project where the due date of an action is dependent on the completion date of the previous one. For example, I could be waiting for input on something, and once received the input (completing this task also) having 5 days to complete the following step.
Is there a way to do this?
Thanks!

1 Like

I see no really good way.

There could be some wizardry you share the successor action to. It would generate a URL in your clipboard that embeds a plugin setting the desired offset when run. You would paste the URL to the predecessor action and run it before you complete that action.
Would be an interesting project, but not a really nice solution.

You could use a wizardry plugin/Apple Shortcut that runs daily. It would check (completed within sequential projects?) actions and look for some note like (due successor 5d). If found, the successor would get its due date set 5d into the future.

There are certainly more options, but I‘m running out of time. We could talk about both options.

1 Like

Thanks for these ideas. I use a few taskpaper based shortcuts to create projects based on templates, but I have basically no scripting abilities. Would it be possible to trigger a script when completing a task?

Unfortunately no. That’s why I was mentioning the URL you would need to trigger and a plugin/Apple Shortcut that would daily check. Which would be two different solutions.

I want this too, and I’m surprised that they haven’t added it as a feature yet.

I wouldn’t have expected it to be in early versions (and I don’t think it’s in any competing product), but this sort of feature is exactly what sets Omnifocus apart from other products.

Have to agree. I found in the forums here similar feature requests as far back as 2014, but evidently there are not many asking for it. I was hoping that at least with the new automation support it could be possible to do something within the app.

Thanks. I must admit that, as you state, these solutions seem quite cumbersome and not very easy to implement. At least not for me…

What use cases would these be? Usually, I would complete the action and look into the project and check if the next action is in place.

Well, typical case is a work project, of which I have to follow many. When I ask one of my colleagues to do a certain task, I use a shortcut to automatically create a project whose first task is waiting for input, with a certain deadlines that the shortcut asks me to indicate. When I receive the input and mark it as completed, the second task is for me to act on. At the moment, the only way to try to mark the urgency of the thing is that it is to automatically flag my new action. But ideally I should be able to set a specific deadline for me, like 3 days after receiving the input
It is not realistic, when checking out the first action (the received input form a colleague), to also have a look at the next action and put a deadline for my next step. Or maybe it could be done, but it’s a waste of time (I have many things to follow) and goes against the very idea of OF as a reliable companion to take out the stress of organisation form your brain…
I hope I have been able to explain clearly, otherwise ask away.
Thanks!

If this for follow-ups to completed actions, how about a perspective like this? Anything you tag will show up several days after completion and stay there until you untag it.

Thanks for the suggestion. In fact, I’m already doing something similar since I flag the action that follows the completed task, so as to make it more visible in my perspective.

The exact approach the OP is asking for isn’t built in. But there are a few ways to get close to it.

If the waiting on task has a due date, you can set the due date for the next task when you create the project. For example, let’s say your task is due 5 days after the one you are waiting on. I do this for many projects in mine. If the one you are waiting on is due October 15, you can make your task due October 20. However, if the waiting on task delivers before the due date like October 13th, your task would still be due Oct 20th. If it needs to be 5 days since completion rather than when it was due, you could then manually update the due date to be October 18th.

Alternatively you could use the automation functions in OmniFocus to adjust the due date of your task based on the completion date of the preceding one. You could configure it to update the due date to X days after the completion of the prior task. This isn’t automatic though, you’d need to run the automation. And if you mark the task you are waiting on as complete a day or two after it actually completed, OF has no way to know about the delay & would use the completion date recorded on the waiting on task.

The challenge overall is an individual user’s needs about when the next task is due is hard to model. Is it X days from when the preceding task is marked as complete, or X days from when the task was actually completed? Is it X days from when the preceding task was due? There are several variations possible and since OF wouldn’t have visibility into all of them, it’s near impossible to create a system that would address them built-in.

Thanks for your suggestions. I had already tried the first one (set a deadline for me at the beginning), but it’s not very useful as I really need e flexible deadline depending on the completion of the previous task, for which a date is sometimes difficult to estimate.
As for the second solution, there is no complexity whatsoever in my requirement, as the deadline would have to be calculated from the moment of marking the previous task as completed (which is the only logical position in my view, let’s not create useless complications). The problem is, if I have to launch manually an automation to put the due dates, the system becomes increasingly brittle, as it requires manual intervention.
To be clear, i very much appreciate all your suggestions. However, I think it’s pretty lame that a software as refined as OF, which is now very “old” and mature, does not have what seems to me, on the face of it, a pretty basic function. Sad also that an automation script cannot be triggered automatically when completing a task.

1 Like

I realize the lack of automation on task completion can be frustrating. There was a comment by @kcase at the end of 2022 that raised some of the additional complexity from the platforms OF is available on. For example, if you mark a task as complete on your watch (which doesn’t have automation capability), it could become brittle to execute.

There is a natural tension of having access to your tasks everywhere (like Web or your watch) and having advanced features. While the syncing approach allows you to see and complete your tasks on all devices, UI limitations mean not every feature is available on every platform. So advanced rules that are customizable across platforms is a challenge.

Maybe there could be a way to leverage some of the repeating tasks framework to get close? I use these quite a lot and you can configure it to repeat either defer or due at the interval between repeats. So if for example I need clean the fish tank every 30 days, I can have a repeating task setup that sets the new due date 30 days after I last completed it. That’s the closest to what you are trying to do. But a repeating task interval vs the interval between discrete tasks are different and may be hard to implement in a way that users can easily understand, not misconfigure and deliver value.

1 Like

How would you mark the successor action to show how much after the predecessors completed date you need the due date?

When predecessors completed date is yesterday 12;53. Whatever date/time should be set in the successor case?

What would be the smallest time distances between predecessor and successor?

I‘m actually thinking of building something (a plugin) for this topic, but need more input of how a solution should look like.

Thanks for your continued interest in the topic! In my view an ideal solution would be one where the user could put in the “due date” field of the second task something like “+2” to indicate that the due date should be 2 days after completion of the previous task. The hour should be, as usual, determined by user and otherwise put by default by the software (for me at 6 PM).

Putting a +2 in the due field is technically not possible. You could write +2 in the note or in (+2) in the title of the action.

Would it always be days?

It’s probably not possible to determine the default due time of OF settings.

Sorry I was not clear. I know that putting +2 in the due date field is not possible. I was just describing how a future implementation in OF could work, in my very humble opinion. I think someone else suggested this in the past.
As far as my needs are concerned the deadline of “task 2” would always be a few days after the completion of “task 1”.

Understood