Extended Google Calendar synchronization
Recently we've been busy extending our Google Calendar synchronization services. This means that we now support the creation and editing of event and calendars from both sides. Whether you prefer working from within Google Calendar or Calendar42, all your actions will be synchronized. Pretty neat!
However, there are some fundamental differences in the way events are handled between Google and Calendar42 that might cause some confusion. To prevent you from being puzzled we will provide you with some in-depth explanations on where the differences lay. Be ready for some geeky, but quite interesting stuff.
Absence of push on the Google side
Google does not support push services on calendar/event changes. This means that we, as Calendar42, need to actively check on the Google side wether changes have taken place, in order to maintain an up-to-date synchronization of all your calendars and events. Not such a big effort for us, but it has some implications for our system.
To prevent our system from overflowing Google with update-requests we now decided to let our system ask Google for updates every 15 minutes. Something which is much appreciated by Google of course. For our users however, this implies that an automated up-to-date synchronization might take up to 15 minutes at maximum. We are fully aware of the fact that this is something which should be improved because we wish to prevent you from having your personal planning out of sync. In time, we will reduce the automated delay to a bare minimum. For now, just remember that any syncing discrepancies might be a result of your automated synchronization still being on queue.
Google's primary and secondary event classification
One of the fundamental differences in the way event are handled by Google and Calendar42 is in the event classification. As you might know, events on Calendar42 can be assigned to multiple calendars. (See image below) This might be useful if you wish to share events with other contacts or categorize events within multiple calendars.
On your calendar grid, the event is shown as a stacked pile of events, which makes sense since the event is created for both calendars. (See image below)
When syncing the events to Google something which you might not expect happens on the Google side. In the case that one single event on the Calendar42 side is assigned to two different Google Calendars, the event is split up into two separate events on the Google side after syncing.
On the Google back-end, one event is now classified as the primary event, the other as the secondary event. Both events share the exact same event details, but now have a single-sided relation. This means that only the changes made on the primary event are copied onto the secondary event. This does not work the other way around. You might end up with a situation in which the primary event does not follow the changes made on the secondary event. (See image below)
Since the event classification performed at the back-end of Google is not communicated at the front-end, it might come as a surprise that this single-sided relation just came into being. Luckily Google does provide some subtle hints for distinguishing primary from secondary events. For instance, a small icon is added to the secondary event to indicate the relation. (See image below)
Furthermore, on changing the details of the secondary event a message box appears stating: "Are you sure? - You are about to make changes that will only be reflected on calendar Calendar 1." (See image below)
For now, Calendar42 only syncs the most recent event changes from the Google side. Whether these changes relate to the primary or secondary event is not taken into consideration. Consequently, accidental moving of the secondary event does still results in a correct viewing of the event details on the Calendar42 side. Not fully fail-proof, but we're getting there.