3

I want to set up an event in Google Calendar that repeats on the last day of every month that doesn't have 31 days. The reason being my wristwatch has a manual date indicator with 31 days so I need to remember to correct it for these months. (Or alternatively an event on the 1st of each month that follows a short month.)

So on:

  • February 28th (or 29th in leap years)
  • April 30th
  • June 30th
  • September 30th
  • November 30th

Or alternatively

  • March 1st
  • May 1st
  • July 1st
  • October 1st
  • December 1st

I have looked at these questions which create related reminders by importing calendar files:

How can I do something similar for what I want?

Obviously I could create a yearly repeating event for each of these months but ideally I want it to be one repeating event.

2

Your best bet is to create five separate annually repeating events (as you mentioned). It takes about 1 minute per event and you're done with it for life.

  • 1
    Although it doesn't do it as one event I have done it this way. – Chris R Dec 22 '15 at 11:31
0

Creating separate annually-repeating events is one solution, but you could also make use of a custom recurrence rule. Although Google Calendar doesn't allow you to directly create or modify arbitrary recurrence rules, the iCalendar specification which it uses and understands is quite robust in this regard.

Create an ICS file with a custom recurrence rule (RRULE). For example, to create an all-day event reminding you to reset your watch calendar to "1" on the first of March, May, July, October, and December each year, starting 1 March 2019:

BEGIN:VCALENDAR
BEGIN:VEVENT
DTSTART;VALUE=DATE:20190301
DTEND;VALUE=DATE:20190301
RRULE:FREQ=YEARLY;BYMONTH=3,5,7,10,12;BYMONTHDAY=1
DESCRIPTION:
LOCATION:
SEQUENCE:0
STATUS:CONFIRMED
SUMMARY:Set watch calendar to "1"
TRANSP:TRANSPARENT
END:VEVENT
END:VCALENDAR

If, instead, you prefer to have an event at 22:00 on the previous day remind you to set it to "31" before bed, so that it rolls over to "1" at midnight, the following makes use of a negative BYMONTHDAY value to pick the last day of the month (and therefore properly accounts for leap years, too!):

BEGIN:VCALENDAR
BEGIN:VEVENT
DTSTART;VALUE=DATE:20190228T220000
DTEND;VALUE=DATE:20190228T220000
RRULE:FREQ=YEARLY;BYMONTH=2,4,6,9,11;BYMONTHDAY=-1
DESCRIPTION:
LOCATION:
SEQUENCE:0
STATUS:CONFIRMED
SUMMARY:Set watch calendar to "31" before bed
TRANSP:TRANSPARENT
END:VEVENT
END:VCALENDAR

To import the ICS file (as of March 2019): Click the gear icon and select "Settings", then choose "Import & export" from the menu. (Here's a direct link as of March 2019.) Under "Import", select your ICS file and upload it to the desired calendar.

Of course, you won't be able to tweak the custom recurrence rule from within Google Calendar, unless you want to replace the recurrence rule entirely with one of the standard options. Otherwise, you'll have to delete the event, tweak your ICS file, and reimport. You should still be able to make other changes to the event within Google Calendar, such as renaming, moving to another calendar, etc.

If this helps, you may wish to read more about the flexibility offered by custom recurrence rules in the iCalendar specification.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.