calendar-mcp

rockfordlhotka/calendar-mcp

3.2

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

ProviderEmailCalendarContactsAuth
Microsoft 365YesYesYesOAuth 2.0 (MSAL)
Outlook.comYesYesYesOAuth 2.0 (MSAL)
Google Workspace / GmailYesYesYesOAuth 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:

PlatformPackage
Windows (installer)calendar-mcp-setup-win-x64.exe
Windows (zip)calendar-mcp-win-x64.zip
Linux x64calendar-mcp-linux-x64.tar.gz
macOS Intelcalendar-mcp-osx-x64.tar.gz
macOS Apple Siliconcalendar-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:

PlatformLocation
Windows%LOCALAPPDATA%\CalendarMcp\
Linux / macOS~/.local/share/CalendarMcp/
OverrideSet CALENDAR_MCP_CONFIG environment variable

See for the full configuration reference.

Documentation

TopicLink
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:

  1. Fork the repository and create a feature branch.
  2. Build and verify your changes compile: dotnet build src/calendar-mcp.slnx
  3. Follow the existing code style and patterns — the project uses standard C#/.NET conventions.
  4. 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.