calendar api

Streamline Scheduling With Nylas Free-Busy for Gmail, Office 365, and Microsoft Exchange

Enhance privacy while streamlining scheduling with Nylas free-busy.

Lou Kaileh | December 12, 2019

It’s often a challenge to find time to meet with someone these days.  Our working schedules get filled up quickly and making time for a meeting is ever more complicated.  Trying to find an open time slot that works for a group of people, all of whom have busy schedules, has become a difficult task.  We rely on our calendars to figure this out, but it usually involves a type of negotiation. “I’m available after 3 on Monday, but I’m busy all of Tuesday, and can probably squeeze in a meeting after lunch on Wednesday”.  Everyone involved would bandy about similar communications back and forth until a consensus is found. This all takes time and effort…wouldn’t it be great if your users could just find that one slot of time with one inquiry?

The main calendaring solutions (namely Microsoft Exchange Calendar and Google Gsuite Calendar) have somewhat addressed this issue by making it possible for people managed by the same organization to peer into each other’s calendars and make hard suggestions for open time slots which may or may not be accepted by all the other meeting participants.  In an effort to allow for programmatic solutions, both offer various API endpoints that you could poll to discover the common open time slots across calendars.  With both providers, this is strictly limited to within the organization that the calendar belongs to.

The Calendar API that Bridges the Scheduling Gap

Nylas makes it easy to deal with these scheduling complexities. We built multiple API integrations with third-party providers and normalized their data to return it in a single, standardized response. Since embarking on this challenge, we’ve encountered quite a few difficulties.

One notable challenge is that every provider has a different way of handling free-busy information. For example, Google and Microsoft Exchange vary distinctly in the way they handle statuses, time frame visibility, and the number of results that are returned. 

 
Status Options

Time Frame Visibility

Results

Google

free, busy

3-month window

Unlimited results
Exchange
free, busy, tentative, working elsewhere, away

2-month window

Maximum of 1000 results

Anyone who wants to build integrations with each of these providers will need to account for these differences. This is where Nylas steps in.

Free-Busy Access Across Organizations

We’ve created an endpoint that abstracts these differences and gives developers a user-friendly proxied endpoint that works for Google and Microsoft calendars in exactly the same way.

The free-busy endpoint we’ve built at Nylas helps developers focus on building their products and not on managing those differences across providers. Our solution makes it easier to search for availability across multiple organizations.

Our solution allows for finding free/busy time slots across organizations. For example, if you are building a platform that brokers the schedules between two different customers who belong to two different organizations, you would be able to determine open time slots for individuals tied to either organization.  If you are setting up virtual meetings between two different parties in two different locations, you can use the Nylas free-busy endpoint in conjunction with the Nylas resources endpoint to identify which two rooms at either location are available at a time that works for all those invited to the meeting. You can also use the free-busy endpoint to keep track of how busy any particular calendar is so you can plan ahead and dedicate company resources accordingly.

Another plus for our free-busy endpoint is that not all the calendars need to be synced to Nylas in order for the free/busy information to be available.  As long as the account that is synced to Nylas has access to other calendars in the same organization as configured by their company’s admin, then the free-busy endpoint would also have access to the timeslots of the synced account’s colleagues/resources.  This makes it much easier to schedule and reschedule meetings across participants without having to do any additional authentication or negotiation. You simply see which slots are open across all the calendars and schedule the meeting.

How Free-Busy Improves Security

With free-busy support, your users can keep information about sensitive events hidden. Rather than seeing a description of the event, meeting requesters would only see other meeting participant’s schedules with all existing meetings blocked off and labeled “Busy” while keeping the event details private.

Oftentimes, executives, finance managers, and HR representatives will opt to keep their calendars on a free/busy-only view. This helps keep details about sensitive meetings private, like performance reviews, sensitive financial review meetings that contain salary data, or even pre-IPO or M&A discussions that need to be kept private before they’re announced.

With the Nylas free-busy endpoint, any user with the setting turned on can still easily schedule meetings without compromising the privacy and security of their sensitive meeting data, including the location, names and email addresses of attendees, and event details. 

You only need to pass three bits of information to request free busy information for a given calendar:

  • The account’s access_token
  • The start and end time of the range you’re checking availability
  • The email address to check freebusy times for

Here’s an example cURL request showing how you can query free busy information for a single calendar:

curl -X POST -G \
"https://api.nylas.com/calendar/free-busy" \
-d "start_time"="1409594400" \
-d "end_time"="1409598000" \
-d "emails"= [“[email protected]”]

And the example response:

[
 {
  "object": "free_busy",
  "calendar_id": "bbbb1234cccc1234",
  "time_slots": [
     {
       "object": "time_slot",
       "status": "busy",
       "start_time": 1409594400,
       "end_time": 1409598000
     },
     {
       "object": "time_slot",
       "status": "busy",
       "start_time": 1409598000,
       "end_time": 1409599000
     },
   ]
 }
]

 

We look forward to seeing the amazing things developers build with our new free-busy endpoint.  We know it will not only save a lot of time for developers who want to focus on building new calendar functionality, but it will also save time for businesses who need to regularly schedule meetings amongst their own employees, along with their customers, and their customers’ colleagues.  Building out this functionality has never been easier and we can’t wait for you to get started!

Build Your Free-Busy Integration Today

Get Started – Build your first integration with Nylas in 15 minutes.

Quickstart GuidesGet up to speed quickly with our SDKs for Python, Node.js, and Ruby or explore the Nylas Email, Calendar, and Contacts APIs.

How Nylas WorksTake a look at the Nylas architecture to see how we sync billions of emails.

Nylas free-busy API reference – Take a look at the Nylas free-busy endpoint under the hood.

TutorialsCheck out our tutorials to learn how to carry out common functionality like creating, reading and RSVP-ing to calendar events.

Integration Guides Ready to start building your integration? Our integration guides cover what it takes to incorporate email functionality into your app. They cover best practices for using the Nylas Communications Platform and provider-specific advice for Google, Microsoft, IMAP, and more.

Set up PostmanPostman makes it easy to explore the Nylas Email API.

 

About the Author

Lou Kaileh is a San Francisco native and Software Engineer at Nylas. In his spare time, Lou enjoys spending time with his family, keeping up with current events, and reading about the latest in tech.

Ready to Start Building?

Connect up to 10 accounts for free today. No credit card required.