Forum Discussion

IT MEC Group's avatar
IT MEC Group
Copper Contributor
Jan 30, 2017

Sync multiple calendars in one

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

  • Maybe MS Flow can help. Check this templates.
    It is hard to sync calendars in both ways, and in outlook there is no trigger 'When event is deleted', but all new meetings you can send automatically to one calendar.

  • Dawid Zych's avatar
    Dawid Zych
    Iron Contributor

    Maybe MS Flow can help. Check this templates.
    It is hard to sync calendars in both ways, and in outlook there is no trigger 'When event is deleted', but all new meetings you can send automatically to one calendar.

    • IT MEC Group's avatar
      IT MEC Group
      Copper Contributor
      Wow cool Dawid! This helps a lot...

      Thank you very much!
    • mderooij's avatar
      mderooij
      MVP

      Like IFTT, Flow would be an option - initial loading of the overview calendar being a one-time manual sync, and maybe repeat periodically to make sure the calendars are kept in sync (as it's one-way)

    • bas-r's avatar
      bas-r
      Copper Contributor

      Dawid Zych 

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

      Any tips?

      • JonnyCCSW's avatar
        JonnyCCSW
        Copper Contributor
        Still nothing I can find as a viable and reliable solution. Wish that MS would just integrate the feature.
  • If you want to sync data from multiple mailboxes (eg calendars) into one, you could give Exchange Sync by Connecting Software a go:
    http://www.connecting-software.com/cb-exchange-server-sync/

     

    If you don't want to spend any money on this, you need to resort to means offered by the mail platforms used. GMail is the odd one out, I'm afraid there's no 'automated' process offered out of the box except for following strict manual procedures. If it's a one-way sync, you could develop something yourself, eg clear the overview calendar, and import/merge the source calendars using imap (as GMail doesn't support EWS).

     

    Since the tools mentioned solve a business problem for you, in addition to being supported tools, there is a business case making the price worth compared to manual labor.

  • Hobyvh's avatar
    Hobyvh
    Copper Contributor

    Same problem for us with no solution yet.

     

    Our situation is that we are one of 2 vendors working with a client.

    All 3 organizations have Office 365. Most of us in the 2 vendor companies have acquired accounts in the client's org but all of our email and meetings get sent to and from our vendor accounts—so though we can see calendars for our client colleagues, we can't see each others' calendars.

     

    If we could automatically sync our vendor account calendars with our corresponding client account calendars—everyone could then always see current calendars of everyone on the project through the client accounts.

     

    One may ask, "Why doesn't everyone just use their client addresses for everything on that project?" The problem with that is actually that we're also using Teams but our client doesn't have everything we'd need enabled on their instance, so we're using one of our vendor Teams instances as the working in progress home for the project meetings, messaging, and file share. If we all just used our client accounts, they're all treated with Guest permissions which have many features unavailable and we'd be stuck in the virtual lobbies of our own meetings.

     

    So much cumulative time is wasted every day, just asking when we have open time. It is currently 2019, can't this situation be solved?

    • KamiA's avatar
      KamiA
      Copper Contributor

      I have found a solution for syncing multiple office 365 calendars from different accounts and domains, by using extra calendars as an in-between and by using a free and open source plugin called CalDav Synchronizer (https://caldavsynchronizer.org/).

       

      The way I solved it is in 3 steps:

      1. I have a sync profile for 365 Calendar A with a Nextcloud calendar A which I host my self (but you could also use a Google Calendar A for this), only for events with category A or no category. (replicate sync profile) For every event synced this way, the category color in Outlook is assigned which corresponds to category A (make sure to set the correct color manually in Outlook)

      2. Then I have another sync profile in the plugin for a different 365 Calendar B (within a different domain), which imports new and edited events from Nextcloud calendar A, but only for events with the before mentioned category A, and again, assign the category color of category A. (merge sync profile)

       

      3. Repeat these steps for reverse sync, so use 365 Calender B, Nextcloud calendar B, and category B (with a different color) in step 1, and 365 Calendar A an Nextcloud calendar B in step 2.

       

      The categories are used to prevent an infinite loop of syncing the same event back and forth.

       

      Cons: This is a local solution, run as an Outlook Plugin on my laptop, so it only works if my computer is turned on and Outlook is running. Sometimes the sync pop-up hinders using outlook for a few seconds.

      Pros: It can run automatically and instantly on every event change or event addition and/or only on a defined interval. If you want, you can set copied items as 'private', so the details are protected.

      See also: https://sourceforge.net/p/outlookcaldavsynchronizer/wiki/Home/

      Hope this helps.

      • Hobyvh's avatar
        Hobyvh
        Copper Contributor

        KamiA Thank you for your suggested solution. That looks like a clever, free way to get sync working.

         

        Unfortunately for me I'm also looking for something that works cross platform, since most of the time I'm not using Windows to do my work. I might try to get this working in a Windows system, just for this, but otherwise my search continues.

    • IT MEC Group's avatar
      IT MEC Group
      Copper Contributor
      Thanks Konrad!

      But we are not looking to spend money on this...

      Any other suggestion?
      • Konrad Sagala's avatar
        Konrad Sagala
        MVP

        Normally you can import data from one outlook to another, but in fact there is no synchronization between them without external tools.

  • HalDavis85's avatar
    HalDavis85
    Copper Contributor

    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.

  • HalDavis85's avatar
    HalDavis85
    Copper Contributor

    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.   

    • Asinghal165's avatar
      Asinghal165
      Copper Contributor

      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

       

      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.

       

  • Sallernet's avatar
    Sallernet
    Copper Contributor

    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

  • CalendarBridge1's avatar
    CalendarBridge1
    Copper Contributor

    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. 

Share

Resources