How to Add Google Calendar to Outlook Calendar [Tutorial]
Syncing Google Calendar and Outlook Calendar automatically is a solution that anyone keeping track of events in both platforms (usually due to work-related reasons) has thought of, but that a few have managed to achieve.
Sure, integrating Google Calendar and Outlook Calendar sounds straightforward enough, but none of the platforms features built-in functionalities for this use case.
As a result, most users are left with the option of manually updating Outlook Calendar whenever they update Google Calendar (or vice versa), which is quite a chore.
Fortunately, this is not a dead-end road for those who strive for more efficiency.
With Make, you can build an automation that syncs the two calendar apps whenever a new event is added.
In other words, Make will automatically take one of these actions in Outlook Calendar whenever we do the same in its Google counterpart:
Add new events.
Update existing events.
Delete events.
Apart from a Google Calendar and an Outlook Calendar, you’ll just need a Make account to set up this automation - and you can get one here.
Before we dive into the tutorial for syncing Outlook Calendar and Google Calendar, here’s some quick context to understand how the integration works.
How the Google Calendar-Outlook Calendar integration works
In this tutorial, we’ll build an automation to update Outlook Calendar events based on what happens with the events in a Google Calendar.
To achieve that, Make needs to identify the Outlook Calendar event that corresponds to the Google Calendar event (if there is one).
We’ll set this up by tagging our Google Calendar events with their Outlook counterparts’ event ID, which is unique to each Outlook Calendar event:
Then, whenever the automation runs, it will check our Google Calendar event for the event ID of a corresponding Outlook Calendar event.
The automation then uses the event ID’s presence (or absence) to determine whether to create a new Outlook Calendar event or update an existing one.
If the event ID is present in the Outlook Calendar, this means there already is a matching Outlook Calendar event for our Google Calendar event.
The automation will then update or delete the Outlook Calendar event depending on whether we’ve done the same in Google Calendar.
But if the event ID is not present in the Outlook Calendar, this means we don’t have a matching Outlook Calendar event for our Google Calendar one. In this case, the automation will create a new Outlook Calendar event for it.
After that, it will update our Google Calendar event with the new Outlook Calendar event’s ID. Doing so helps the automation locate and update that Outlook Calendar event if we update or delete its Google Calendar equivalent later on.
So, here are the detailed steps for making this Google Calendar-Outlook Calendar sync a reality!
1. Create a new Make scenario that watches for new Google Calendar events
Log into your Make account and create a new scenario.
Add the Google Calendar > Watch Events module to the scenario and connect your Google account to it.
Then configure the module as follows:
Use the Calendar dropdown menu to select the Google Calendar that you want to sync with Outlook Calendar.
Set the Watch Events dropdown option to By Updated Date. This will help the automation track both new and updated Google Calendar events.
Change the Show deleted events setting to Yes to sync Google Calendar event deletions to Outlook Calendar.
Leave the Query field blank unless you want to sync only events containing certain keywords.
Fill out the Limit field with the maximum number of events the automation should identify whenever it runs. We’ll use “10” for demonstration purposes, but you should pick a suitable number based on the typical number of events you need to sync to Outlook Calendar at any given time.
Check the image below for reference:
Click OK to finish configuring the module.
2. Add a module to create new Outlook Calendar events for new Google Calendar ones
Now, we’ll add the Microsoft 365 Calendar > Create an Event module, which will create new Outlook Calendar events for new Google Calendar ones.
Note: You can add modules by hovering your cursor over the right handle of an existing module, and then clicking the Add another module option that pops up.
Connect the module to your Microsoft account and use the Calendar ID dropdown menu to select the calendar on which new Outlook Calendar events should be created.
Then, map the Google Calendar > Watch Events module’s data items to the various Outlook Calendar event fields so that your new Outlook Calendar event will contain the same data as its Google Calendar counterpart.
For example:
Map the Summary item to the Subject field.
Map the Start item to the Start Date field.
Map the End item to the End Date field.
Map the Description item to the Body Content field.
Map the Location item to the Location field.
See this image for reference:
Doing this will allow you to keep the same information in both calendars, avoiding potential problems associated with the lack of key data.
Click OK when you’re done.
3. Add a module to update the original Google Calendar event with its corresponding Outlook Calendar event’s ID
As mentioned, the automation checks our Google Calendar event for the event ID of its corresponding Outlook Calendar event to determine the appropriate action to take in Outlook Calendar.
So, we’ll use the Google Calendar > Update an Event module to add the Outlook Calendar event’s ID to our Google Calendar event’s description.
Add this module after the Microsoft 365 Calendar > Create an Event one and connect your Google account to it.
Click the Map switch next to the Calendar ID field so you can select the same calendar you selected in Step 1 of this tutorial.
However, enable the Map switch next to the Event ID field so you can map the Event ID item from the Google Calendar > Watch Events module to it.
Check this image for reference:
Enable the Show advanced settings switch at the bottom of the module to display the Description field. Then copy and paste this function into it:
{{if(1.description != null; 1.description + newline + newline + "(Outlook Calendar Event ID: " + 2.id + ")"; "(Outlook Calendar Event ID: " + 2.id + ")")}}
The Description field should look like this:
This function checks if our Google Calendar event has an existing description, then adds the event’s corresponding Outlook Calendar event ID to it in an appropriate manner:
If the Google Calendar event has a description, the function recreates the description and appends “(Outlook Calendar Event ID: The Outlook Calendar event ID goes here)” after it.
But if the event’s description is empty, the function simply adds the “(Outlook Calendar Event ID: The Outlook Calendar event ID goes here)” text to it.
For example, here’s how our Google Calendar event description will look like with the Outlook Calendar event ID appended after its initial content:
Click OK to move to the next step.
4. Add a text parser module to identify a Google Calendar event’s corresponding Outlook Calendar event ID
Next, we’ll use the Text parser > Match pattern module to search our Google Calendar events for an Outlook Calendar event ID.
Add this module between the Google Calendar > Watch Events module and the Microsoft 365 Calendar > Create an Event one.
The text parser will:
Look for the “(Outlook Calendar Event ID: The Outlook Calendar event ID goes here)” text in our Google Calendar event’s description.
If this text exists, the module will extract the event’s corresponding Outlook Calendar event ID from it.
And we’ll configure the text parser like this:
Pattern: Type \(Outlook Calendar Event ID: (.*)\) into it.
Continue the execution of the route even if the module finds no matches: Change this setting to Yes because we want the automation to continue taking certain actions even if it can’t find an Outlook Calendar event ID in our Google Calendar event’s description.
Text: Map the Description item from the Google Calendar > Watch Events module here.
See the image below for reference:
Click OK to finish configuring the text parser.
5. Add a module to match existing Outlook Calendar events with updated Google Calendar events
Through steps 2 and 3 above we’ve set up our scenario to create new Outlook Calendar events for new Google Calendar ones.
Now, let’s build the functionality for updating existing Outlook Calendar events when we update their Google Calendar counterparts.
Add a new Microsoft 365 Calendar > Update an Event module to your scenario. But instead of connecting it at the end of the scenario, click and drag the module’s left handle toward the Text parser module.
Doing so will automatically create a router that splits your scenario into two routes:
We’ll configure the scenario routes later. For now, let’s set up our new module.
Connect your Microsoft account to it and map the Text parser module’s $1 string element to the Event ID field (this string element will contain the event ID for our Google Calendar’s corresponding Outlook Calendar event if there is one).
Then map the Google Calendar > Watch Events module’s data items to the various Outlook Calendar event fields - like how we did for the Microsoft 365 Calendar > Create an Event module in Step 2 above.
Doing so helps update our existing Outlook Calendar event with the updated data in its Google Calendar counterpart.
See this image for reference:
Click OK to finish configuring the module.
6. Add a module to delete Outlook Calendar events when they’re deleted in Google Calendar
To sync Google Calendar event deletions to Outlook Calendar, we’ll add the Microsoft 365 Calendar > Delete an Event module next.
Connect this module to the router to create a third scenario route, like so:
Then click the module to:
Connect it to your Microsoft account.
Map the Text parser module’s $1 string element to the Event ID field.
See the image below for reference:
Click OK to finish configuring the module.
7. Add route filters that determine whether to create a new Outlook Calendar event or update or delete an existing one
We’ve set up three separate routes for creating, updating, and deleting Outlook Calendar events.
Now, we need to tell the automation when it should take a certain action over another.
We’ll do so by adding a filter to each route, which will allow the automation to proceed down the route only if certain conditions are met.
Click the wrench icon between the router module and the Microsoft 365 Calendar > Create an Event one > click Set up a filter.
Give your filter a descriptive label like “Outlook Calendar event doesn’t exist”, and then map the Text parser module’s $1 string element to the condition’s first operator.
Click the Text operators: Equal to setting and change it to Basic operators > Does not exist.
This way, our automation will create a new Outlook Calendar event if our Google Calendar event doesn’t contain an Outlook Calendar event ID (which it would if there was a matching Outlook Calendar event for it).
Check this image for reference:
Click OK to finish setting up this filter.
Then click the wrench icon between the router module and the Microsoft 365 Calendar > Update an Event one to add a second filter.
Set this filter’s first condition to $1 string element > Basic operators: Exists.
After that, click Add AND rule to add a second condition.
Map the Status item from the Google Calendar > Watch Events module to this condition’s first operator.
Change the Text operators: Equal to setting to Text operators: Not equal to, then type “cancelled” in lowercase - and with two l’s - into the second operator.
See this image for reference:
Here, our automation will update our Outlook Calendar event if:
It can find the event’s event ID in our Google Calendar event description.
That Google Calendar event doesn’t have the “cancelled” status (in other words, it hasn’t been deleted).
Click OK to move on to setting up the filter for the Microsoft 365 Calendar > Delete an Event route.
Set up this last filter in the same way you set up the second filter for the Microsoft 365 Calendar > Update an Event route.
This time, however, change the second condition’s text operator to Text operators: Equal to - so that the automation will delete events with the “cancelled” status.
View this image for reference:
Click OK, and you’re done setting up your scenario!
It should look like this:
8. Turn on and run your scenario to start syncing your Google and Outlook calendars
Now, let’s put the automation to work.
If you have existing Google Calendar events to sync to Outlook Calendar, identify the event with the earliest start date.
Then right-click the Google Calendar > Watch Events module, select Choose where to start, select Since specific date, and fill out the date field with that start date.
Click OK once finished.
Click the Run once button on the bottom left to start syncing these Google Calendar events to Outlook Calendar.
Note: Depending on the number of Google Calendar events you need to sync to Outlook Calendar and the event limit you’ve set for the Google Calendar > Watch Events module, you may need to re-run the scenario multiple times until all your Google Calendar events have been synced.
Temporarily increasing your event limit may help reduce the number of times you need to re-run the scenario.
And with our existing Google Calendar events synced, we can activate the scenario to sync all future events we create, update, or delete.
Right-click the Google Calendar > Watch Events module > select Choose where to start > select From now on > click OK.
Then use the schedule setting at the bottom of the visual editor to set up how regularly you want to sync Google Calendar with Outlook Calendar.
Finally, turn your scenario on. You made it!
What about adding an Outlook Calendar to Google Calendar instead?
Yes, this is possible!
Setting up this reverse sync involves swapping your scenario’s Google Calendar modules with Outlook Calendar ones and vice versa, and adjusting the mapping of your modules’ data items to match.
Here’s a sneak peek of how that scenario should look:
So, are you ready to sync your Google Calendar events to Outlook Calendar? Or even take a shot at setting up a two-way sync?
Then sign up for a free Make account here, and get cracking!