71

Pretty much the subject says it all. How can I make a task repeat on the end of each month in google calendar.

Jan 31- repeated task
Feb 28 - repeated task
march 31 - repeated task
april 30 - repeated task
....
etc
1

13 Answers 13

74

To make an event that repeats on the last day of each month, we'll create a file that contains the event, and then import it into Google Calendar:

  1. Paste the following text into a new .txt file (e.g. with notepad):

    BEGIN:VCALENDAR
    BEGIN:VEVENT
    DTSTART:20160731
    DTEND:20160731
    RRULE:FREQ=MONTHLY;BYDAY=SU,MO,TU,WE,TH,FR,SA;BYSETPOS=-1;WKST=SU
    SUMMARY:Name of your event
    END:VEVENT
    END:VCALENDAR
    
  2. After both DTSTART and DTEND, write the date of the first occurrence of the event. Then, put the name of the event behind SUMMARY.

  3. In your Google Calendar, go to Settings, and select Import & export, then Import from the left-side menu. Upload your .txt file to add it to your calendar.

Done!

Your event now appears on the 30th or 31st (or 28th, 29th) of each month, depending on the month.

You can also schedule it for the last business day by dropping SU and SA in the BYDAY.

You can still edit the name and time of the event (the UI is a bit glitchy, messing up your dates by default, but it works), but you cannot edit the recurrence: "This event has a recurrence rule that cannot be edited in Google Calendar"

P.S. If you want to dive deeper into making your own rules for when an event should occur, such as "first business day of the month", take a look at RFC 5545, section RRULE for examples and section RECUR for a formal definition. With this you can edit the RRULE line to your liking. See the comments on this answer for some examples as well.

13
  • 1
    Example for FIRST WORKDAY OF MONTH (With weekstart on Monday): RRULE:FREQ=MONTHLY;BYDAY=MO,TU,WE,TH,FR;BYSETPOS=1;WKST=MO
    – Marcel
    Jun 4, 2014 at 5:50
  • @Jo Liss I'm sorry but I don't know what you mean by "Behind both DTSTART and DTEND, write the date of the first occurrence of the event." Do you mean after the semicolon for each respective variable? I imported and it said 'Successfully imported 0 events' Mar 27, 2015 at 1:34
  • 4
    The format for this must have changed as this no longer works.
    – Bill Mote
    Sep 5, 2015 at 13:32
  • 2
    "First day of the month that is not a weekend" can be done like so: RRULE:FREQ=MONTHLY;BYDAY=MO,TU,WE,TH,FR;BYSETPOS=1;WKST=SU . Similarly for the 15th, you can do RRULE:FREQ=MONTHLY;BYDAY=MO,TU,WE,TH,FR;BYMONTHDAY=15,16,17;BYSETPOS=1;WKST=SU. Explanation: Every month, we select the set of days that are MO/TU/WE/TH/FR and fall on the 15th, 16th, or 17th, and then pick the first day in that set (BYSETPOS=1).
    – Jo Liss
    Jul 13, 2016 at 18:28
  • 1
    The UI path as of 2020 is "Settings > Import & export > Import"
    – Xeon06
    Jan 10, 2020 at 22:30
12

Another partial solution that may work for some folks: Create the repeating event for the first day of every month, then add a reminder for one day in advance. Then you'll receive at a notice regarding the event at the appropriate time. Of course this doesn't help if you need the time to show as busy.

12

You can do this with the OS X Calendar app.

First, sync your Google Calendar with OS X Calendar.

Then create an event series that occurs on the last day of every month and wait for it to sync to Google Calendar.

First step Second step Voilà

3
  • 2
    Excellent answer, this can even do last weekday of a month.
    – Jichao
    Jul 3, 2015 at 1:52
  • Works from iOS Calendar too.
    – lpacheco
    Aug 26, 2015 at 20:45
  • So lucky I'm using macOS right now!. Jan 25, 2021 at 18:01
1

This answer worked for me:

The simplest way is to just write out the event in plain English. For example:

RORO at Inspire9, Richmond on the last Thursday of every month

This will create an event called “RORO at Inspire9, Richmond”, with the location field set to “Inspire9, Richmond” and the repetition set to “Monthly on the last Thursday”.

From http://blog.stevenocchipinti.com/2012/05/google-calendar-repeating-event-on-last.html/

3
  • 3
    How to use this method is not explained clearly in the original post. It does not work for me. Jan 5, 2015 at 5:48
  • 1
    "Last Thursday" adds a repetitive event but this is not what TS asked. "Last day" does not work. Jun 1, 2015 at 19:32
  • This is an excellent suggestion. I came here because I found this thread looking for exactly the Matthew's solution. It does not answer an original question, but it definitely does not deserve reduction of the user's reputation. Matthew, if you like, I will ask a question for which this will be a correct answer. Then you'll get an upvote and a "solved".
    – texnic
    Nov 14, 2015 at 10:47
1

To set an recurring event on day 30 of each month, or Feb 28 or Feb 29 (in a leap year), being any workday, adjust and import the following .ics file:

BEGIN:VCALENDAR
BEGIN:VEVENT
DTSTART:20120430T100000Z
DTEND:20120430T101500Z
RRULE:FREQ=MONTHLY;BYDAY=MO,TU,WE,TH,FR;BYMONTHDAY=28,29,30;BYSETPOS=-1;WKST=SU;
COUNT=242
SUMMARY: Dia 30 ou dia util anterior
END:VEVENT
END:VCALENDAR
1

A highly similar and more general question is "how to make an event repeat on the last [x] day of each month". As this person noted, you need to find a month with the max number of weeks (five) and then set it based on the day of the month. If the initial month doesn't have the max number of weeks, it will repeat on the fourth week rather than the last week.

2
  • I'm not following. July 2018 has five weeks. I set an event to repeat on July 31, monthly on the 31st of the month. But nothing shows up in September, which only has 30 days!
    – Michael
    Jul 26, 2018 at 16:30
  • From that thread: "...The only way I've seen is to create an event on a 5th Tuesday. When you then set the event to repeat, it will repeat on the last Tuesday. You may have to go back to the most recent month that had a 5th tuesday to make it work." It's not the numerical day, but the weekday I think. Haven't looked at this in years. :)
    – Ben Creasy
    Jul 26, 2018 at 23:41
1

I found that the Google calendar app allows for end of every month scheduling. I now schedule most events from my phone. Under Repeating option select Custom and it will allow you quite a bit of flexibility. It still does not distinguish between calendar days of the week and business days of the week like Apple Calendar. I would love to see this addition.

2
  • Can you provide some screenshots on how to do this? When I select "repeat monthly" on the Android app, it only provides entry for "every _ month", "on the same day each month or on every last (day of week)", and how many repetitions.
    – Michael
    Jul 26, 2018 at 16:33
  • this is the easiest way i've managed to get it to work
    – user108569
    Jan 9 at 16:16
0

iCalendar (RFC 5545)

Specification: https://www.rfc-editor.org/rfc/rfc5545

Google Calendar > Settings > Import & export (Select file from your computer > Import)

iCalendar Import & Export

Repeat on the last day of each month, forever: (save as txt file)

BEGIN:VCALENDAR
VERSION:2.0
PRODID:-//Foo//iCalendar Event//No product//EN
BEGIN:VEVENT
UID:foo.uid@gmail.com
DTSTAMP:20200904T164307Z
RRULE:FREQ=MONTHLY;BYDAY=SU,MO,TU,WE,TH,FR,SA;BYSETPOS=-1;WKST=SU
SUMMARY:Foo Summary
DTSTART;VALUE=DATE:20190131
SEQUENCE:0
DESCRIPTION:Foo To be Paid
END:VEVENT
END:VCALENDAR

Repeat on the last working day of each month, forever: (save as txt file)

BEGIN:VCALENDAR
VERSION:2.0
PRODID:-//Foo//iCalendar Event//No product//EN
BEGIN:VEVENT
UID:foo.uid@gmail.com
DTSTAMP:20200904T164307Z
RRULE:FREQ=MONTHLY;INTERVAL=1;WKST=MO;BYDAY=MO,TU,WE,TH,FR;BYSETPOS=-1
SUMMARY:Foo Summary
DTSTART;VALUE=DATE:20190131
SEQUENCE:0
DESCRIPTION:Foo To be Paid
END:VEVENT
END:VCALENDAR

The recurrence rule property "RRULE" defines a rule (repeating pattern) for recurring events.

RRULE desc: https://icalendar.org/iCalendar-RFC-5545/3-8-5-3-recurrence-rule.html

RRULE validator: https://icalendar.org/validator.html

1
  • 1
    How it's different from top answer?
    – Kos
    Sep 5, 2020 at 10:37
0

This worked for me. https://dor.ky/posts/2022/04/create-google-calendar-event-last-working-day-of-month/

BEGIN:VCALENDAR
VERSION:2.0
BEGIN:VEVENT
RRULE:FREQ=MONTHLY;INTERVAL=1;WKST=MO;BYDAY=MO,TU,WE,TH,FR;BYSETPOS=-1
SUMMARY:Last working day
DTSTART;VALUE=DATE:20220421
SEQUENCE:0
DESCRIPTION:Repeating last working day event
END:VEVENT
END:VCALENDAR

Save it as an .ics file

0

Most of the other answers here create an event, not a task as the question asks. There doesn't seem to be any way to do this in any version of Google Calendar (web or app).

However, you can create a task recurring on the last day of each month in a round-about way using Google Assistant:

  1. Say to Google Assistant, "Create a reminder for the last day of every month."
  2. Follow the prompts. This will create a reminder, not a task. (Even if you say "create a task" it will still create a reminder)
  3. You can either leave it as a reminder, or convert all your reminders to tasks: In your Google Calendar, open the side panel with your tasks. Click the 3 dot menu, and click "Move reminders to Tasks":

1

And there you have it: a task that repeats on the last day of every month. And it even says so in the web version of Google Calendar (which is super odd considering it won't let you make it in the first place):

2

The ICS import method doesn't work for a task (I tried creating a VTODO file, but Google Calendar doesn't recognize it).

Oddly enough, it doesn't look like you can't use Google Assistant to create recurring events.

1
  • The last time that I check Google Assistant was not available as a web application. Is it available nowadays? Considering that this is a site focused on using web applications hence the site name is Web Applications and not just Applications, consider to add explain why are you suggesting to use an app for a different platform.
    – Rubén
    Mar 31 at 22:01
-1
  • Open Outlook > Go to Tasks -> New Task
  • Enter Subject > Start Date > and Due Date (Due Date will be last date of this (Feb.)month)
  • Click on Recurrence tab at top
  • Pattern Monthly > The (Last) (day) of every (1) month.

Ok

3
  • 4
    @Ankur - um from the question in google calendar ` ` Jan 4, 2011 at 5:56
  • @Sathya As you can see from my answer, Google Calendar supports these events in principle, so perhaps if you have an Outlook that synchronizes with Google Calendar, it might work? I haven't tested it.
    – Jo Liss
    Jul 23, 2011 at 14:17
  • @JoLiss - Hm, nice trick - perhaps might work Jul 23, 2011 at 14:42
-1

To expand upon Paulo's answer above, this is also a notable solution for the 15th of every month, or the previous weekday if the 15th falls on a Saturday or Sunday:

BEGIN:VCALENDAR
BEGIN:VEVENT
DTSTART:20170415
DTEND:20170415
RRULE:FREQ=MONTHLY;BYDAY=MO,TU,WE,TH,FR;BYMONTHDAY=13,14,15;BYSETPOS=-1;WKST=SU;
SUMMARY: Mid-month Event Name
END:VEVENT
END:VCALENDAR

Mid-month recurring event, anyone?!

1
  • Not sure why you were downvoted, this is useful thanks. Dec 15, 2018 at 21:53
-1

Google will only import .ics files and all that necessary is after creating the event in a .txt file change the extension to .ics and it can be imported.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

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