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.
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.
| 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) |
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 docs/mcp-tools.md for full tool specifications.
Pre-built binaries are self-contained — no .NET runtime needed.
Building from source requires the .NET 10 SDK.
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 Installation Guide for detailed steps.
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:
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 Claude Desktop Setup Guide for all platforms and troubleshooting.
The default mode. The AI assistant launches the server as a subprocess communicating over stdin/stdout.
CalendarMcp.StdioServerFor 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-httpSee the HTTP transport documentation for Kubernetes and other container orchestration setups.
git clone https://github.com/MarimerLLC/calendar-mcp.git
cd calendar-mcp
dotnet build src/calendar-mcp.slnx --configuration Releasesrc/
├── 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
# Stdio server
dotnet run --project src/CalendarMcp.StdioServer
# HTTP server
dotnet run --project src/CalendarMcp.HttpServer
# CLI
dotnet run --project src/CalendarMcp.Cli -- list-accountsAccount 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 docs/configuration.md for the full configuration reference.
| Topic | Link |
|---|---|
| Installation | docs/INSTALLATION.md |
| Architecture | docs/architecture.md |
| MCP Tools | docs/mcp-tools.md |
| Providers | docs/providers.md |
| Authentication | docs/authentication.md |
| Configuration | docs/configuration.md |
| Security | docs/security.md |
| Telemetry | docs/telemetry.md |
| Smart Routing | docs/routing.md |
| Design | docs/DESIGN.md |
Contributions are welcome. Please read our Code of Conduct 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.
A GitHub Actions workflow runs on all PRs and pushes to main, building the solution on .NET 10.
- Additional calendar/email providers
- Improved test coverage
- Documentation improvements
- Performance optimizations
- Accessibility improvements in the admin UI
MIT — Copyright (c) 2025 Rockford Lhotka
This project is not affiliated with Microsoft, Google, or Anthropic.