Microsoft Calendar Events API: Sync & Manage Events Seamlessly

Victoria Jul 07, 2026

The Microsoft Calendar Events API is a powerful tool that enables developers to integrate and manage calendar events within Microsoft's ecosystem. This API, part of the Microsoft Graph, allows you to create, update, delete, and retrieve events, as well as manage attendees and event responses. Whether you're building a custom calendar app or integrating calendar functionality into an existing application, the Microsoft Calendar Events API offers a robust set of features to streamline your development process.

5 Best Microsoft Teams Shared Calendar App
5 Best Microsoft Teams Shared Calendar App

Before diving into the specifics, let's briefly understand the Microsoft Graph. It's a RESTful web API that enables you to access Microsoft cloud service resources. The Calendar Events API is one of the many APIs available through the Microsoft Graph, providing a unified programmability model that can access the data across Microsoft 365, Windows 10, and Enterprise Mobility + Security.

5 tips for working with SharePoint Online
5 tips for working with SharePoint Online

Getting Started with Microsoft Calendar Events API

To begin using the Microsoft Calendar Events API, you'll need to register your application in the Azure Active Directory (Azure AD) and obtain the necessary permissions. This process involves creating an application, granting it appropriate permissions, and generating a client ID and client secret for authentication.

a purple and white calendar on a tablet screen
a purple and white calendar on a tablet screen

Once you have registered your application, you can use the client ID and client secret to authenticate your requests using OAuth 2.0. This will grant your application access to the Microsoft Graph and, subsequently, the Calendar Events API.

Registering Your Application in Azure AD

Windows 10 Mail and Calendar app to get Focused Inbox, more, in update rollout
Windows 10 Mail and Calendar app to get Focused Inbox, more, in update rollout

To register your application, sign in to the Azure portal, navigate to "Azure Active Directory" > "App registrations" > "New registration". Provide the required details, such as the application's name, supported account types, and redirect URIs. After creating the application, note down the application (client) ID, which you'll use in your API requests.

Next, you need to grant your application the necessary permissions. In the "API permissions" section, add the "Microsoft Graph" and select the appropriate permissions, such as "Calendars.ReadWrite" to read and write calendar events. After adding the permissions, click "Grant admin consent" if you're an admin, or "Request admin consent" if you need an admin to approve the permissions.

Obtaining an Access Token

Using Curtains in Microsoft Project to Show What Work is Being Done Within a Sprint
Using Curtains in Microsoft Project to Show What Work is Being Done Within a Sprint

With your application registered and the required permissions granted, you can obtain an access token using the client ID and client secret. You'll use this token to authenticate your API requests. The token can be obtained using the OAuth 2.0 client credentials flow, which involves sending a POST request to the token endpoint with the client ID, client secret, and the required scope (e.g., https://graph.microsoft.com/.default).

Here's an example of the request body using cURL: ```bash curl -X POST -d "client_id=YOUR_CLIENT_ID&scope=https%3A%2F%2Fgraph.microsoft.com%2F.default&client_secret=YOUR_CLIENT_SECRET&grant_type=client_credentials" https://login.microsoftonline.com/YOUR_TENANT_ID/oauth2/v2.0/token ```

Working with Calendar Events

Microsoft Calendar - Chris Salmon
Microsoft Calendar - Chris Salmon

With an access token, you can now make authenticated requests to the Microsoft Calendar Events API. The API uses standard HTTP methods to perform CRUD (Create, Read, Update, Delete) operations on calendar events. You can also manage attendees and event responses using these methods.

The base URL for the Calendar Events API is `https://graph.microsoft.com/v1.0/me/events` for the signed-in user's calendar, or `https://graph.microsoft.com/v1.0/users/{id | userPrincipalName}/events` for a specific user's calendar. You can replace `{id | userPrincipalName}` with the desired user's ID or user principal name.

Announcing Microsoft Lists - Your smart information tracking app in Microsoft 365
Announcing Microsoft Lists - Your smart information tracking app in Microsoft 365
How to Create Year and School Calendar with Dynamic Date Markers » The Spreadsheet Page
How to Create Year and School Calendar with Dynamic Date Markers » The Spreadsheet Page
Microsoft Embraces the Hybrid Work Reality Via Outlook, Teams Updates
Microsoft Embraces the Hybrid Work Reality Via Outlook, Teams Updates
Free Calendario de Eventos Mensual Plantilla en Google Sheets and Microsoft Excel | thegoodocs.com
Free Calendario de Eventos Mensual Plantilla en Google Sheets and Microsoft Excel | thegoodocs.com
Windows 10 Apps Are Now the Same on Desktop and Mobile
Windows 10 Apps Are Now the Same on Desktop and Mobile
Best Digital Calendar Apps for Productivity in 2025
Best Digital Calendar Apps for Productivity in 2025
Interactive Excel Calendar with Heatmap – Free Download
Interactive Excel Calendar with Heatmap – Free Download
Online Bookings and Appointment Scheduling | Microsoft 365
Online Bookings and Appointment Scheduling | Microsoft 365
Microsoft Garage Releases New Experimental Apps - SlashGear
Microsoft Garage Releases New Experimental Apps - SlashGear
Side by Side Calendar with events
Side by Side Calendar with events
Shift management
Shift management
Monatsplaner Excel: Effiziente Planung leicht gemacht – Jetzt herunterladen!
Monatsplaner Excel: Effiziente Planung leicht gemacht – Jetzt herunterladen!
The 7 Best Calendar Apps in the Microsoft Store
The 7 Best Calendar Apps in the Microsoft Store
Calendar Blocking in Outlook and How This Can Help You Stay Sane
Calendar Blocking in Outlook and How This Can Help You Stay Sane
Microsoft Mail vs. Outlook: Which Windows 10 Email App Is Right for You?
Microsoft Mail vs. Outlook: Which Windows 10 Email App Is Right for You?
UI design Calendar, Planner, Events, Schedule, CRM
UI design Calendar, Planner, Events, Schedule, CRM
Inspire 2020: Microsoft to update Teams with focus on firstline workers and meetings
Inspire 2020: Microsoft to update Teams with focus on firstline workers and meetings
Best Calendar Ideas
Best Calendar Ideas
5 Reasons You Should Install Event Calendar WD on Your WP Website
5 Reasons You Should Install Event Calendar WD on Your WP Website
Event Calendar Excel Template | Calender in Excel Template
Event Calendar Excel Template | Calender in Excel Template

Creating a New Event

To create a new event, send a POST request to the appropriate events endpoint with the event details in the request body. The event details should be in the format specified by the OpenAPI schema. Here's an example of creating a new event using cURL: ```bash curl -X POST -H "Authorization: Bearer YOUR_ACCESS_TOKEN" -H "Content-Type: application/json" -d '{"subject":"Meeting","startDateTime":"2022-03-20T09:30:34.2444914-07:00","endDateTime":"2022-03-20T10:00:34.2464911-07:00","isOrganizer":true}' https://graph.microsoft.com/v1.0/me/events ```

The response will contain the newly created event's details, including its unique event ID.

Retrieving and Updating Events

To retrieve events, send a GET request to the appropriate events endpoint. You can filter the results using query parameters, such as `startDateTime` and `endDateTime`, to retrieve events within a specific date range. To update an event, send a PATCH or PUT request to the event's individual endpoint (`https://graph.microsoft.com/v1.0/me/events/{id}`) with the updated event details in the request body.

Here's an example of updating an event using cURL with the PATCH method: ```bash curl -X PATCH -H "Authorization: Bearer YOUR_ACCESS_TOKEN" -H "Content-Type: application/json" -d '{"subject":"Updated Meeting"}' https://graph.microsoft.com/v1.0/me/events/{id} ```

Deleting an Event

To delete an event, send a DELETE request to the event's individual endpoint (`https://graph.microsoft.com/v1.0/me/events/{id}`). This will permanently remove the event from the calendar.

Here's an example of deleting an event using cURL: ```bash curl -X DELETE -H "Authorization: Bearer YOUR_ACCESS_TOKEN" https://graph.microsoft.com/v1.0/me/events/{id} ```

Managing Attendees and Event Responses

The Microsoft Calendar Events API also allows you to manage attendees and event responses. You can add, remove, or update attendees, as well as send meeting requests and cancellations. Additionally, you can retrieve event responses to see who has accepted, declined, or tentatively accepted the event.

The attendees and responses are managed using the `attendees` and `responses` collections of the event resource. You can send POST, PATCH, or DELETE requests to these collections to perform the desired operations.

Adding and Managing Attendees

To add an attendee to an event, send a POST request to the event's `attendees` collection (`https://graph.microsoft.com/v1.0/me/events/{id}/attendees`). The request body should contain the attendee's email address and other relevant details, such as their type (required, optional, or resource) and status (none, accepted, declined, or tentativelyAccepted).

Here's an example of adding an attendee using cURL: ```bash curl -X POST -H "Authorization: Bearer YOUR_ACCESS_TOKEN" -H "Content-Type: application/json" -d '{"@odata.type":"#microsoft.graph.attendee","emailAddress":{"@odata.type":"#microsoft.graph.identitySet","identityType":"user","identity":"attendee@example.com"},"type":"required","status":{"@odata.type":"#microsoft.graph.attendeeStatus","response":"accepted"}}' https://graph.microsoft.com/v1.0/me/events/{id}/attendees ```

To update or remove an attendee, send a PATCH or DELETE request to the appropriate attendee's individual endpoint (`https://graph.microsoft.com/v1.0/me/events/{id}/attendees/{id}`).

Sending Meeting Requests and Cancellations

You can send meeting requests and cancellations by updating the `sendMeetingInvitations` property of the event resource to `true` and sending a PATCH request. To send a cancellation, set the `isOrganizer` property to `true` and the `isCancelled` property to `true`, then send a PATCH request.

Here's an example of sending a meeting request using cURL: ```bash curl -X PATCH -H "Authorization: Bearer YOUR_ACCESS_TOKEN" -H "Content-Type: application/json" -d '{"sendMeetingInvitations":true}' https://graph.microsoft.com/v1.0/me/events/{id} ```

Retrieving Event Responses

To retrieve event responses, send a GET request to the event's `responses` collection (`https://graph.microsoft.com/v1.0/me/events/{id}/responses`). The response will contain an array of `response` objects, each representing an attendee's response to the event.

Here's an example of retrieving event responses using cURL: ```bash curl -X GET -H "Authorization: Bearer YOUR_ACCESS_TOKEN" https://graph.microsoft.com/v1.0/me/events/{id}/responses ```

With the Microsoft Calendar Events API, you can seamlessly integrate calendar functionality into your applications, streamlining event management and improving user experience. By leveraging the power of the Microsoft Graph, you can unlock a wealth of features and resources to enhance your development process. So, start exploring the API today and build innovative calendar solutions for your users!