Provides tools for searching, listing, creating, updating, and deleting events, as well as generating daily agendas, weekly summaries, and checking free/busy availability.
Integrates with Home Assistant through REST API and SSE endpoints, allowing for the creation of calendar sensors and the display of event information within a smart home dashboard.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Google Calendar MCP ServerWhat's on my schedule for today?"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
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
Go to Google Cloud Console
Create a new project or select existing
Enable the Google Calendar API
Create OAuth 2.0 credentials (Desktop App type)
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-secret3. Initial OAuth Setup
# Run OAuth setup (opens browser for consent)
docker compose --profile setup run --rm calendar-auth4. Start the Server
docker compose up -d5. 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 |
| Get current date/time with reference dates for queries |
| List upcoming events with optional filters |
| Search events by text query |
| Get details of a specific event |
| Create a new calendar event |
| Update an existing event |
| Delete an event |
| Get agenda for a specific day |
| Get 7-day overview |
| List all available calendars |
| 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-DDorYYYY-MM-DDTHH:MM:SS)
REST API Endpoints
Endpoint | Description |
| Health check with auth status |
| List all calendars |
| Today's events |
| Upcoming events |
| Search events |
| Daily summary |
| Weekly summary |
| 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: 300MCP Integration
Home Assistant can connect via the MCP SSE endpoints:
http://YOUR_SERVER_IP:8002/mcp/ssehttp://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.mdLicense
MIT
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.