How can I configure custom repeat intervals for Reminders?

I would like to configure an alert for a recurring reminder in Reminders.app on Mountain Lion. Currently the only options I have for repeating the alert are "Every Day", "Every Week", "Every 2 Weeks", "Every Month" and "Every Year".

Repetition options

Is there a way to get more fine-grained control on the repeat schedule? For example I'd like to be reminded for something on Mon-Tue-Thu-Fri? The only way I found to accomplish that is creating 4 seperate reminders with a weekly interval, which I want to avoid.


Solution 1:

This bugs me too. It isn't possible to do in Reminders, but you can achieve the same thing by creating a repeating event in Calendar, which has a "custom..." item in the Repeat menu:

Custom Menu Item

Then you can specify exactly when to repeat the event:

Days of the Week

It seems like an oversight that Reminders doesn't have the same feature (it would be just as useful), especially since the event/reminder detail UI is the same...

Solution 2:

I found out you can accomplish this with BusyCal, which has iCloud support.

Unfortunately it comes with a $49.99 pricetag, which I am hesitant to pay for the sole purpose of adding custom intervals to reminders. I also prefer not to install a 3rd application in addition to Calendar and Reminders just for managing my tasks.

That's why I did some digging and found an alternative (though very cumbersome) way to accomplish this specifically for iCloud reminders, but probably for other CalDav accounts too. You'll also need to be comfortable with editing raw iCal files.

  1. Create a reminder for your iCloud account in Reminders.app and set it to repeat weekly.
  2. Locate the local cache of your iCloud calendars in ~/Library/Calendars. You should have one or more subfolders {UUID}.caldav. If you have multiple of these folders, you'll want to have a look in the Info.plist inside to determine the correct one. Look for the key PrincipalURL which should be something like https://p01-caldav.icloud.com:443/272548408/principal/ for an iCloud account. Make note of the server name, in this case p01-caldav.icloud.com.
  3. You will have one or more {UUID}.calendar subfolders, where one of these will be a calendar specifically for reminders. You should find a .ics file for the reminders you created inside its Events subfolder, then you know you found the right calendar. Have a look at the Info.plist inside this calendar folder, and look for the value for CalendarPath.
  4. Use a WebDav client like Transmit to connect to iCloud directly. Fill out the servername from step 2, your iCloud email address and password as credentials, and specify the value for CalendarPath (step 3) as the initial path.
  5. When connected, you should see one or more {UUID}.ics files. Locate the correct one for the reminder you want to edit (UUIDs should match with the ones in the local cache) and edit the file. Look for the line RRULE:FREQ=WEEKLY and edit that one to specify a custom recurrence. For my example I put RRULE:FREQ=WEEKLY;BYDAY=MO,TU,TH,FR instead.

While Reminders.app on the Mac does not show anything different in the UI, I can see the change was effective on iOS:

enter image description here

Solution 3:

Ask Siri to 'remind me to order prescriptions every four weeks starting on Monday 20th January'

Solution 4:

I realize this is an old question, but I just discovered they recently added this feature to Reminders.

On OSX Yosemite, it appears they've since added the "Custom…" option under the repeat menu, so you can now add the more fine-grained controls that you could only add via the Calendar app or other workarounds.

enter image description here

Solution 5:

Fantastical allows you to do this and the price is a reasonable $20.

Fantastical event/reminder editor UI