ICloud – syncing calendars across different services

calendarexchangegoogle-calendaricalicloud

Is it possible to sync calendars across services on a Mac? For example, I have an Exchange calendar and I want to automatically copy all events to an iCloud calendar. This would yield two different calendars with the same content.

It's very hard to search for an answer as most posts refer to syncing across devices, which is a different problem. Based on a few posts I found, it sounds like BusyCal may be able to do this, but I could not figure out how.

Update: I emailed BusyCal directly and got the following response:

It is not.

If your primary interest is in making a calendar available for others
to subscribe to via WebDAV, you may do so through iCloud, Google,
Fruux and Office365/Exchange.

If the calendar is hosted on iCloud, you can share the calendar
publicly as a WebDAV feed, as described in iCloud Help:

http://support.apple.com/kb/PH2690

If the calendar is hosted on Google, you can make it available as a
WebDAV feed, as described in Google Calendar Help:

http://support.google.com/calendar/bin/answer.py?answer=37103

Or to publish it in html format for embedding in a web page:

http://support.google.com/calendar/bin/answer.py?hl=en&answer=41207

If the calendar is hosted on Fruux, here is how to make it available
both as a WebDAV feed and embedded html:

http://blog.fruux.com/2014/10/02/public-calendars/

If the calendar is hosted on Office365/Exchange, here is how to make
it available for Exchange users, html and a webdav feed:

https://support.office.com/en-us/article/Sharing-your-calendar-in-Outlook-Web-App-7ecef8ae-139c-40d9-bae2-a23977ee58d5#__toc375064920

Best Answer

I found a solution that seems to work. You can use Zapier, which is a service for building workflows between different services (similar to IFTTT). One of their "zaps" or apps is Cronofy Calendar Connector. You can add various calendar accounts to it (including iCloud, Exchange, Google) and then have it create or delete an event in one when it is created or deleted in another.