Jacob Filipp

Sync Outlook Calendar to Google Calendar using Microsoft Power Automate

Summary: getting Outlook events to show up in Google Calendar can be a challenge due to your workplace’s security settings. If you have access to Microsoft Power Automate (aka Flow), then you can use this .zip package to set up an integration.

This Flow is based on this Outlook to Google Calendar synch package by Alex Matulich. Thank you for laying the groundwork, Alex!

Why sync these calendars?

My personal calendar is in a Google account, and I access it with a Google app on my Android phone. My workplace calendar is in Office 365 Outlook on my work laptop.

I wanted the ability to see work events on my personal calendar/device without having to install the Outlook app on my phone. I did this because it’s a good idea to keep home & work accounts on separate devices. To keep work-time and personal-time fully apart.

Using Microsoft Flow to synch Outlook and Google Calendars

Microsoft Power Automate (aka Flow) is a service that lets you connect different applications and build connections between them. If you’ve heard of IFTTT or Zapier, Flow has the same concept.

Flow was a good option for this sync because it was free and available. The basic free version of Power Automate is already included in Office 365, and apparently allows 750 “runs” a month. This version is good enough for our purposes, although your company may have paid for a more advanced version.

Download your Power Automate .zip package below:

v2 of this flow added on Aug. 7, 2020. It no longer copies the event description to Google Calendar. Long event descriptions were cutting off the important Event ID/Master ID.

v3 of this flow was added on Nov. 17, 2020. It has 1 minute delays between repeated actions, to try and reduce rate limiting problems. Also, changed Outlook settings to look forward only 90 days, instead of 300.

Known issues: the Google Calendar steps error out because they hit rate-limiting limits (“rateLimitExceeded” message). I’ve also encountered lots of problems when making changes to recurring events. If you think of a fix, post it in the comments!

Screenshot of this Microsoft Power Automate Flow that copies Outlook calendar events into Google calendar.

This Flow will copy over new events from Outlook to Google Calendar. It also handles event updates and deletions, as well as supporting recurring events.

Installation Instructions

To get started, sign in at the Power Automate site and Import the .zip package by clicking the Import button at the top. Next, you will be prompted to connect your Office account and your Google account.

Remember, you will need to set up your own Office ID and your own Google Calendar ID within the Flow, in order to make it work with your accounts. Awesome commenter “justme” shows you how to find the Google Calendar ID in the comments below. They say:

If you go to the Settings and Sharing options of your google calendar you should see an ID, thatโ€™s a long list of random characters followed by @group.calendar.google.com. Copy that whole thing into the google calendar ID field in your flow.

You might run into an issue where your provided Google Calendar credentials are not automatically used in this Flow’s elements. The account might say the dummy value โ€œyour@googlecalendarusername.comโ€.

If this happens, then plase go through every instance where those credentials are used, and click on the dropdown to change the account to use your actual Google Account. There are currently 5 spots where that change has to be made. The highlighted parts of the Flow below show where to make the changes:

Credits for the MS Power Automate Flow

This flow is based on the one at Syncing Office 365 Outlook to Google calendar using Power Automate by Alex Matulich. I found it through his helpful question around special date formatting for Google Calendar in a Power Automate discussion thread.

(The date format ended up being “yyyy-MM-ddTHH:mm:ss-00:00” in your own time zone)

Thank you Alex!

My customized Flow is different from Alex’s in that it doesn’t require you to have access to an Excel Online / OneDrive account to keep track of event updates. In my organization, I was not able to make proper use of Excel Tables in the way that Alex’s Flow expected.

Other MS Flows that could be helpful:
Create new events on Google Calendar from Office 365
Copy new events in Office 365 to Google Calendar and send a notification
Update Google Calendar events previously created from Outlook.com

Trying to add Outlook Calendar to Google calendar

There are a few other documented ways to bring your Office 365 Outlook events into G Suite/Google Calendar.

One of them could work for you. It all depends on your employer’s security settings. For me, none of these methods worked. Only the Microsoft Flow method I describe above was effective.

Share calendar from Outlook 2016

You might be able to share your calendar through a “sharing invitation” email, found under the “share calendar” button.

At my organization, sharing a calendar with an external contact was blocked by the admins. A message like “Problem: Your organization’s policy does not allow you to share with this recipient.” comes up whenever you try to share your calendar with a Google account.

Publish to WebDAV server

One recommendation you’ll see for Outlook and Google calendar integration is to use the “Publish to WebDAV Server” option. This requires having an intermediary account on a server like iCal Exchange (accounts are free).

Here is a guide for setting up WebDAV publishing, from Ablebits.

Sync with Google Calendar from Outlook 365 Online

Another option for calendar sync is to go to Outlook 365 Online, then go to Settings -> Calendar -> Accounts.

There is a section there that says “To manage all your calendars in one place, connect your personal accounts with your work account. Details of personal events, like title or location, won’t be shown to other people.”.

Unfortunately, this turned out to be only a one-way sync that brings Google Calendar events into Outlook calendar (the opposite of what I wanted). As of now (July 2020) this also seems to be a feature that’s not available to everyone.

If you are looking to see your Google Calendar from within Outlook, you can try the above method or try this guide for setting up calendar sync on Outlook for desktop.

Thanks for reading and good luck with the setup!

Categories: Writing

Pardot: finding the Pardot asset when all you have is a landing page » « Tool – convert HTML list to Plaintext


  1. Hi Jacob,

    Thanks for taking the time to build this out. Really appreciate the effort.

    I’m having an issue with when I Test the flow – I get an error returned ‘Bad Gateway’

    Any ideas on how to fix this one?

    Many thanks!


  2. I am getting the same bad gateway error as the previous one

  3. I got this working by changing all the calendar id’s to correct one.

  4. Thanks so much for sharing.

    As mentioned above, make sure you edit the flow to include your google calendar id. If you go to the Settings and Sharing options of your google calendar you should see an ID, that’s a long list of random characters followed by @group.calendar.google.com. Copy that whole thing into the google calendar ID field in your flow.

    I’ve been having the problem of duplicated events in my google calendar when I update an event in outlook (new events are fine – I just get one entry created in google). Anyone else having this issue?

  5. kissamies, (or someone), can you explain? I have the same error, and I don’t know what the problem is – can’t find the calendar id’s so I don’t know how to change them! Thanks

  6. Thanks a lot for this, worked flawlessly!

    I had to go through every step of the flow and change the calendar to use the correct calendars both on the Outlook and Google Calendar side, so that might be what is confusing some of the other people here.

  7. Hi there, on trying to import the zip flie (Solutions/ Import) I get the following error message. Any suggestions on what I’m doing wrong? Thanks!

    The solution file is invalid. The compressed file must contain the following files at its root: solution.xml, customizations.xml, and [Content_Types].xml. Customization files exported from previous versions of Microsoft Dynamics 365 are not supported.

  8. Hey there,
    This powerflow worked for months and was AMAZING!!! But recently quit working – I was having so many issues with it I just redownloaded the zip file and started over, but no matter what I do, there is a 502 Bad Gateway Error.

    Error Details
    Start time
    Apr 9, 06:41 PM (5 minutes ago5 min ago)
    08 ms
    Action ‘When_an_event_is_added,_updated_or_deleted_(V3)’ failed
    Error Details

  9. admin

    April 14, 2021 — 11:36 pm

    Thanks for posting about this Lauren. I noticed that the flow stopped working for me a while back, too.
    Here are the steps I used to fix this:

    1. Edit the flow
    2. Open the first Trigger element, “When an event is added, updated or deleted (V3)”
    3. Change the Calendar id to another calendar name you have, or enter some custom value.
    4. Save the flow
    5. Edit the flow again, go through all the previous steps, except choose your actual Calendar again under Calendar id.
    6. Save + test by adding a new event.

    I also noticed some issues when setting up the downloadable flow .zip file from scratch. The Google Calendar credentials are not automatically set to use the account you provide during the installation. They stay as the dummy value “your@googlecalendarusername.com”. You have to go through every instance where those credentials are used, and click on the dropdown to change the account to use your actual Google Account. There are currently 5 spots where that change has to be made. (see screenshot I added to the post above).

  10. Thanks very much for this; the flow didn’t work for me when initially imported but started working after I fiddled with it for a while (had to add and remove source and target calendar IDs). The flow here was a great starting point, thanks!

    I also found that recurrences / series aren’t supported by Microsoft’s Google Calendar operation, so you only get the first of the series copied over.

  11. Michael J Barnes

    June 14, 2021 — 12:16 am

    Thank you so much. This is great. It’s PARTIALLY working for me.
    I am having events successfully created in my Google calendar when I create an event in the Office 365 calendar, but it fails when I update or delete an event.

    I did go through the steps of re-choosing or entering the Google calendar ID into every place in the Flow to get it working.

  12. Michael J Barnes

    June 14, 2021 — 12:25 am

    Nevermind, I got it working!!!
    I had missed a place to include the Google Calendar ID.

    Now, I may have to try to figure out if I can get it to sync both ways.

  13. Hi there,

    Amazing script.

    But there is one problem: updating time works, but if i rename an event in O365 (subject) it won’t be updated in my gmail calendar.


  14. Any ideas on why my flow runs twice? I followed the instructions above and it works great but within 2 minutes of the flow running and adding the event in G calendar, it runs again so i end up with 2 entries for the same event.

  15. @Stefan Yes , go to Case updated -> Apply to each 2 -> Update an event 2:
    Subject and location and body are missing

    @Darrel Same here, strange… but on the bright side, update and delete work because of the apply to each statement ๐Ÿ˜€

  16. Thank you. Unfortunately creation of recurring events does not work. Anybody has any idea?

  17. Echoing last comment. Any workaround or suggestions for recurring events?

  18. admin

    August 27, 2021 — 6:22 pm

    I looked into fixing up the issues this automation has with recurring events, and I couldn’t find a solution. It looks like MS Power Automate / MS Flow is a very unreliable product – calendar alteration events don’t fire consistently. Part of the challenge is the debugging/troubleshooting interface. With these calendar events, you’ll sometimes see hundreds of events in a day and it is impossible to figure out which event is for just the recurring event that you care about…

    Ultimately, if you want a reliable Outlook -> G-Calendar sync, you’ll have to purchase one of the paid solutions in the market.

  19. The ‘When an event is added, updated or deleted V3’ flow has broken (Outlook is returning all events as “deleted” regardless of their true ActionType, e.g. https://powerusers.microsoft.com/t5/General-Power-Automate/When-an-event-is-added-updated-or-deleted-V3-has-suddenly/m-p/961874#M72972); as Jacob noted it’s pretty clear this mechanism isn’t reliable / functional.

Leave a Reply

Your email address will not be published. Required fields are marked *

Copyright © 2021 Jacob Filipp

Theme by Anders NorenUp ↑