Creating a Google Calendar Event that Repeats on the FIRST WEEKDAY of Every Month

Marcus Molina
Scrubbi
Published in
5 min readApr 2, 2019
Photo by rawpixel.com from Pexels

Out of the hundreds of productivity & planning apps out there, my favorite is still good ol’ Google Calendar.

It integrates seamlessly with the massive suite of Google apps and products out there, and now with Google Home and voice commands, it’s a little scary just how easy it is to stay organized.

Just say “OK Google, remind me to buy milk tomorrow at 4pm” and voila, a reminder is set for you.

So you would think that a super simple task like creating a calendar event in Google Calendar that repeats on the first weekday of every month would be a piece of cake, right?

Not quite (yet).

While a first weekday of every month setting doesn’t exist yet (as of this writing) for Google Calendar events, there is still a way to create it in your calendar, in 2 simple steps.

There is some coding, but luckily we already took care of that for you.

STEP 1 — Create the Calendar Event File

Here is the code snippet for a Google Calendar Event that Repeats on the FIRST WEEKDAY of Every Month

BEGIN:VCALENDAR
VERSION:2.0
BEGIN:VEVENT
RRULE:FREQ=MONTHLY;INTERVAL=1;BYDAY=MO,TU,WE,TH,FR;BYSETPOS=1
SUMMARY:Create Previous Month Report
DTSTART;VALUE=DATE:20190401
SEQUENCE:0
DESCRIPTION:Create Monthly Marketing Report for Ad Spend, CPA, and other important details for all marketing channels.
END:VEVENT
END:VCALENDAR

Creating a Text File

a) Copy and paste the code snippet above into a Text Editor (like Notepad)
b) Save it as a .TXT file (remember the file location)

Save the code snippet in your favorite text editor. We use Notepad++

If you’re in a hurry you can move directly on to Step 2— Adding A Custom Event to Your Google Calendar.

But if you want a brief explanation of what some of the code means and how you can customize it for your use, then read on.

Coding Explained

The important things to know in the snippet are:

RRULE
SUMMARY
DTSTART
DESCRIPTION

RRULE

FREQ=MONTHLY

Obviously this is telling the Calendar that this event is to occur monthly. You can change this to yearly, or weekly, as needed.

INTERVAL=1

How often the FREQ occurs. So if you changed the interval to 2 and have the FREQ set to MONTHLY, the event will repeat every TWO months instead of every month.

If the FREQ is set to WEEKLY, the next event in the series will make come up in 2 weeks (or in another words, bi-weekly).

BYDAY=MO,TU,WE,TH,FR

This is telling the Calendar what days you’d like the event to occur on and constrains the event to only show up on these particular days.

For example, if you want the event to only come up on Tuesdays or Thursdays, the BYDAY will be: BYDAY=TU,TH

(So either Tuesday or Thursday, which ever comes first in that month).

SIDE NOTE:

Another option is BYMONTHDAY which allows you to set the actual day or days of the month that you want the reminder or event to occur.

So for example, if I wanted to set a reminder that popped up on the 25th, 26th, and 27th of the month, I would do so like this:

BYMONTHDAY=25,26,27

BYSETPOS=1

BYSETPOS is th ‘nth’ of instance of all the logic before it . So for example, if we changed BYSETPOS=10 then:

RRULE:FREQ=MONTHLY;INTERVAL=1;BYDAY=MO,TU,WE,TH,FR;BYSETPOS=10

What would happen is — the event will show up in our calendar on the 10th (BYSETPOS=10) weekday (BYDAY=MO,TU,WE,TH,FR) of every month (FREQ=MONTHLY;INTERVAL=1).

So for our example, we wanted to create the event on the FIRST Weekday of Every Month.

The BYSETPOS will equal 1 so that the first instance of Monday, Tuesday, Wednesday, Thursday, OR Friday in the month will trigger the event.

SIDE NOTE:

  • If you want to do the LAST weekday of the month, change to BYSETPOS=-1.
  • For the 2nd to last weekday change it to BYSETPOS=-2, etc.

Bonus RRULE addition:

COUNT=____

Thanks to the Amanda Bishop for asking this in the comments - using the COUNT rule lets you can set the number of occurrences for your event so it doesn’t continue into infinity.

So for example, if you wanted the reminder to pop up every day for the next 5 weekdays you could do something like this:

RRULE:FREQ=DAILY;INTERVAL=1;BYDAY=MO,TU,WE,TH,FR;BYSETPOS=1;COUNT=5

So notice that the FREQ is Daily, the BYDAY is set to Mon-Fri, and the COUNT is 5.

If the FREQ was changed to MONTHLY and the COUNT was 5 then it would occur for the next 5 months.

SUMMARY

SUMMARY:Create Previous Month Report

This is where you put the name of your event.

SUMMARY is the title of your event. So if you wanted to create a calendar event called ‘Drinks with the gang’ then this is where you would put that name.

DTSTART

DTSTART;VALUE=DATE:20190401

The date of the very first instance of your event. It will create an event on the date you specify so be careful with that.

So in our example, the very first event for “Create Previous Monthly Reports” will occur on Monday April 1, 2019 and then again on Friday April 12, 2019 — the 10th weekday of the month.

DESCRIPTION

DESCRIPTION:Create Monthly Marketing Report for Ad Spend, CPA, and other important details for all marketing channels.

This section is where you can add more details about your event.

STEP 2— Add A Custom Event to Your Google Calendar

Now that you have saved the code above into a .TXT file, you’re ready to import it into Google Calendar.

Uploading a Text File to Google Calendar

  1. Go to your Google Calendar and click on the ‘gear’ icon on the top right
  2. Then click on Settings
  3. Then click on Import & export
  4. Click on “Select file from your computer” then navigate to the .TXT file that you saved.
  5. Then under “Add to calendar”, choose the calendar you want to import the event to. It defaults to the one you’re currently in.
  6. Click “Import

And that’s it!

Now when you navigate back to your Google Calendar, you should see your custom event showing on the first weekday of every month.

MORE READING

If you can’t exactly what you’re looking for, try one of these links:

--

--