# Outlook Calendar MCP connector

The Outlook Calendar connector lets Claude, ChatGPT, Cursor, and the Elaichi Agent read calendars, check who is free, and create, move, or cancel events, with each person signed in as themselves and every change recorded in an audit log.

Source: https://elaichi.ai/connectors/outlookcalendar/

## Facts

| | |
| --- | --- |
| Application | Outlook Calendar |
| Category | Scheduling |
| AI tools | 17 |
| Authentication | Connects over OAuth |
| Needs your own OAuth app | No |
| MCP endpoint | https://api.elaichi.ai/mcp |
| Works with | Claude, ChatGPT, Cursor, any MCP client, and the Elaichi Agent |
| Tools advertised by name | Yes |

## What you can ask once Outlook Calendar is connected

- List my Outlook Calendar events for next Tuesday.
- Find a free 30 minute slot with the design team.
- Move the Friday project review to Monday morning.

## Connect Outlook Calendar in Elaichi

This happens once for the organization, before any client is involved.

1. Open Connections, choose Add connection, and pick Outlook Calendar.
2. Optionally set Share with, then press Connect.
3. Approve it in Outlook Calendar. Outlook Calendar's own window opens. Whoever approves it decides what this connection can reach.

Credentials are vaulted and nobody, including the AI, reads them back. The connection becomes a toolbox immediately, so you can curate which Outlook Calendar tools are exposed, rename them, or freeze arguments before anyone points a client at it.

## Connect Outlook Calendar to Claude

Endpoint: https://api.elaichi.ai/mcp

1. Open Customize, then Connectors.
2. Press Add.
3. Name it, paste the MCP server URL, then Continue.
4. Sign in and approve.

On Team and Enterprise, an Owner adds it once. Everyone else turns it on for themselves.

## Connect Outlook Calendar to ChatGPT

Endpoint: https://api.elaichi.ai/mcp

1. Open Plugins, then press the + button.
2. Name it and paste the endpoint into Server URL.
3. Leave Authentication on OAuth, then tick the risk acknowledgement.
4. Press Create, then sign in and approve.

Works on the web today. The plugin directory lives at chatgpt.com/plugins.

## Connect Outlook Calendar to Cursor

Endpoint: https://api.elaichi.ai/mcp

1. Open `~/.cursor/mcp.json`.
2. Add the endpoint under `mcpServers`.
3. Reload Cursor, then sign in and approve.

Set up per machine, so repeat it on each computer you work from.

## Connect Outlook Calendar to any MCP client

Endpoint: https://api.elaichi.ai/mcp

1. Add the endpoint as a remote MCP server.
2. Sign in and approve.

The Elaichi Agent already has these tools, with nothing to set up.

## What the consent screen decides

Only Read is granted by default, which is not enough to call a Outlook Calendar tool. Over MCP there is no trusted place to confirm a write in the moment, so the consent screen is the standing approval rather than a formality. Grant Read and Run tools. Think hard before granting Delete, which reaches into connected apps and cannot be undone.

## What teams do with Outlook Calendar through Elaichi

### Book the follow-up before the call ends

Sales. Ask for the next open half hour that works for you and the prospect, and have the event created in Outlook Calendar with the right attendees and a note on what was agreed.

### Find a slot that works for everyone

Executive assistants. Check free and busy times across a group of colleagues in one question instead of opening each calendar, then put the meeting on everyone's Outlook Calendar.

### Schedule interview panels without the back and forth

Recruiting. See when each interviewer is free, create the panel events in Outlook Calendar, and move them when a candidate asks for a different day.

### Move a customer callback when plans change

Support. When a customer reschedules, have the existing Outlook Calendar event updated with the new time and attendees rather than creating a duplicate and leaving the old one in place.

### Prepare for tomorrow's meetings in one pass

Customer success. Pull up tomorrow's events from Outlook Calendar, including who is attending and what attachments were shared, and get a short brief for each one before the day starts.

### Clean up recurring meetings that have gone stale

Operations. List the upcoming instances of a recurring Outlook Calendar meeting, spot the ones nobody needs anymore, and cancel them so rooms and afternoons are freed up.

## Frequently asked questions

### How do I connect Outlook Calendar to Claude?

First, open Elaichi, choose Outlook Calendar, and sign in with your Microsoft account when the familiar Microsoft sign-in window appears; Outlook Calendar connects over OAuth, so there is no OAuth application to register and no client ID or secret to generate. Then, in Claude, go to Customize, then Connectors, then Add, and paste https://api.elaichi.ai/mcp as the address. Claude will ask you to sign in to Elaichi, and from then on it can work with your Outlook Calendar events.

### Does Outlook Calendar work with ChatGPT and Cursor as well as Claude?

Yes. Once Outlook Calendar is connected in Elaichi, the same endpoint, https://api.elaichi.ai/mcp, works in Claude, ChatGPT, Cursor, any other MCP client, and the Elaichi Agent. You connect Outlook Calendar once and every client you use picks it up.

### What can an AI agent actually do with my Outlook Calendar data?

An agent can list your Outlook Calendar calendars and the events on them, open a single event to see its attendees and attachments, and check free and busy times for you and your colleagues. It can create new events, update the time, title, or attendee list of existing ones, cancel events, and look through the instances of a recurring meeting. It can also look up people and users in your organization so it invites the right person.

### Does connecting Outlook Calendar give the AI access to every calendar in my organization?

No. An agent working through Outlook Calendar sees only what the person who signed in can already see, so calendars that have not been shared with you stay out of reach. Elaichi can narrow that access further, for example to reading events but not changing them, and it never widens it beyond what your Microsoft account allows.

### Can my team share one Outlook Calendar connection?

Yes. One person connects Outlook Calendar in Elaichi and shares the connection with a team, and nobody else on the team ever handles a password or credential. Each teammate still signs in to Elaichi as themselves, so every event created or moved through the shared Outlook Calendar connection is logged with the name of the person who did it.

### Can I stop an agent from deleting or changing events in Outlook Calendar?

Yes. In Elaichi you can restrict Outlook Calendar action by action, so an agent might be allowed to read events and check availability but not create, update, or cancel anything. A blocked action is never advertised to Claude, ChatGPT, Cursor, or any other client, so no prompt, however worded, can reach it.

### What happens to an Outlook Calendar connection when someone leaves the company?

When you offboard someone in Elaichi, their access to Outlook Calendar through every AI client ends at once. If they had shared their Outlook Calendar connection with a team, an administrator can keep it working for everyone else or replace it. Disconnecting Outlook Calendar once in Elaichi removes it from Claude, ChatGPT, Cursor, and every other client at the same time.

## All 17 Outlook Calendar tools

Every tool below is callable through https://api.elaichi.ai/mcp once Outlook Calendar is connected, subject to the toolbox it is in and the restrictions on the caller.

- **List all Outlook Calendar me** (List). Retrieves the profile information of the currently authenticated user, including their ID, name, email, and userPrincipalName
- **List all Outlook Calendar calendars** (List). List calendars for a user in Outlook Calendar. Returns id, name, color, canShare, canViewPrivateItems, canEdit, defaultOnlineMeetingProvider, isTallyingResponses, isRemovable, and owner details.
- **Get single Outlook Calendar calendar by ID** (Get). Get calendar properties and relationships for a specific calendar by id in Outlook Calendar. Returns fields including id, name, color, isDefaultCalendar, canShare, canViewPrivateItems, canEdit, owner, and online meeting provider details.
- **List all Outlook Calendar events** (List). List events in the user's mailbox in Outlook Calendar. Returns event id, subject, body (HTML), bodyPreview, organizer, attendees, start and end times with time zone, and location.
- **Get single Outlook Calendar event by ID** (Get). Get event details by id in Outlook Calendar. Returns subject, body (HTML), bodyPreview, organizer, attendees, start and end times, location, and hideAttendees status.
- **Create a Outlook Calendar event** (Create). Create an event in the specified user's calendar in Outlook Calendar.  Returns the created event with fields like id, subject, start, end, location, attendees, and online meeting info if enabled.
- **Update a Outlook Calendar event by ID** (Update). Update properties of an event by id in Outlook Calendar. Returns updated event including originalStartTimeZone, originalEndTimeZone, responseStatus, recurrence, reminderMinutesBeforeStart, isOnlineMeeting, onlineMeetingProvider, isReminderOn, hideAttendees, categories, and onlineMeeting details.
- **Delete a Outlook Calendar event by ID** (Delete). Delete event with id from the calendar in Outlook Calendar. If the event is a meeting, deleting it sends a cancellation to attendees. Returns 204 No Content on success.
- **List all Outlook Calendar attachments** (List). Get a list of attachments for an event by id in Outlook Calendar. Returns attachment objects including metadata and content details.
- **List all Outlook Calendar event instances** (List). Get instances of an event by id within a specified time range using Outlook Calendar. Returns fields: subject, bodyPreview, seriesMasterId, type, recurrence, start, and end.
- **List all Outlook Calendar free busy** (List). Get free/busy availability information for users, distribution lists, or resources for a specified time period in Outlook Calendar. Requires id, schedules, startTime, and endTime. Returns scheduleId, availabilityView, scheduleItems, and workingHours.
- **List all Outlook Calendar people** (List). Get a collection of person objects relevant to the user identified by id in Outlook Calendar. Returns fields such as id, displayName, jobTitle, department, officeLocation, userPrincipalName, scoredEmailAddresses, phones, and personType.
- **List all Outlook Calendar service pricipals** (List). Get a list of servicePrincipal objects in Outlook Calendar. Returns fields including accountEnabled, displayName, servicePrincipalType, and signInAudience.
- **Get single Outlook Calendar oauth permission by ID** (Get). Get a delegated permission grant by id in Outlook Calendar. Returns clientId, consentType, id, principalId, resourceId, and scope fields representing the granted permissions and related entities.
- **List all Outlook Calendar calendar view** (List). Get the occurrences, exceptions, and single instances of events in a calendar view for user id in Outlook Calendar. Requires start_date_time and end_date_time. Returns event fields including originalStartTimeZone, originalEndTimeZone, responseStatus, iCalUId, reminderMinutesBeforeStart, and isReminderOn.
- **List all Outlook Calendar users** (List). List user objects in the directory in Outlook Calendar. Supports the Microsoft Graph OData query parameters odata_select, odata_expand, odata_filter, and odata_search. Leave all unset to get the default field set (businessPhones, displayName, givenName, id, jobTitle, mail, mobilePhone, officeLocation, preferredLanguage, surname, userPrincipalName).
- **Get single Outlook Calendar user by ID** (Get). Get the properties of a specific user by id or userPrincipalName in Outlook Calendar. Returns the default field set (businessPhones, displayName, givenName, id, jobTitle, mail, mobilePhone, officeLocation, preferredLanguage, surname, userPrincipalName) when called with no query parameters. Supports the Microsoft Graph OData $select query parameter to retrieve specific or additional user properties.
