Hi Markie,
This is probably possible but it will get complicated. At minimum, you will need three flows:
- Triggered on "When an event is added, updated or deleted (V3)" for Outlook calendar 1. Updates Outlook calendar 2 and Gmail calendar.
- Triggered on "When an event is added, updated or deleted (V3)" for Outlook calendar 2. Updates Outlook calendar 1 and Gmail calendar.
- Triggered on "When an event is added, updated or deleted from a calendar" for Google calendar. Updates Outlook calendars 1 and 2.
The reason this gets complicated is that the flows will probably end up triggering each other, creating a loop. Therefore you would need to have some property on all 3 calendars that indicates if the particular item has already been synced or not.
For example, if you had an "IsSynced" property that is true/false, after every flow's trigger you would want to have a condition that checks the value of IsSynced, and only run the rest of the flow if the value is false (thus preventing an infinite loop). Each flow would need to have some step that sets the IsSynced property to true.
This is a challenge whenever you are setting up a two (or more) way sync with a flow. If possible, it helps to have one data source (in this case, a calendar) that can serve as the "source of truth", and populate each of the other calendars in a one-way sync. Doing so greatly simplifies the flow logic.
Please let me know if this helps.
Tom