Request: scrip to select all unfinished task and move to tomorrow

i am looking for a script that would select all of my task unfinished in my forecast view for today and move them to tomorrow. ideally this would work on ios and mac devices

What makes them appear on Forecast for today? Due date is today, defer date is today, forecast tag is set, …

If you put in the work to set up the criteria, then there‘s a good chance I could help.

thanks for your guidances i was looking at shortcuts but alas i cannot find “get due date” that is = to today.

I found this script but it looks for a spécifique project and i would like one that look for all that have a due date = to today


Could it be you miss a day and the due day is yesterday? What should happen then?

i am looking for a plugin that would just be for all item that are due in my forecast view for today and move them to tomorrow, 1 click moves all of the items not completed in my forecast for today to tomorrow

Yeah, but I need really specific criteria in order to build you something.

so lets say there is 4 task in my forecast view for today that I know I will not be getting too today.

Ideally I would like an automation that would take all task that are do today and move them to tomorrow, that is what I do manually with all of my unfinished task every night with my shutdown routine

task x due today at 15:00H
the plugin when run would move it to tomorrow and it would now be
task x due tomorrow at 15:00H

and do the same with all tasks that on in the todo list for today.


What if any of these tasks has a forecast tag?
What about deadlines?
What if defer is not today, but yesterday. Could this happen? What should happen then?

I would think that everything should stay the same this would just be to move the task that I did not get too today onto tomorrow list in my forecast view so lets say that I have 3 tasks that are not done for today at the end of the day and 1 in my forecast view tomorrow after running the script I would now have 4 on my forcast view when i look tomorrow after running the script but I would think that all of the other meta information for that task stay the same

OK, one last question:
You run the script on today. All actions with defer date of today get their defer day set to tomorrow (same time as they had before). Correct?

yes correct i would think that is the best approach.
Thank you

That should do it. Worked in my tests.

In line 26 there‘s an commented
that you could uncomment in order to see in OF’s console which tasks it changed.

ExtendDueDatePlusOneDay.omnifocusjs (1.5 KB)

Get back to me if you‘d find any issue.

I use the forecast perspective to show all due and overdue. If there are items that are overdue, it will show up in a grouping called “Past Due”. I can tap on the “Past Due” cell to see them or deselect a Forecast day box to see everything.

1 Like

wow this is exactly what I was looking for and it works perfectly THANK YOU SO MUCH.

@wilsonng do you add the « Past Due » Tag via the script that is a good idea.

@Logan thanks again this is so appreciated and will make life a lot of easier for me.

1 Like

I tried to add the Past due Tag to all of the task being moved to the next day. by adding
task.addTag(tagNamed(‘Past Due’)); on line 32 but that generated an error.

I‘m sorry, I don‘t understand. You want the tasks that got their due date moved by 1 day get a tag as well?

Just confirm and I‘ll make the modification. Precondition: the tag already exists in your database.

Yes, I would like the Tag « Past Due » to be added to all of the task that are moved by the script

for example
i have a task in my forecast for today
i run the script you created
the task is moved to tomorrow and the tag “Past Due” is added to the task.

This time I didn’t set up any text data for testing. But I‘m quite confident that does the trick.

Version 1.1
ExtendDueDatePlusOneDay.omnifocusjs (1.7 KB)