Set Selected Projects to Be Reviewed in 40 Years

I automate creating a lot of projects for various things, and they have different start dates. Selecting multiple projects with various review dates makes the review of every option disappear. I do not see any way to AppleScript this, nor have I found any plug-ins that allow me to set the Review amount to the same values for multiple selected projects.

This script allows me to just push all the selected projects to be reviewed again in 40 years. I set it to 99 initially but then it looped around and made it look like it was a year old since it doesn’t show a four digit year date.

on run
	tell application "OmniFocus"
		tell front document
			tell document window 1
				set selectedTrees to selected trees of sidebar
				repeat with aTree in selectedTrees
					if class of value of aTree is project then
						my processProject(aTree)
					end if
				end repeat
			end tell
		end tell
	end tell
end run

on processProject(theProjectAsTree)
	using terms from application "OmniFocus"
		set aProject to value of theProjectAsTree
		set lastChangedDate to modification date of aProject
		set next review date of aProject to lastChangedDate + (40 * 365.25 * 24 * 60 * 60) --Change 40 in this to the amount of years you would like to review the project again
	end using terms from
end processProject

For anyone using Keyboard Maestro here is a set of 6 macros that moves the next review for OmniFocus selected projects.

OmniFocus Macros Review (13.1 KB)

I made some plugins to set the review date and cycle. Specify what you need and I set this up for you.

Review cycle of selected projects to 40 years as a plugin.

SetReviewCycle40y.omnifocusjs (921 Bytes)

If you want the review date could be set to e.g. 2099 as well. That‘s what I use. Then I set the review date when I need a review of a project.

1 Like

That’s great where do you find them? When I type in review here I get nothing OmniFocus Plug-In Collection

Very nice thank you!

@skillet These plugins are not published anywhere.

Some time ago I got annoyed by OF to tell me to review my projects e.g. Saturday. But Saturday I went hiking with my family. Still projects were on Review. Then there were projects when the review cycle did not match the actual needs. Thus, I said to myself: I decide when I do a (GTD) weekly review.

This lead me to the first plugin: EditAllReviewDateCycles
Which sets all review cycles to 12 years (nice number) and a review date of somewhere in 2099.
With that I was able to have no project with a review date not to my needs.

Then I started to really differentiate between active projects and on hold projects. So I put fewer projects to status active and more projects on hold. Just had too many active topics. In this case the need arose to be able to set the review date of active projects independent to on hold projects which I review not so often.
EditReviewDateActive AND EditReviewDateOnHold were born.

Because I assign all of my projects to their respective area of focus (GTD) I use folders as areas of focus. However, I needed a location for single next actions as well. So each area of focus folder got a single action project for such single next actions. That‘s when EditReviewDateSingleAction was born. When I do my GTD weekly review I check for single next actions purely when I‘m looking at my next action lists. If a next action should become a someday/maybe due to too much to do, then I do that there. But I can control their single action project’s review independently from the others.

Usually, at the end of the day I should review all the non single action projects which I have moved something in. With that I can check if based on what I‘ve checked off or changed I need to update the project or decide upon a new next action for the project or make a someday/maybe action to an active next action. This is where EditReviewDateSinceDate comes in. I run the plugin, it asks me for a date/time and then puts all the non single action projects in which I have modified anything to review. Then at the end of the day I have just a few projects to update and my GTD weekly review goes much quicker.
These days I don‘t use this so often. Its disadvantage is I have to remember when I did the last of such reviews.

That‘s it so far. If you‘d need something like this, then please get specific on what you need. I made these plugins in a way that they do what I need and maybe some of them need customising in order to be useful to your needs.

PS: The plugin names mentioned are just the file names.

Thanks for that explanation that makes a lot of sense and if you are able to post those plug-ins here that would be great and I can tweak them as needed.

I have evolved quite a bit with GTD and OmniFocus and there are things about GTD that I do that is not part of that method. David Allen doesn’t seem to be a fan of prioritizing tasks or actions and just preferes categories (now Tags in OmniFocus) I run AppleScripts on tags and use perspectives to filter those that way I can keep things in a project folder and single actions projects.

The review which David is huge about and he even struggles with is very difficult like you said when you get too many projects. I tried to keep only my active projects under 20 max and most have become someday/maybe’s as reference with ideas kept in Scrivener or MWeb Pro for fast Markdown and syncablity between macOS and iOS.

I also have a Keyboard Maestro macro that I run that creates a project based on dates so I get the benefit of quick things like TaskPaper is great at and can drop thoughts into and just put the defer date for the project as the date of the project. I don’t know how to do that with a plug-in but I would imagine there is a way to do that.

I can then with the new perspective options in OmniFocus 4.2 just go and view based on Monday - Sunday or do a quick open and type “dt” to have it auto expand to today’s date 2024-04-18 can find the one offse really fast. With that and a perspective of what is availble today I am not dependent on always defering things and I can quickly see where to drag quick one offs. Not very GTD but it has removed a lot of friction points for me in OmniFocus and GTD.

Thanks for sharing your workflow and process, that’s helpful to read.

Thanks for your post. I‘m sorry, I have to make it quick today. Here you go.

EditAllReviewDateCycles.omnifocusjs (1018 Bytes)
EditReviewDateOnHold.omnifocusjs (2.2 KB)
EditReviewDateActive.omnifocusjs (2.2 KB)
EditReviewDateSingleAction.omnifocusjs (2.2 KB)
EditReviewDateSinceDate.omnifocusjs (2.2 KB)

1 Like

Thank you for those, very appreceated.

If you need any help adapting the plugins, feel free to get back to me.

Thank you I appreceate that very much!