Kloudless Blog

Kloudless Unified APIs enable you to code once and integrate many

Kloudless offers a Unified Calendar API that supports Google Calendar, Outlook Calendar, CalDAV, and iCloud (via CalDAV). In our previous post, we covered how to find a meeting time that worked for multiple users via the Google Calendar API. Unsurprisingly, Outlook Calendar also supports this functionality by providing when users are free or busy via their APIs. The most common use case would be for employees or internal users within a company to query for availability because they all use the same cloud service provider.

However, external users or employees of different companies may use various calendar services, specific to their company. These existing cloud service providers usually don’t provide an API endpoint to query other cloud services (i.e. a cross-cloud query). In this scenario, a developer would have to query the API endpoints of both services and parse the different response formats based on the API documentation, not to mention the additional logic to determine an available meeting time.

The rest of this post will show you how to use the Find Availability endpoint of Kloudless’ Unified Calendar API to query for calendar availability across accounts from different cloud service providers (Note: the account id refers to the specific identifier associated with each account authorized via OAuth).

Find Availability across Multiple Accounts

LIST CALENDARS IN AN ACCOUNT

Before finding availability across multiple accounts, a developer would need to know the calendar_id of the calendars to query. Here is an example request and response to list all calendars for a specific account:

The developer can use the id field in the response to use later in the find availability query. However this is not completely necessary. The Kloudless Calendar API has a default primary calendar as explained in a previous post.

Multiple accounts, no calendars specified

The most basic request for cross-account availability is to use the default primary calendar. In the following request and response, the developer has three separate accounts (123, 456, 789) and their respective bearer tokens (TOKEN1, TOKEN2, TOKEN3). The developer is trying to find available times among all three calendars.

Specifically, the developer wants to find a time for a 45-minute meeting during the 8 AM – 5 PM GMT+8 time window on March 13, 2019. Note that the developer can pass the time window start and end times in any time zone (and, in fact, differing time zones within the same request). Furthermore, the calendars need not be in the same time zone as the constraints. The important point is that the times are passed as ISO 8601-formatted strings—Kloudless will handle the rest.

The response indicates that any 45-minute slot between 8 AM – 9:30 AM GMT+8, 10 AM – 12 PM GMT+8, or 1 PM – 2 PM GMT+8 on March 13, 2019 work for the meeting.

MULTIPLE ACCOUNTS, Multiple CALENDARS SPECIFIED

Similar to the previous request, the developer wants to find the same available time period during the same window for the three calendars to participate in a meeting. In addition to the primary calendar; however, the developer also checks additional calendars. As a result, the calendar parameter should be specified with the account_id and related calendar_id.

Thanks for reading about how to make a cross-cloud or cross-account API request! We hope that developers can enjoy and utilize this functionality to schedule meetings for their users across different calendar services. Please email us at support@kloudless.com with any questions or feedback!

Categories: