Customizable APIs for Microsoft Scheduling Software

Don’t build Microsoft scheduling software yourself; integrate with an API.

Tasia Potasinski | July 28, 2021

Microsoft Exchange, Outlook, and Office 365 are among the most widely used email and calendar services today, alongside Gmail and Yahoo. Integrating with Outlook, the second most used email provider in the United States, requires understanding the complex system of Microsoft Exchange. The web-based Outlook client is how users view their email, and this client is offered via Exchange Online, Microsoft’s cloud-hosted Exchange server. Meanwhile, Exchange Online is distinct from the Exchange Server, which is the downloadable software to run Exchange yourself on prem, and only runs on Windows Server machines. 

Given its long history, Microsoft Exchange has countless additions and qualifications to keep track of within the infrastructure of the Exchange family; and Microsoft’s creation of numerous APIs over the past 20+ years means that with each new API, there is a surge in ongoing maintenance and support as developers are forced to rip out the old protocols and implement new ones. 

Want a PDF of this article?

Share it with a friend or save it for later reading.

If you’re a developer building a software application that enables users to schedule meetings within your application, then you’ll need a secure and scalable way to integrate Microsoft scheduling software into your platform. However, building two-way sync between your app and your user’s Microsoft accounts is also one of the most challenging integrations.

Building Scheduling Software that Integrates with Microsoft is Difficult

Onerous Documentation and Ongoing Maintenance 

Microsoft’s long history and many products come with hundreds of pages of documentation. The development of Microsoft products was not a neat and tidy one, and the sprawling labyrinth of terms can be tricky to manage, making it difficult to even know how to look up the information that you need in the official Microsoft docs.  You might design a plan of action with some understanding about how certain components of Exchange work only to discover unexpected twists and turns that leave you wondering where you are in the Microsoft product ecosystem and how to proceed with Microsoft scheduling software. 

Even when you feel like you have a handle on things, crafting Exchange protocols to fit your specs is time-intensive. When building directly on the Exchange platform, you’re responsible for brokering negotiations between different versions of EAS and EWS. The server-side issues are vast, including things like intermittent processing issues, calendar events that won’t sync and granting administrator privileges from Office 365. All the while, engineers will have to write business logic in WBXML so Microsoft’s API can wrap commands to send to Exchange servers.

These problems are only magnified as you scale. Each new server requires another dependency. Troubleshooting errors for new users syncing their calendar and email accounts can turn the maintenance of your EAS integration for your Microsoft scheduling software into a full-time job. But development cycles are precious—they should be spent programming your app’s differentiating features, not spending inordinate amounts of time navigating dense docs.

From our extensive experience building scheduling APIs, we’ve encountered a number of technical challenges building scheduling software, including:

  • Calendar Connectivity – Figuring out secure authentication for real-time bi-directional sync for every calendar provider in the world; automatically identifying primary calendars for booking, and incorporating different defaults for each provider.
  • Recurring Events – Complex protocols differ from provider to provider; navigating one- off changes and timezone transitions.
  • Availability Logic – Getting to the bottom of pre-fetching and caching availability of participants to be resilient to downtime and latency spikes and using provider webhooks and event streams to keep caches up-to-date.
  • Time Zone Support – Deducting time zone information given a complex array of data from the provider and normalizing for time zones across hemispheres.
  • Event Reminders – Accounting for the many common vagaries of scheduling; everything from language consistency to making sure the guest is notified if the meeting has been cancelled even if they haven’t already declined.
  • Building Scheduling UI –  Sussing out all the edge cases your users may run into and making sure each workflow is intuitively designed.
  • Race Conditions – Implementing instant synchronization so that users don’t get double booked when two people try to book the same slot simultaneously. At the same time, making sure that the solution doesn’t impact sync speed.

Save Time and Money with the Universal Nylas Calendar API

The Nylas Calendar API provides a comprehensive solution for your Microsoft scheduling software needs, and all without you having to work with proprietary protocols. Nylas handles the complexities of EWS, EAS, and binary XML for you. 

And with Nylas, you can complete the project in as little as 18 days with one engineer. 

As your application scales, alongside Microsoft calendars, you will likely need to integrate with other provider’s calendars, like Gmail, which remains the most popular email platform with over 1.8 billion users worldwide. The Nylas Calendar API connects your application to every calendar provider with one secure, fast API integration. Your app can scale without having to research, find and implement other scheduling solutions for every other provider. 

A Few Features of the Universal Nylas Calendar API

Whether you’re seeking streamlined frontend UI or ensuring the privacy of your users’ calendars, the comprehensive suite of Nylas’ Calendar API features has you covered. Let’s take a look at a few. 

Nylas Scheduler

Nylas’ Scheduler was created in response to developers’ need for a simpler way to integrate powerful scheduling into their applications. The Nylas Scheduler provides the functionality of finding availability between meeting participants, identifying time zones, creating custom reminders, routing meetings evenly between members of a team, handling booking confirmation and cancellations, and more in a pre-built and customizable user interface.

Free/Busy Availability

Security is paramount at Nylas, and it manifests in features such as Free/Busy, which lets you keep meeting details private about sensitive events. Your users may include executives, finance managers, and HR representatives who prefer to keep their calendars on a Free/Busy-only view.  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. 

Let’s take a look at an example of how to query Free/Busy information for a single calendar by making a simple cURL request:

curl --location --request POST 'https://api.nylas.com/calendars/free-busy' \
--header 'Authorization: Bearer <Bearer-Token>' \
--header 'Content-Type: application/json' \
--data-raw '
{
"start_time":"1600890568",
"end_time":"1600999200",
"emails": ["[email protected]"]
}
'  

And the example response is below. There are four busy time slots. This means they are free any other time not listed.

[
    {
        "email": "[email protected]",
        "object": "free_busy",
        "time_slots": [
            {
                "end_time": 1600907400,
                "object": "time_slot",
                "start_time": 1600890568,
                "status": "busy"
            },
            {
                "end_time": 1600961400,
                "object": "time_slot",
                "start_time": 1600959600,
                "status": "busy"
            },
            {
                "end_time": 1600966500,
                "object": "time_slot",
                "start_time": 1600963200,
                "status": "busy"
            },
            {
                "end_time": 1600984800,
                "object": "time_slot",
                "start_time": 1600979400,
                "status": "busy"
            }
        ]
    }
]   

 If there are no busy slots, the request returns an empty time_slots array.

[
    {
 "email": "[email protected]",
 "object": "free_busy",
 "time_slots": []
    }
]   

Summary

Building Microsoft scheduling software yourself takes anywhere from 12-18 months, and the ongoing maintenance and support costs increase over time as your platform scales. We built the Universal Nylas Calendar API to enable full CRUD and bi-directional sync between your app and Exchange and Office 365 calendars. Not to mention Gmail and every other calendar provider in the world. In addition, Nylas SDKs for Exchange ActiveSync makes integrating a Microsoft scheduling software solution into your app simple. We support three major SDK languages to help make your integration as pain-free as possible, saving time and money. Sign up and try the API for free today, or schedule time to speak to a platform specialist now.

Tasia Potasinski

Tasia is the Director of Product Marketing at Nylas. She's passionate about communications and helping connect the world through APIs. In her free time, she writes and produces music.