Here at Cronofy we’re acutely aware that things are not always 200 OK, and Monday was one such day as Google Calendar was largely down for 3 hours.
Our platform was built from day one to account for such periods. It is one of the reasons that we hold a copy of calendar data that we continuously keep up-to-date. In addition to raw performance, when a service becomes unavailable we can respond to availability queries with the latest data we have which is almost always preferable to no response at all.
At all times we act as an intelligent buffer between your application and the calendars of your users. Usually this buffer is cleared as soon as it is added to, but during periods of disruption we’ll accumulate calendar changes, and reconcile them when the service becomes available again. From your point of view, you don’t need to worry that Google Calendar is down, we’ll keep you informed via our status page of the situation and we will synchronize everything as soon as we can.
These benefits do not come without some cost. In places it comes all the way back to the design of the API, for example when creating an event you receive a response of 202 Accepted (we’ll do that) rather than a 200 OK (we’ve done that) as many developers expect. One reason for this is that we may not be able to create the event straight away. Rather than needing you to code around the reason for that, of which calendar service downtime is one of the most significant, we handle such edge cases transparently.
While sometimes initially strange, this approach helps us provide a reliable service that shields you from the complexity of integrating with multiple calendars services. Each of them has their own service levels and quirks that it’s our job to worry about, not yours.
Our goal is to help you to write less code, in the small that means creating an event is an "upsert" so you don’t have to care whether you are creating or updating an existing event. In the large that is creating a unified scheduling platform that integrates with all major calendar providers, and features such as UI Elements that can drastically reduce the work required to connect your application to your users’ schedules.