
Outlook Meetings Scheduler MCP Server
Allows scheduling meetings in Microsoft Outlook using Microsoft Graph API, with features for creating calendar events and adding attendees by finding their email addresses.
Tools
find-person
Find a person's email address by their name
create-event
Create a calendar event using Microsoft Graph API
create-event-with-attendees
Create a calendar event with attendees using Microsoft Graph API
get-event
Get details of a calendar event by its ID
list-events
List calendar events with optional filtering
update-event
Update an existing calendar event
update-event-attendees
Add or remove attendees from a calendar event
delete-event
Delete a calendar event
README
Outlook Meetings Scheduler MCP Server
MCP Server for scheduling meetings in Microsoft Outlook using Microsoft Graph API.
This MCP server allows you to create calendar events, create events with attendees (including finding their email addresses). It integrates seamlessly with other MCP servers, such as the GitHub MCP server, to enhance your workflow.
<a href="https://glama.ai/mcp/servers/@anoopt/outlook-meetings-scheduler-mcp-server"> <img width="380" height="200" src="https://glama.ai/mcp/servers/@anoopt/outlook-meetings-scheduler-mcp-server/badge" alt="Outlook Meetings Scheduler Server MCP server" /> </a>
Sample queries
- Schedule a meeting with Sarah for tomorrow at 3 PM.
- Create a meeting called "Project Kickoff" for tomorrow at 2 PM. Add Megan and John as required attendees.
Usage with GitHub MCP Server
- Create an issue in the organization/repo repository titled "Fix pagination bug in user dashboard" with the description "Users report seeing duplicate entries when navigating between pages." Then schedule a calendar reminder for me to review this issue tomorrow at 3 PM.
Tools
-
find-person
- Find a person's email address by their name
- Input:
name
(string) - Returns: List of matching people with names and email addresses
-
create-event
- Create a calendar event using Microsoft Graph API
- Inputs:
subject
(string): Subject of the calendar eventbody
(string): Content/body of the calendar eventstart
(optional): ISO format datetime (e.g., 2025-04-20T12:00:00)end
(optional): ISO format datetime (e.g., 2025-04-20T13:00:00)timeZone
(optional): Time zone for the event (default: "GMT Standard Time")
- Returns: Event details including URL and ID
-
create-event-with-attendees
- Create a calendar event with attendees using Microsoft Graph API
- Inputs:
subject
(string): Subject of the calendar eventbody
(string): Content/body of the calendar eventstart
(optional): ISO format datetime (e.g., 2025-04-20T12:00:00)end
(optional): ISO format datetime (e.g., 2025-04-20T13:00:00)timeZone
(optional): Time zone for the event (default: "GMT Standard Time")location
(optional): Location of the eventattendees
: Array of { email, name (optional), type (optional) }
- Returns: Event details including URL, ID, and attendees list
-
get-event
- Get details of a calendar event by its ID
- Input:
eventId
(string): ID of the event to retrieve
- Returns: Detailed event information including subject, time, attendees, and URL
-
list-events
- List calendar events with optional filtering
- Inputs:
subject
(optional): Filter events by subject containing this textstartDate
(optional): Start date in ISO format (e.g., 2025-04-20T00:00:00) to filter events fromendDate
(optional): End date in ISO format (e.g., 2025-04-20T23:59:59) to filter events untilmaxResults
(optional): Maximum number of events to return
- Returns: List of calendar events with basic information and IDs
-
delete-event
- Delete a calendar event
- Input:
eventId
(string): ID of the event to delete
- Returns: Confirmation of event deletion
-
update-event
- Update an existing calendar event
- Inputs:
eventId
(string): ID of the event to updatesubject
(optional): New subject for the calendar eventbody
(optional): New content/body for the calendar eventstart
(optional): New start time in ISO format (e.g., 2025-04-20T12:00:00)end
(optional): New end time in ISO format (e.g., 2025-04-20T13:00:00)timeZone
(optional): New time zone for the eventlocation
(optional): New location for the eventattendees
(optional): Array of { email, name (optional), type (optional) }
- Returns: Updated event details showing changes
-
update-event-attendees
- Add or remove attendees from a calendar event
- Inputs:
eventId
(string): ID of the event to updateaddAttendees
(optional): Array of attendees to add: { email, name (optional), type (optional) }removeAttendees
(optional): Array of email addresses to remove from the event
- Returns: Updated event attendee information
Setup
Microsoft Graph API Setup
- Register an application in the Microsoft Azure Portal
- Create a client secret
- Grant necessary permissions (Microsoft Graph API > Application permissions > Calendars.ReadWrite, People.Read.All, User.ReadBasic.All)
- Note your Client ID, Client Secret, and Tenant ID
Usage with VS Code
Local Node.js
You can run the MCP server directly with Node.js from your local build:
- Clone the repository and build the project:
git clone https://github.com/anoopt/outlook-meetings-scheduler-mcp-server.git
cd outlook-meetings-scheduler-mcp-server
npm install
npm run build
- For manual installation, add the following JSON block to your User Settings (JSON) file in VS Code. You can do this by pressing
Ctrl + Shift + P
and typing Preferences:Open User Settings (JSON)
.
Optionally, you can add it to a file called .vscode/mcp.json
in your workspace. This will allow you to share the configuration with others:
{
"mcpServers": {
"outlook-meetings-scheduler": {
"command": "node",
"args": [
"/path/to/outlook-meetings-scheduler-mcp-server/build/index.js"
],
"env": {
"CLIENT_ID": "<YOUR_CLIENT_ID>",
"CLIENT_SECRET": "<YOUR_CLIENT_SECRET>",
"TENANT_ID": "<YOUR_TENANT_ID>",
"USER_EMAIL": "<YOUR_EMAIL>"
}
}
}
}
Replace /path/to/outlook-meetings-scheduler-mcp-server
with the absolute path to your cloned repository.
Docker
Run the MCP server using Docker locally. Build the Docker image with the following command:
docker build -t mcp/outlook-meetings-scheduler .
For manual installation, add the following JSON block to your User Settings (JSON) file in VS Code. You can do this by pressing Ctrl + Shift + P
and typing Preferences: Open User Settings (JSON)
.
Optionally, you can add it to a file called .vscode/mcp.json
in your workspace. This will allow you to share the configuration with others.
{
"inputs": [
{
"type": "promptString",
"id": "client_secret",
"description": "Enter the client secret",
"password": true
}
],
"servers": {
"outlook-meetings-scheduler": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"CLIENT_ID",
"-e",
"CLIENT_SECRET",
"-e",
"TENANT_ID",
"-e",
"USER_EMAIL",
"mcp/outlook-meetings-scheduler"
],
"env": {
"USER_EMAIL": "<YOUR_EMAIL>",
"CLIENT_ID": "<YOUR_CLIENT_ID>",
"CLIENT_SECRET": "${input:client_secret}",
"TENANT_ID": "<YOUR_TENANT_ID>"
}
}
}
}
NPX
{
"mcpServers": {
"outlook-meetings-scheduler": {
"command": "npx",
"args": [
"-y",
"outlook-meetings-scheduler"
],
"env": {
"CLIENT_ID": "<YOUR_CLIENT_ID>",
"CLIENT_SECRET": "<YOUR_CLIENT_SECRET>",
"TENANT_ID": "<YOUR_TENANT_ID>",
"USER_EMAIL": "<YOUR_EMAIL>"
}
}
}
}
Usage with Claude Desktop
Docker
- Run the MCP server using Docker locally. Build the Docker image with the following command:
docker build -t mcp/outlook-meetings-scheduler .
- Add the following to your
claude_desktop_config.json
:
{
"mcpServers": {
"outlook-meetings-scheduler": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"CLIENT_ID",
"-e",
"CLIENT_SECRET",
"-e",
"TENANT_ID",
"-e",
"USER_EMAIL",
"mcp/outlook-meetings-scheduler"
],
"env": {
"CLIENT_ID": "<YOUR_CLIENT_ID>",
"CLIENT_SECRET": "<YOUR_CLIENT_SECRET>",
"TENANT_ID": "<YOUR_TENANT_ID>",
"USER_EMAIL": "<YOUR_EMAIL>"
}
}
}
}
NPX
{
"mcpServers": {
"outlook-meetings-scheduler": {
"command": "npx",
"args": [
"-y",
"outlook-meetings-scheduler"
],
"env": {
"CLIENT_ID": "<YOUR_CLIENT_ID>",
"CLIENT_SECRET": "<YOUR_CLIENT_SECRET>",
"TENANT_ID": "<YOUR_TENANT_ID>",
"USER_EMAIL": "<YOUR_EMAIL>"
}
}
}
}
Example Scenarios
Integration with GitHub MCP Server
You can combine this MCP server with other MCP servers like the GitHub MCP server for powerful workflows.
Create an Issue and Schedule a Follow-up Review
Create an issue in the organization/repo repository titled "Fix pagination bug in user dashboard" with the description "Users report seeing duplicate entries when navigating between pages." Then schedule a calendar reminder for me to review this issue tomorrow at 3 PM.
This will:
- Use the GitHub MCP server to create the issue
- Use the Outlook Meetings Scheduler MCP server to create a calendar event for the review
Schedule a Code Review Meeting Based on a Pull Request
Find the open PR about the authentication feature in the organization/app-backend repository and schedule a code review meeting with the contributors for tomorrow morning.
This will:
- Use GitHub MCP server to find the pull request and identify contributors
- Use the Outlook Meetings Scheduler MCP server to schedule a meeting with those team members
Configuration for Multi-MCP Setup
To use both GitHub and Outlook MCP servers together :
{
"mcpServers": {
"outlook-meetings-scheduler": {
"command": "npx",
"args": [
"-y",
"outlook-meetings-scheduler"
],
"env": {
"CLIENT_ID": "<YOUR_CLIENT_ID>",
"CLIENT_SECRET": "<YOUR_CLIENT_SECRET>",
"TENANT_ID": "<YOUR_TENANT_ID>",
"USER_EMAIL": "<YOUR_EMAIL>"
}
},
"github": {
"command": "npx",
"args": [
"-y",
"@modelcontextprotocol/github-mcp"
],
"env": {
"GITHUB_TOKEN": "<YOUR_GITHUB_TOKEN>"
}
}
}
}
Direct Usage
Finding a Colleague's Email
I need to schedule a meeting with John Smith. Can you find his email address?
Creating a Simple Calendar Event
Schedule a meeting titled "Weekly Team Sync" for next Monday at 10 AM with the following agenda:
- Project updates
- Resource allocation
- Questions and concerns
Scheduling a Meeting with Single Attendee
Schedule a 1:1 meeting with Sarah for tomorrow at 3 PM.
This will find Sarah's email address and create a calendar event.
To find Sarah's email address, the MCP server will use the find-person
tool - which uses the Microsoft Graph API to find relevant people for USER_EMAIL
or searches for the name in the organization.
Scheduling a Meeting with Multiple Attendees
Create a meeting called "Project Kickoff" for tomorrow at 2 PM.
Add sarah.jones@example.com and mike.thompson@example.com as required attendees.
The agenda is:
1. Project overview
2. Timeline discussion
3. Role assignments
4. Next steps
Build
# Install dependencies
npm install
# Build the project
npm run build
# Docker build
docker build -t mcp/outlook-meetings-scheduler .
License
This MCP server is licensed under the ISC License. For more details, please see the LICENSE file in the project repository.
Disclaimer
This MCP server is not affiliated with Microsoft or Microsoft Graph API. Use at your own risk. Ensure you comply with your organization's policies and guidelines when using this tool.
推荐服务器

Baidu Map
百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。
Playwright MCP Server
一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。
Magic Component Platform (MCP)
一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。
Audiense Insights MCP Server
通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。

VeyraX
一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。
graphlit-mcp-server
模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。
Kagi MCP Server
一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。

e2b-mcp-server
使用 MCP 通过 e2b 运行代码。
Neon MCP Server
用于与 Neon 管理 API 和数据库交互的 MCP 服务器
Exa MCP Server
模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。