More complex repeat options for projects/tasks?

Hi all,

I was just wondering if anyone knew of any cool ways to set up more complex repeats in OmniFocus for projects and/or tasks.

For example: if I wanted to have a “Mother’s Day” project that repeated annually on the second Sunday of every May, how would I go about doing that? I know that’s not possible with OF’s built-in repeat options, but I was wondering if there were any other cool scripts or something I wasn’t thinking of that could help me accomplish this.

Currently, my workaround is to have one task that pops up several months or weeks before the second Sunday of every May, that says something along the lines of, “Adjust defer/due date of “Mother’s Day” project so that it’s accurate for the current year” or something like that. It’s clunky, but it works okay. I’d just prefer to have a cleaner, more minimal solution, if possible.

Thank you all in advance!

This “repeat” configuration seems to work, here:

Screenshot 2021-03-31 at 08.32.55

And also, setting the defer and/or due date of the task to 9th May 2021. Next instances are going to be scheduled accordingly.

1 Like

With OmniJS scripting API, it’s possible to speed-up the process creating custom dialogs with frequently used options since Task class has a Task.RepetitionRule class.

The Task.RepetitionRule Class

A Task.RepetitionRule describes a pattern of dates using a ICS formatted recurrence string (iCalendar.org) and a Task.RepetitionMethodto describe how those dates are applied to a Task.

The properties of the Task.RepetitionRule class:

  • method (Task.RepetitionMethod r/o) • The method used to create the repetition rule.
  • ruleString (String r/o) • The ICS rule string used to create the repetition rule.

The ICS spec is specified, here:

https://tools.ietf.org/html/rfc5545

1 Like

The spec defines an RRULE, in the following manner:

Property Name

RRULE

Purpose

This property defines a rule or repeating pattern for recurring events, to-dos, journal entries, or time zone definitions.

This part of your request…

could be expressed as a RRULE:

FREQ=MONTHLY;INTERVAL=12;BYDAY=2SU

Thank you, this is super helpful! Can’t believe I missed the other options too. 🤦‍♂️I could’ve swore that there were only basic repeat options and not what you showed. Thanks again!

Glad it was useful, @joshlgibson !