SOLVED

Sync multiple calendars in one

Copper Contributor

Hello guys,

 

I'm currently trying to find a solution to implement in the company I work (I'm the IT Admin), so...

 

Our administrative - the person who manages all the calendars from the CEO - needs a unified calendar from 3 different mailboxes (2 outlook and 1 gmail), I have extensively looked for ways to do this but always end up in manual procedures which don't make sense or paid add-ins. 

 

Ideally, every appointment/meeting received in all 3 CEO's mailboxes would sync directly to the administrative's PC.

 

Just to picture this...so all the calendars from the mailboxes below:

 

1. ceo@contoso.com

2. ceo@contoso2.com

3. ceo@geemail.com

 

into account:

admin@contoso.com

 

 

Is there a way to do this?

 

Is it possible to create an automatic appointment/meeting redirection to different calendars?

 

Thank you very much in advance!

 

JC

29 Replies

If a paid solution is an option, we sync across Office 365, outlook.com, Gmail, and Gsuite accounts. Totally cloud based. Nothing to install. Nothing to configure in Outlook. (On-prem Exchange requires an impersonation service account).
https://CalendarBridge.comsyncs.pngexchange1_OSA_CB_annotated.png

I know it's an older post, but it's still a huge problem, so we built a solution. Https://Calendarbridge.com. set up a free trial in 5 minutes.

@IT MEC Group So, the best advice I can give you here is to use what's available.

There are 3 scenarios I can think of that you could be describing.

1.  The assistant is a shared assistant that handles adjustments to the schedules of all of the CEO's

  • The executives may have a grouped calendar they all view that updates all of them at once
  • The executives typically have their own calendars that they add and delete from on their own

2.  The assistant is a shared one with basic viewing or edit (not add or delete) access to all the CEO's schedules

  • There may be a shared master calendar for the CEO's to see everything that goes on in their group or the whole company
  • They may or may not set up their own appointments on their calendars.

3. The assistant is a shared one but makes no adjustments to the CEO calendars and only needs to see information

  1. In this scenario, there are other possibilities

              ----You want a Unified View

              ----You want as little adjustment to either end as possible

 

I have 2 methods for you:

Calendar Sharing, from the CEO to the Assistant;  This method means you share every CEO's calendar from their end, then add the calendar as a shared calendar to the Assistant.  When this is done, you have to set up their view for them.  You add the shared calendars under their own folder heading.  This creates an exact copy of the calendars from the CEO's in the assistant's account, and creates the linkage with whatever sharing level you set.  

However, I've found this direct to the user operation to be a bit unprofessional.  I create an Active Directory Group\Exchange Group called "Assistant" or the like, and add the assistant to the group.  Share the calendars to the group in that fashion and all access will propagate to the assistants.  Any assistant can be removed from that group during their exit pathway during occupational mobility (let go, retire, promotion etc) and the access will change in a couple of hours to a day.  This model fits one or many assistants with one or many CEO's

With both of those, you will have to set up each assistant for their viewing of the calendars by adding each shared calendar, giving it a color, and placing all of the added calendars under their own heading in outlook (drag\drop works).  Then you can activate them all by activating the heading with a checkbox.  In older versions of outlook, this was done by adding a calendar folder then dropping the calendars into it.  This is where the copies of data will be kept.  You can rename the calendars also, to make sure you can easily tell which one is which.

When you are done with that go to view and save this view as the default.  It will now be that way on open.  With this method, you can adjust what they can see and what they can change.

 

There is also DELEGATE access which is set up in exchange.  This can utilize the Group ability I describe above, and gives you the ability to quickly add or remove the ability from any user.  A DELEGATE access role gives another user the same access to your outlook items that you have.  They can send messages, add calendars, events, tasks, etc  AS IF THEY WERE THE PRIMARY USER.

Some setups have included using Power Shell to Add and Remove the role for the group at different times of the day so that assistants can perform their normal messaging, memorandum, and scheduling functions for the executives during working hours, but cannot do any damage in their off hours.  Usually a Service account with ADMIN access to AD and Exchange handles this when a specific email is recieved (a punchout email or task).

 

There is also the programming method that uses a RESOURCE calendar called Assistant.  This calendar is set up to accept all conflicts.  Each CEO then gets 2 FLOWs.  For any event that gets created on their Calendar, the resource recipient that gets added to it is the Assistant calendar, and their INITIALS or the ORGANIZER information get added to the subject.  The second flow moves recieved messages from the resource to a temporary folder, waits for 5 to 10 minutes, then deletes the folder.

You add the Assistant group as a Delegate of the resource (the resource administrator).  This assumes they need to see all the information from the CEO's, but they cannot move or adjust the info.  The events can be Colored based on the sender info (the email address it came from) but this is only a flagging value and may not appear in all viewing apps.

 

Executives do more than sit in an office.  Many are active in outreach programs and charities.  They like to have copies of these calendars on their main availability calendars.  Any calendar they link to, even if they cannot make changes to it from their main outlook profile, can still be used in a FLOW to add a vague event to their internal calendar.  They can even add another calendar to their own profile to manage philanthropic events.  These calendars can be shared in the same ways as above, however, if you add a FLOW to copy events to their main calendar in a VAGUE MANNER.

 

The philanthropy calendar idea can also apply to a private calendar or a home life calendar for any user.

@IT MEC Group Sorry, I've been fielding this type of thing in several different Forums.

There are a few questions to ask yourself.

How much time can I spend on this?

How much work do I want to do?

What kind of communication do you want (one way to copy from one to the other, two way with control of add edit delete at both ends)?

 

The typical Microsoft provided way is to do a commanding, one directional, complete rewrite of an entire calendar from one service to the other.

However, the professional solution for two way, clean transfer is using an intermediary database and server to handle the parsing of data in different formats so that it can be written back and forth.

First, it's best to default your Exchange calendars to use plain text in the body of the event.  If there is HTML, you could end up with a problem later.  Special notices can be added as attachments in a native document format.  Make sure this is known to all involved, or, you can try to handle the HTML on your own.

Microsoft does provide a way to do this in Power automate.  However, if you want to have 2 way communication between multiple calendars, you will need at least 3 FLOW apps for each calendar.  With one way communication, you need to have 3 Flow operations for each calendar that has any control over the others.

You will also need to create a set of sharepoint lists.  First, a Main Events ID's list which will grab the calendar ID and event ID for every calendar's events. 2 values for each calendar because the Calendar has a unique ID and the events have a unique ID.  Events that get copied will have a set of ID's in each calendar.  The next set of information is the TIME ZONE, one for each calendar, unless they all return the same time zone format in UTC format.  In this instance, even calendars in different time zones will be aligned properly.

There are several things to remember:

Never copy recipient info.  You can have it added as an attachment in an excel or similar file type if you think you'll need it.  When you want to add recipients from the calendar that did not create it, you should be able to add them to a list that fits each sending calendar.  Another way to do this is to add a file ID in your main list.  You will need one for each adress, and each list should give you the recipient address with the type (google has only one type).

This way, you can keep those lists and pull them based on the file id.  This is called an ID matrix message server.  When the Flows trigger, they test how they got triggered.  In every Set of flows, you can check against the "ISUPDATED" value in the Exchange event to decide if the event was begun here or in another calendar.  IF you then update the Exchange event, then wait for a minute or two before updating the next calendar, this value will help with checking again in that flow, which will stop the flows from permanently Looping.  However, you will have to make your own testing for the Exchange calendar Flow.  The way to do this is to GET CHANGED EVENTS in google Calendars.  Using the current event's ID in exchange, you get the row, then compare each id in the changed google event lists, with that ID (don't forget to check if they are empty lists).  IF they are empty lists, no event's have been changed since last run, they need to be updated.  If there's a changed event in either other calendar whose ID aligns in the sharepoint list, you can bet that calendar's flow is updating the other calendars.  This is the preferred way for update tests.

In the update flows, you can set up a test for the recipients having changed or if particular recipients are included.  This is especially important with resource recipients.  In exchange, they can be booked for as many as a resource mailbox has listed (how many in stock).  For buildings and rooms, you instead get only one.  In Google, they are all the same, with a single type and you need a special automator applet to have them automated.  If you have these in both google and in Exchange, you can enter them from either side, but it would be better to add resources from each to their own recipient list and keep track of this with an excel file per calendar per event, and the file should get a timestamp with G or EX or the like for a name.  If you have multiple accounts in either service, use the EventID, and CalendarID that you can search for later.  Now you don't have to copy recipient lists or leave them out.

Another way to deal with this is to simply update by pulling the recipient list from how it is currently while other parts are simply copied from other sections of other calendars.

For the BODY, you'll need to turn HTML from exchange to Text for the others, but you can add an attachment to them for the HTML that can be opened later.  When they update Exchange, you simply switch to text and copy it right over, dumping the HTML file.

For all creation and deletion, never copy over the recipients.

For deletion, you will first need to test if the event still exists in the other calendars.  The fastest way is to test if the row still exists in the main sharepoint list.

If so, copy the blank list template, this will make a temporary file.  Copy the Row from the main list piece by piece to the temp list, then delete the row from the main list.  Now delete the other events from other calendars by matching in the temporary list.  When you're done, delete the recipient list files, and the temporary list file.

 

On Creation, Each calendar gets a file with recipients which is what will be used to fill the recipient lists and check them.   

@HalDavis85 

This continues to be a major issues with not a lot of good solutions. I tried CodeTwo but ended up with bunch of duplicate entries and each sync cycle made the calendar worse. I tried to register for a relatively expensive ConnectingSoftware but was not able to configure it right. They have a lot of cool videos that make the program look really cool but I just couldn't get it to work. And besides these two I tried a lot more products but they were either too expensive (esp with monthly fees) or didn't work at all.

 

For me eventually the fastest and probably the easiest way was to use a software called gsyncit although it requires creating an intermediate google account. I had used their free version for many years to sync my outlook calendar with my family google calendar and it worked great. Their free version creates a delay of 15 seconds before your outlook can start but that was not a big issues. However, the free version only allows you to work with 1 account (1 outlook and 1 google).

So finally I coughed up 20 bucks for a one time fee for one computer. No subscription is needed. It is an addin to your outlook and you can program it to work in background, at the start or close or you can manually start the sync process. (FYI: I am in no way affiliated with this company or have any financial benefit or interest).

 

I had to create multiple steps to sync my two outlook calendars but all the steps run automatically with one click once you are done configuring it.

Following are the steps I used. Some of the check boxes I adjusted in the Mapping and sync options are also listed.

 

Step 1:

OutlookCalendar1 And Google Calendar: Two way sync, Manually confirm edits, Manually restricted sync range to 30 days before and 30 days after in the beginning to avoid creating a mess. You also have the options to only sync accepted meetings or all meetings. Since I rarely respond to calendar requests I unchecked that box. Your situation might be different.

Step 2:

Google Calendar And Outlook 2: Two Way Sync. Same options

Step 3:

Google Calendar and Outlook1: 1 way sync from google to Outlook1. Although I got similar results with 2 way sync.

 

People looking to sync more than 2 outlook calendars will have to add a few more logical steps to make it work.

 

Once you click on the sync button all the steps run in sequence automatically with just 1 Click. This is a screenshot

1234.jpg

 

Another great feature of this program is a function called remove duplicates. I ran it to clean up the mess created by Codetwo and it helped me remove thousands of duplicate entries within a couple of minutes painlessly.

 

Hope this helps.

 

@IT MEC Group 
You can try out OutlookBridge, I developed to sync my company exchange calendar and contacts with my private Outlook.com account. Check it out and download from my homepage http://Saller.net, it’s for free and you can send me bug reports or proposals how to improve

@Dawid Zych 

I cannot seem to find the template you're referring to. (I know it's been 4 years since).

Any tips?

Still nothing I can find as a viable and reliable solution. Wish that MS would just integrate the feature.
I've been a CalendarBridge customer for several years now and they've been reliable.

I do wish that MS would make this possible as well, though.

An old post, but one that is still relevant (and still without a native solution)... check out calendarbridge.com. 
CalendarBridge monitors your Outlook and Google calendars and when an event is created or updated in one calendar, we automatically update your other calendar to make sure your availability is consistent between the two calendars. Updates propagate within a minute or two, not every 15 minutes or so like some other automation tools. You can also choose how much, or how little, information you want to sync between the two calendars Setup takes less than 5 minutes.