MCP HubMCP Hub
merajmehrabi

Outlook_Calendar_MCP

by: merajmehrabi

A Model Context Protocol (MCP) server that allows Claude to access and manage your local Microsfot Outlook calendar (Windows only).

14created 01/03/2025
Visit
Outlook
Windows

📌Overview

Purpose: This framework enables Claude to access and manage local Microsoft Outlook calendars on Windows operating systems.

Overview: The Outlook Calendar MCP Tool is a Model Context Protocol (MCP) server that facilitates seamless interaction between Claude and the Microsoft Outlook calendar. It allows users to view, create, and manage calendar events efficiently, providing intelligent scheduling capabilities.

Key Features:

  • View Calendar Events: Users can list events within a specific date range, view detailed information about events, and check attendee statuses, aiding in event management.

  • Manage Calendar Events: The tool allows users to create new events and meetings, as well as update existing ones, ensuring users can keep their calendars organized.

  • Calendar Intelligence: It can identify free time slots for scheduling and suggest optimal meeting times, streamlining the planning process.

  • Multiple Calendar Support: The framework supports access to different calendars within the user's Outlook profile, enhancing flexibility and usability.


Outlook Calendar MCP Tool

A Model Context Protocol (MCP) server that allows Claude to access and manage your local Microsoft Outlook calendar (Windows only).

Features

  • View Calendar Events: List events within a date range, view event details, check attendee status
  • Manage Calendar Events: Create new events and meetings, update existing events
  • Calendar Intelligence: Find free time slots for scheduling, identify optimal meeting times
  • Multiple Calendar Support: Access different calendars in your Outlook profile

Prerequisites

  • Windows operating system
  • Microsoft Outlook desktop client installed
  • Node.js (version 14.x or higher)
  • npm (comes with Node.js)

Installation

Option 1: Install from npm

npm install -g outlook-calendar-mcp

Run directly without installation using npx:

npx outlook-calendar-mcp

Option 2: Install from source

  1. Clone this repository or download the source code
  2. Install dependencies:
npm install
  1. Run the server:
npm start

MCP Server Configuration

To use this tool with Claude, add it to your MCP settings configuration file.

For Claude Desktop App

Add the following to your Claude Desktop configuration file (%APPDATA%\Claude\claude_desktop_config.json):

If installed globally via npm:

{
  "mcpServers": {
    "outlook-calendar": {
      "command": "outlook-calendar-mcp",
      "args": [],
      "env": {}
    }
  }
}

Using npx (without installation):

{
  "mcpServers": {
    "outlook-calendar": {
      "command": "npx",
      "args": ["-y", "outlook-calendar-mcp"],
      "env": {}
    }
  }
}

If installed from source:

{
  "mcpServers": {
    "outlook-calendar": {
      "command": "node",
      "args": ["path/to/outlook-calendar-mcp/src/index.js"],
      "env": {}
    }
  }
}

For Claude VSCode Extension

Add the following to your Claude VSCode extension MCP settings file (%APPDATA%\Code\User\globalStorage\saoudrizwan.claude-dev\settings\cline_mcp_settings.json):

If installed globally via npm:

{
  "mcpServers": {
    "outlook-calendar": {
      "command": "outlook-calendar-mcp",
      "args": [],
      "env": {}
    }
  }
}

Using npx (without installation):

{
  "mcpServers": {
    "outlook-calendar": {
      "command": "npx",
      "args": ["-y", "outlook-calendar-mcp"],
      "env": {}
    }
  }
}

If installed from source:

{
  "mcpServers": {
    "outlook-calendar": {
      "command": "node",
      "args": ["path/to/outlook-calendar-mcp/src/index.js"],
      "env": {}
    }
  }
}

For source installation, replace path/to/outlook-calendar-mcp with the actual path.

Usage

Once configured, Claude can perform the following operations:

List Calendar Events

list_events
- startDate: Start date in MM/DD/YYYY format  
- endDate: End date in MM/DD/YYYY format (optional)  
- calendar: Calendar name (optional)  

Example: "List my calendar events for next week"

Create Calendar Event

create_event
- subject: Event subject/title  
- startDate: Start date in MM/DD/YYYY format  
- startTime: Start time in HH:MM AM/PM format  
- endDate: End date in MM/DD/YYYY format (optional)  
- endTime: End time in HH:MM AM/PM format (optional)  
- location: Event location (optional)  
- body: Event description (optional)  
- isMeeting: Whether this is a meeting with attendees (optional)  
- attendees: Semicolon-separated list of attendee email addresses (optional)  
- calendar: Calendar name (optional)  

Example: "Add a meeting with John about the project proposal on Friday at 2 PM"

Find Free Time Slots

find_free_slots
- startDate: Start date in MM/DD/YYYY format  
- endDate: End date in MM/DD/YYYY format (optional)  
- duration: Duration in minutes (optional)  
- workDayStart: Work day start hour (0-23) (optional)  
- workDayEnd: Work day end hour (0-23) (optional)  
- calendar: Calendar name (optional)  

Example: "When am I free for a 1-hour meeting this week?"

Get Attendee Status

get_attendee_status
- eventId: Event ID  
- calendar: Calendar name (optional)  

Example: "Who hasn't responded to my team meeting invitation?"

Important: For operations requiring an event ID (update_event, delete_event, get_attendee_status), use the id field from the list_events response. This is the unique EntryID Outlook uses to identify events.

Update Calendar Event

update_event
- eventId: Event ID to update  
- subject: New event subject/title (optional)  
- startDate: New start date in MM/DD/YYYY format (optional)  
- startTime: New start time in HH:MM AM/PM format (optional)  
- endDate: New end date in MM/DD/YYYY format (optional)  
- endTime: New end time in HH:MM AM/PM format (optional)  
- location: New event location (optional)  
- body: New event description (optional)  
- calendar: Calendar name (optional)  

Example: "Update my team meeting tomorrow to start at 3 PM instead of 2 PM"

Get Calendars

get_calendars

Example: "Show me my available calendars"

Security Notes

  • Outlook may display security prompts on first use to allow script access
  • The tool only accesses your local Outlook client and does not send data externally
  • All operations are performed locally on your computer

Troubleshooting

  • Outlook Security Prompts: Allow script access to Outlook data
  • Script Execution Policy: Adjust PowerShell execution policy if necessary
  • Path Issues: Ensure MCP configuration paths are correct

Contributing

We welcome contributions to the Outlook Calendar MCP Tool! Please see the Contributing Guide for details on how to get started.

By participating, you agree to abide by our Code of Conduct.

License

This project is licensed under the MIT License. See the LICENSE file for details.