home / mcp / outlook meetings scheduler mcp server
Provides an MCP server to schedule Outlook calendar events via Microsoft Graph, including attendee management.
Configuration
View docs{
"mcpServers": {
"anoopt-outlook-meetings-scheduler-mcp-server": {
"command": "node",
"args": [
"/path/to/outlook-meetings-scheduler-mcp-server/build/index.js"
],
"env": {
"AUTH_MODE": "interactive",
"CLIENT_ID": "<YOUR_CLIENT_ID>",
"TENANT_ID": "<YOUR_TENANT_ID>",
"USER_EMAIL": "[email protected]",
"ACCESS_TOKEN": "<ACCESS_TOKEN>",
"CLIENT_SECRET": "<YOUR_CLIENT_SECRET>"
}
}
}
}You have a powerful MCP server that lets you schedule Microsoft Outlook meetings through Microsoft Graph. It supports creating single events or events with attendees, finding people’s email addresses, and coordinating with other MCP servers to streamline your workflows.
You interact with the Outlook Meetings Scheduler MCP Server by issuing commands through an MCP client. You can find a colleague’s email, then schedule a meeting with that person, or schedule a meeting with multiple attendees. You can also combine this MCP server with other MCP servers to trigger related tasks, such as creating issues in GitHub and then scheduling a follow-up calendar reminder.
Primary actions you will use include finding attendees, creating events, and updating event details. The core tools you have access to are:find-person, create-event, create-event-with-attendees, get-event, list-events, delete-event, update-event, and update-event-attendees. Use these to locate emails, schedule meetings, add attendees, and adjust times or attendees as needed.
Prerequisites you need before installation are Node.js and npm, plus optionally Docker if you want to run the MCP server in a container.
Install and build the MCP server locally with these steps:
# Install dependencies
npm install
# Build the project
npm run buildThe server supports three authentication modes: Interactive (Delegated), Client Credentials (App-Only), and Client Provided Token. You configure authentication by setting environment variables in your MCP client. Commonly used variables include AUTH_MODE, CLIENT_ID, TENANT_ID, CLIENT_SECRET, USER_EMAIL, ACCESS_TOKEN, and TOKEN_EXPIRES_ON. The server also supports a built-in multi-tenant app for zero-configuration use.
To run the MCP server with different configurations, you can use one of several setup patterns shown below. Each pattern runs the server as a local process, not as a hosted service.
Integration with other MCP servers is common. For example, you can create a GitHub issue and then schedule a follow-up meeting to review the issue.
Scheduling a meeting with a single attendee will have the server locate the email address and create a calendar event for the specified time.
Key environment variables you will encounter include AUTH_MODE, CLIENT_ID, CLIENT_SECRET, TENANT_ID, USER_EMAIL, ACCESS_TOKEN, and TOKEN_EXPIRES_ON. Depending on the authentication mode, you will provide the appropriate set of values.
If you prefer running the MCP server directly with Node.js, you can start it using a path to the built index file.
If you want to run the server via Docker, you can build and run the Docker image as shown in the examples.
You can use multiple runnable configurations in parallel, such as a Node-based local run, a Docker-based run, or an NPX-based run. Each configuration should specify its own command, arguments, and environment variables so you can select the method that best fits your environment.
If authentication prompts are not appearing where expected, verify that your environment variables are correctly set and that the chosen authentication mode is supported by your Azure AD app registration.
Always ensure the Microsoft Graph permissions you grant align with the operations you perform. Use the least-privilege permissions necessary for calendars and people access, and manage tokens and client secrets securely in your deployment environment.
You can configure multiple MCP servers to work together. For example, you can have both the Outlook Meetings Scheduler MCP Server and a GitHub MCP Server available in your workspace. Each server is defined separately with its own command and environment settings.
You can use prompts like: “Find the email address for Sarah Smith,” or “Schedule a meeting called ‘Project Kickoff’ for tomorrow at 2 PM with attendees Megan and John.” These prompts will drive the tools exposed by the MCP server to perform the requested actions.
Find a person's email address by their name. Input: name (string). Returns: List of matching people with names and email addresses.
Create a calendar event using Microsoft Graph API. Inputs: subject, body, start, end, timeZone. Returns: Event details including URL and ID.
Create a calendar event with attendees. Inputs: subject, body, start, end, timeZone, location, attendees. Returns: Event details including URL, ID, and attendees.
Get details of a calendar event by its ID. Input: eventId. Returns: Detailed event information.
List calendar events with optional filtering. Inputs: subject, startDate, endDate, maxResults. Returns: List of events with IDs.
Delete a calendar event. Input: eventId. Returns: Confirmation of deletion.
Update an existing calendar event. Inputs: eventId, plus optional fields to update. Returns: Updated event details.
Add or remove attendees from an event. Inputs: eventId, addAttendees, removeAttendees. Returns: Updated attendee information.