Skip to main content
Glama
murphy360
by murphy360

Google Calendar MCP Server

A Model Context Protocol (MCP) server for Google Calendar integration, designed for personal calendar management with Home Assistant support.

Features

  • MCP Tools: Search events, list upcoming events, create/update/delete events

  • Daily Agenda: Get formatted daily agenda summaries

  • Calendar Categories: Organize calendars by type (work, personal, family, etc.)

  • REST API: Endpoints for Home Assistant integration

  • SSE Transport: Connect from Claude Desktop via mcp-remote

  • Docker Support: Easy deployment with Docker Compose

Quick Start

1. Google Cloud Setup

  1. Go to Google Cloud Console

  2. Create a new project or select existing

  3. Enable the Google Calendar API

  4. Create OAuth 2.0 credentials (Desktop App type)

  5. Download the credentials

2. Configuration

# Copy example environment file
cp .env.example .env

# Edit with your credentials
# GOOGLE_CLIENT_ID=your-client-id
# GOOGLE_CLIENT_SECRET=your-client-secret

3. Initial OAuth Setup

# Run OAuth setup (opens browser for consent)
docker compose --profile setup run --rm calendar-auth

4. Start the Server

docker compose up -d

5. Claude Desktop Configuration

Add to your claude_desktop_config.json:

{
  "mcpServers": {
    "calendar": {
      "command": "npx",
      "args": ["-y", "mcp-remote", "http://YOUR_SERVER_IP:8002/mcp/sse", "--allow-http"]
    }
  }
}

Home Assistant MCP Integration

The server exposes SSE endpoints for MCP connections:

  • /mcp/sse - Primary MCP SSE endpoint

  • /sse - Alias endpoint for Home Assistant compatibility

Each connection gets a fresh server instance for proper session isolation.

MCP Tools

Tool

Description

calendar_get_current_time

Get current date/time with reference dates for queries

calendar_list_events

List upcoming events with optional filters

calendar_search

Search events by text query

calendar_get_event

Get details of a specific event

calendar_create_event

Create a new calendar event

calendar_update_event

Update an existing event

calendar_delete_event

Delete an event

calendar_daily_agenda

Get agenda for a specific day

calendar_weekly_summary

Get 7-day overview

calendar_list_calendars

List all available calendars

calendar_free_busy

Check availability for a time range

Tool Schema Notes

All tools use Gemini-compatible schemas with explicit types:

  • Array parameters use comma-separated strings (e.g., attendees: "user1@example.com,user2@example.com")

  • Calendar IDs use comma-separated strings (e.g., calendar_ids: "primary,work@group.calendar.google.com")

  • Dates use ISO 8601 format (YYYY-MM-DD or YYYY-MM-DDTHH:MM:SS)

REST API Endpoints

Endpoint

Description

GET /health

Health check with auth status

GET /calendars

List all calendars

GET /events/today

Today's events

GET /events/upcoming

Upcoming events

GET /events/search?q=query

Search events

GET /summary/daily

Daily summary

GET /summary/weekly

Weekly summary

GET /free-time

Find free time slots

Home Assistant Integration

REST Sensor Example

sensor:
  - platform: rest
    name: "Next Calendar Event"
    resource: http://YOUR_SERVER_IP:8002/events/upcoming?days=1
    value_template: "{{ value_json[0].summary if value_json else 'No events' }}"
    scan_interval: 300

  - platform: rest
    name: "Today's Events Count"
    resource: http://YOUR_SERVER_IP:8002/events/today
    value_template: "{{ value_json | length }}"
    scan_interval: 300

MCP Integration

Home Assistant can connect via the MCP SSE endpoints:

  • http://YOUR_SERVER_IP:8002/mcp/sse

  • http://YOUR_SERVER_IP:8002/sse (alias)

Project Structure

mcp_google_calendar/
├── src/mcp_google_calendar/
│   ├── __init__.py
│   ├── auth.py              # OAuth2 authentication
│   ├── calendar_client.py   # Google Calendar API wrapper
│   ├── config.py            # Settings and configuration
│   ├── models.py            # Pydantic models
│   ├── server.py            # MCP stdio server
│   ├── sse_server.py        # MCP SSE server
│   ├── combined_server.py   # REST + SSE combined server
│   └── api.py               # REST API for Home Assistant
├── config/
│   └── calendars.yaml       # Calendar categorization
├── credentials/
│   ├── client_secrets.json  # OAuth credentials
│   └── token.json           # Stored tokens
├── docker-compose.yml
├── Dockerfile
└── README.md

License

MIT

Install Server
A
security – no known vulnerabilities
F
license - not found
A
quality - confirmed to work

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/murphy360/mcp_google_calendar'

If you have feedback or need assistance with the MCP directory API, please join our Discord server