1. Home
  2. Guides
  3. Calendar & Scheduling
  4. How to sync Google Calendar events to Outlook calendar with Power Automate (create, update and delete)
Calendar & Scheduling

How to sync Google Calendar events to Outlook calendar with Power Automate (create, update and delete)

Build a one-way Power Automate flow that copies every new, changed or deleted Google Calendar event to your Outlook Calendar, including the Google Meet link. An Excel table in OneDrive keeps track of which Google event matches which Outlook event.

  • By Nur Islam
  • 19:21 video
  • 14 steps
  • 4.4K views
Jump to a step (14)
Who this is for

If you book meetings in Google Calendar but your team lives in Outlook, you end up re-typing events, then forgetting to move them when times change. Deleted events stay behind in Outlook and cause double bookings.

This flow watches one Google Calendar. When an event is added, updated or deleted, it converts the start and end times, then runs one of three branches: create the event in Outlook, update it, or delete it.

To update or delete the right event, the flow needs to know which Outlook event belongs to which Google event. It stores both event IDs side by side in an Excel table in OneDrive. Every connector used here (Google Calendar, Office 365 Outlook and Excel Online (Business)) is a standard connector, so there is no SharePoint and no premium licence involved. This is a one-way sync from Google to Outlook.

What you need

  • Microsoft 365 Business Basic or Standard (Outlook and Power Automate)
  • A Google account with the Google Calendar you want to copy
  • An Excel workbook in OneDrive for Business with a table that has Google event ID and Outlook event ID columns

Step by step

0 of 14 done
  1. 01

    Create an automated cloud flow

    Open Power Automate at make.powerautomate.com (or from the app launcher in Outlook). Go to Create and select Automated cloud flow. Name it something like Sync Google Calendar events to Outlook calendar.

  2. 02

    Add the Google Calendar trigger

    Search for Google and pick the Google Calendar trigger When an event is added, updated or deleted from a calendar, then click Create. Connect your Google account the first time you use it, and choose your calendar in Calendar id.

    Under How often do you want to check for items? set the frequency and interval. In the video I use a short interval in seconds so the demo runs quickly. For everyday use, an interval such as 1 hour is fine.

    This one trigger fires for all three kinds of change, and it returns the event title, description, start and end time, location and the action type.

  3. 03

    Convert the start and end times

    Add the Convert time zone action from the Date Time group. Google Calendar and Outlook use different date formats, so this step puts the time in a format Outlook understands.

    • Base time: the Start date time from the trigger
    • Source time zone and Destination time zone: your local time zone (the video uses Chennai, Kolkata, Mumbai, New Delhi)
    • Time unit: Sortable date/time pattern

    Rename the action Start time. Add a second Convert time zone action with the same settings for End date time and rename it End time.

  4. 04

    Check whether the event was added

    Add a Condition from the Control group. On the left pick Action type from the trigger, choose is equal to, and type added on the right. When a new event is created in Google, the flow goes into the True branch.

  5. 05

    Create the event in Outlook

    In the True branch, add Create event (V4) from Office 365 Outlook.

    • Calendar id: Calendar (your main Outlook calendar)
    • Subject: Title from the trigger
    • Start time: the output of the Start time convert action
    • End time: the output of the End time convert action
    • Time zone: your local time zone

    Open Advanced parameters and add Body and Location. Set Body to the trigger's Description and Location to the trigger's Location. If a field is missing from the dynamic content list, click See more.

  6. 06

    Create the Excel table for event IDs

    In OneDrive, create a new Excel workbook online so the cloud flow can reach it. The video names it TG Sync Google Calendar events to Outlook. Type two headers: Google event ID and Outlook event ID. Select them, choose Format as Table, tick My table has headers and click OK. You can keep the default table name Table1.

    This table is what makes updates and deletes possible later. It is the only place the flow can look up which Outlook event matches a Google event.

  7. 07

    Save both IDs with Add a row into a table

    Still in the True branch, add Add a row into a table from Excel Online (Business). Set Location to OneDrive for Business, Document Library to OneDrive, pick the file and Table1.

    Open Advanced parameters to show the columns:

    • Google event ID: Event ID from the trigger
    • Outlook event ID: Id from Create event (V4)

    Save the flow. If Power Automate says the interval value is not valid, raise the trigger interval (the video changes it from 10 to 20 seconds) and save again.

  8. 08

    Test a new event

    Click Test, choose Manually, then create an event in Google Calendar with a location, a description and a Google Meet link. After the next check, the event appears in Outlook and a new row with both IDs appears in the Excel table.

    You will notice the Google Meet link is missing from the Outlook event. The next step fixes that.

  9. 09

    Add the Google Meet link with an expression

    The trigger's raw output contains the meeting link as hangoutLink in the body, but it does not show up in the dynamic content list. Edit Create event (V4), put your cursor at the start of Body, press Enter to make room, and use Insert expression to add:

    triggerOutputs()?['body/hangoutLink']

    The expression reads the trigger output and pulls the Meet link from the body. Check the property name against your own trigger's raw outputs. Save and create another test event with a Meet link. The link now appears in the Outlook event body.

  10. 10

    Handle updated events

    In the False branch of the first condition, add a second Condition: Action type is equal to updated.

    In its True branch, add Get a row from Excel Online (Business). Point it to the same file and Table1, set Key Column to Google event ID and Key Value to the trigger's Event ID. The flow now finds the row and reads the matching Outlook event ID.

  11. 11

    Update the Outlook event

    Add Update event (V4) from Office 365 Outlook.

    • Calendar id: Calendar
    • Id: Outlook event ID from Get a row
    • Subject: Title from the trigger
    • Start time and End time: the converted times
    • Time zone: your local time zone

    In Advanced parameters add Body and Location. In Body, insert the same triggerOutputs()?['body/hangoutLink'] expression, press Enter, then add Description. Set Location to the trigger's Location.

  12. 12

    Handle deleted events

    In the False branch of the second condition, add a third Condition: Action type is equal to deleted. In its True branch, add another Get a row with the same file, Table1, Key Column Google event ID and Key Value set to the trigger's Event ID. The trigger only gives you the Google ID, which is why you search on that column.

  13. 13

    Delete the Outlook event and the Excel row

    Add Delete event (V2) from Office 365 Outlook. Set Calendar id to Calendar and Id to Outlook event ID from the last Get a row.

    Then add Delete a row from Excel Online (Business), pointing to the same file and Table1. Set Key Column to Google event ID and Key Value to Google event ID from Get a row. This keeps the table clean. Save the flow.

  14. 14

    Test creates, updates and deletes together

    Put Google Calendar and Outlook side by side. Change the time and description of an event, add a new one, rename another and delete one. After the next check, Outlook shows the same events, times and names, and the deleted event is gone. Open the flow's run history to confirm each run succeeded.

    This is an automated flow, so it keeps running. Use Turn off on the flow page when you do not need the sync.

Tips and common problems

  • Power Automate may reject a very short trigger interval with an 'interval value is not valid' message. The video uses 20 seconds for the demo only. Use a longer interval, such as 1 hour, for normal use.
  • Create the Excel file online in OneDrive and format the headers as a table. The Excel Online (Business) actions can only see data inside a table.
  • The Google Meet link is not in the dynamic content list. Use the triggerOutputs()?['body/hangoutLink'] expression in the Outlook event body.
  • Set both time zone boxes in Convert time zone to your local time zone and use Sortable date/time pattern, or Outlook events can land at the wrong time.
  • Events created before you turned the flow on have no row in the Excel table, so the update and delete branches cannot find them.
Still stuck? Ask AI to help you fix itChatGPTClaudeGeminiCopilotPerplexityGrok

How the three branches work

Action typeWhat the flow does
addedCreates the event with Create event (V4), then saves the Google and Outlook event IDs with Add a row into a table.
updatedFinds the Outlook ID with Get a row, then changes the event with Update event (V4).
deletedFinds the Outlook ID with Get a row, removes the event with Delete event (V2), then removes the row with Delete a row.

Expression used in this flow

triggerOutputs()?['body/hangoutLink'] returns the Google Meet link from the trigger so it can go into the Outlook event body.

Questions

Can Power Automate sync Google Calendar to Outlook automatically?

Yes. The Google Calendar trigger When an event is added, updated or deleted from a calendar checks on a schedule you set, and the flow creates, updates or deletes the matching Outlook event with the Office 365 Outlook actions.

Is this a two-way sync?

No. This flow is one-way, from Google Calendar to Outlook. For the other direction there is a separate flow in this video: https://www.youtube.com/watch?v=33SWmcCFXNs

Why do I need an Excel file to sync calendars?

Google and Outlook give the same event different IDs. The Excel table stores both IDs so that when a Google event changes or is deleted, the flow can find the exact Outlook event to change.

Does this need a premium Power Automate licence or SharePoint?

No. Google Calendar, Office 365 Outlook and Excel Online (Business) are standard connectors, and the Excel file lives in OneDrive for Business.

Video chapters
Ask a question in the comments Last checked 26 Sep 2026. Screens change: if a step looks different, tell me in the comments.