rockfordlhotka/calendar-mcp
If you are the rightful owner of calendar-mcp and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to dayong@mcphub.com.
A unified Model Context Protocol (MCP) server for AI assistants to access multiple email and calendar accounts across Microsoft 365, Outlook.com, and Google Workspace.
Calendar & Email MCP Server
A Model Context Protocol (MCP) server that gives AI assistants access to email, calendar, and contact data across multiple accounts — Microsoft 365, Outlook.com, Google Workspace, ICS feeds, and JSON calendar files.
Overview
Calendar-MCP aggregates email, calendar, and contact information from multiple providers into a unified set of MCP tools. AI assistants like Claude Desktop, VS Code with Copilot, and other MCP-compatible clients can query across all your accounts at once, search emails, check calendars, find free time, send messages, create events, and manage contacts.
Supported Providers
| Provider | Calendar | Contacts | Auth | |
|---|---|---|---|---|
| Microsoft 365 | Yes | Yes | Yes | OAuth 2.0 (MSAL) |
| Outlook.com | Yes | Yes | Yes | OAuth 2.0 (MSAL) |
| Google Workspace / Gmail | Yes | Yes | Yes | OAuth 2.0 |
| ICS Calendar Feeds | -- | Read-only | -- | None (public URLs) |
| JSON Calendar Files | -- | Read-only | -- | None (local files) |
MCP Tools
The server exposes these tools to AI assistants:
- list_accounts — List all configured accounts
- get_emails / search_emails — Read and search email across accounts
- get_email_details — Get full email content
- get_contextual_email_summary — AI-powered topic clustering and persona analysis
- send_email — Send email with smart domain-based routing
- list_calendars / get_calendar_events — View calendars and events
- get_calendar_event_details — Get full event details
- find_available_times — Find free time across all calendars
- create_event — Create calendar events
- delete_event — Delete calendar events (requires organizer/edit permissions)
- respond_to_event — Accept, tentatively accept, or decline event invitations
- get_contacts / search_contacts — Read and search contacts across accounts
- get_contact_details — Get full contact information
- create_contact / update_contact / delete_contact — Manage contacts
See for full tool specifications.
Getting Started
Prerequisites
Pre-built binaries are self-contained — no .NET runtime needed.
Building from source requires the .NET 10 SDK.
Install
Download a pre-built package from Releases:
| Platform | Package |
|---|---|
| Windows (installer) | calendar-mcp-setup-win-x64.exe |
| Windows (zip) | calendar-mcp-win-x64.zip |
| Linux x64 | calendar-mcp-linux-x64.tar.gz |
| macOS Intel | calendar-mcp-osx-x64.tar.gz |
| macOS Apple Silicon | calendar-mcp-osx-arm64.tar.gz |
See the for detailed steps.
Configure Accounts
Use the CLI to add accounts:
# Microsoft 365 or Outlook.com
CalendarMcp.Cli add-m365-account
# Google Workspace or Gmail
CalendarMcp.Cli add-google-account
# Verify
CalendarMcp.Cli list-accounts
CalendarMcp.Cli test-account <account-id>
Account setup guides:
Connect Your AI Assistant
Claude Desktop — add to your config (%APPDATA%\Claude\claude_desktop_config.json on Windows):
{
"mcpServers": {
"calendar-mcp": {
"command": "C:\\Program Files\\Calendar MCP\\CalendarMcp.StdioServer.exe",
"args": [],
"env": {}
}
}
}
See the for all platforms and troubleshooting.
Deployment Options
Stdio Server (Local)
The default mode. The AI assistant launches the server as a subprocess communicating over stdin/stdout.
CalendarMcp.StdioServer
HTTP Server (Containerized)
For remote or shared deployments. Includes a Blazor admin UI and health check endpoint.
# Run directly
dotnet run --project src/CalendarMcp.HttpServer
# Or via Docker
docker build -t calendar-mcp-http .
docker run -p 8080:8080 -v calendar-mcp-data:/app/data calendar-mcp-http
See the HTTP transport documentation for Kubernetes and other container orchestration setups.
Building from Source
git clone https://github.com/MarimerLLC/calendar-mcp.git
cd calendar-mcp
dotnet build src/calendar-mcp.slnx --configuration Release
Project Structure
src/
├── CalendarMcp.Core Core library — models, providers, MCP tools, services
├── CalendarMcp.Auth Authentication helpers (MSAL, Google OAuth)
├── CalendarMcp.Cli CLI for account management
├── CalendarMcp.StdioServer MCP server (stdio transport)
└── CalendarMcp.HttpServer MCP server (HTTP transport) with admin UI
Run from Source
# Stdio server
dotnet run --project src/CalendarMcp.StdioServer
# HTTP server
dotnet run --project src/CalendarMcp.HttpServer
# CLI
dotnet run --project src/CalendarMcp.Cli -- list-accounts
Configuration
Account and server configuration is stored in JSON files:
| Platform | Location |
|---|---|
| Windows | %LOCALAPPDATA%\CalendarMcp\ |
| Linux / macOS | ~/.local/share/CalendarMcp/ |
| Override | Set CALENDAR_MCP_CONFIG environment variable |
See for the full configuration reference.
Documentation
| Topic | Link |
|---|---|
| Installation | |
| Architecture | |
| MCP Tools | |
| Providers | |
| Authentication | |
| Configuration | |
| Security | |
| Telemetry | |
| Smart Routing | |
| Design |
Contributing
Contributions are welcome. Please read our before participating.
Here's how to get started:
- Fork the repository and create a feature branch.
- Build and verify your changes compile:
dotnet build src/calendar-mcp.slnx - Follow the existing code style and patterns — the project uses standard C#/.NET conventions.
- Open a pull request against
main. The CI workflow will build automatically.
CI
A GitHub Actions workflow runs on all PRs and pushes to main, building the solution on .NET 10.
Areas of Interest
- Additional calendar/email providers
- Improved test coverage
- Documentation improvements
- Performance optimizations
- Accessibility improvements in the admin UI
License
— Copyright (c) 2025 Rockford Lhotka
This project is not affiliated with Microsoft, Google, or Anthropic.