Custom repeating task


Trying to get back into OF and wrap my head around this.

I have a task which I can’t begin until the 6th of every month and is due the 12th of every month. I may not get to it on the 6th every month and would want to defer it a few days so it is not staring at me every day. I use something akin to a Today view to see only the stuff unblocked. Lets say this month I defer it until the 10th and then complete it on the 10th.

Problem is next month when it comes around I want the same original defer date of the 6th and due date of the 12th, WITHOUT, going in and manually remembering to change anything.

Using one of the 3 repeat functions, how should I set this up? This is one of the most confusing aspects of this program and driven me away in pure frustration before!


That is a problem for me as well. There is no direct way to get the behavior you (and I) want. Lately I’ve been toying with an idea to address it but haven’t tried it out yet. What I would do is:

  • Create a template (using ) without a repeat pattern but with my desired relative defer/due date
  • Create a “tickler” item which repeats monthly and reminds me to create and instantiate the project.

That would give me a way to modify the defer date without affecting next month’s instance. But it’s a kludge.

One other way of dealing with this could be with some Applescript magic…

This is just a quick and dirty script I threw together that could be useful, especially if paired with FastScripts or some other way of quickly running it… It effectively just takes the selected task, set the defer date back to the 6th of whatever month it’s set to, and then marks it as complete so that it defers appropriately again on the following month. This would of course only be practical if you only ever completed the task in the desktop version.

On the other hand, one could take the same basic logic and build an Applescript that runs after the fact to search for the newly created repeating task and adjusts the defer date back. In this case, you could complete the task normally from any device, and as long as the script ran before the 6th of the next month, your task would be ready to go again at that time.

tell application "OmniFocus"

tell content of first document window of front document

	set mytasks to value of (selected trees where class of its value is not item and class of its value is not folder)
	set mytask_deferdate to defer date of item 1 of mytasks
	tell application "System Events"
		set mytask_deferdate's day to 6
	end tell
	set defer date of item 1 of mytasks to mytask_deferdate
	set completed of item 1 of mytasks to true
end tell

end tell