Google Calendar is one of the cornerstones of G-Suite. Sadly Google don’t dedicate enough resources to develop into its full potential. Other than a new icon and forced Google Meet integration, it hasn’t had many improvements recently. Leaving it to the community to pick up the pieces.
Here’s how to get an external calendar integrated with your internal calendar.
Why is this useful?
I’m starting a university course soon. They give me an
.ics calendar feed of all my upcoming classes, lectures, and exams. I want those to appear in my work calendar so that my colleagues don’t try to book meetings when I’m meant to be learning.
I could copy over each event manually. But that’s tedious, and doesn’t reflect any changes that occur to the original event.
There’s a brilliant open source script called GAS-ICS-Sync. It takes an
.ics feed and copies the events over to your main calendar. It checks for updates every 15 minutes – unlike G-Suite which checks once per day.
It takes a little bit of configuration to get right, the main action takes place from line 19 onward. This is what you want it to look like:
var sourceCalendars = [ // The ics/ical urls that you want to get events from along with their target calendars (list a new row for each mapping of ICS url to Google Calendar) // For instance: ["https://www.calendarlabs.com/ical-calendar/ics/76/US_Holidays.ics", "US Holidays"] ["https://example.com/feed.ics", "YOUR.EMAIL.ADDRESS@gmail.com"] ];
Put your feed in there, and your own email address. If you use something like “My Events” then you’ll end up with a separate calendar – rather than syncing the events to your main calendar.
Google could just add a checkbox on
.ics import which says “copy events to my calendar” but I guess they’d rather sit in their chairs and spin round all day.