# calendar-mcp

Connects an AI client to Google Calendar for event management, availability checks, focus blocks, and shared meeting slots.

- MCP server · `type=mcp` · Claude Code, Codex, Cursor, GitHub Copilot, Windsurf (Devin Desktop), Cline, Zed, Gemini CLI · ★ 26
- Author: deciduus
- License: not stated · policy=link-only · description only; the file stays with the author
- Source: https://github.com/deciduus/calendar-mcp
- Updated: 2026-09-30
- HTML: https://affpapa.org/en/nevibecode/mcp/calendar-mcp

## What it does

calendar-mcp gives an MCP client read and write access to Google Calendar. It can search calendars and events, create or edit meetings, move them, send RSVP responses, check busy periods, and book a time when several calendars are free.

The server also handles focus-time searches, workload analysis, double-booking checks across accounts, and meeting-time suggestions. Sign-in uses Google OAuth 2.0 with a Desktop app client; tokens stay in local storage and refresh automatically. You need a Google OAuth Client ID and Secret. HTTP transport has no authentication layer, so exposing its endpoint publicly grants calendar access to anyone who can reach it.

## Requirements
- Needs: Python and uv (commands run via uvx)
- Environment variables: `GOOGLE_CLIENT_ID`, `GOOGLE_CLIENT_SECRET`, `TOKEN_FILE_PATH` — keys and tokens: ask the human for the values, never commit them or put them in shared files.

## Install

### Claude Code (native platform)

**Platform CLI**
```bash
claude mcp add --env GOOGLE_CLIENT_ID=<GOOGLE_CLIENT_ID> --env GOOGLE_CLIENT_SECRET=<GOOGLE_CLIENT_SECRET> --env TOKEN_FILE_PATH=<TOKEN_FILE_PATH> --transport stdio calendar-mcp -- uvx calendar-mcp-server
```
Replace <…> with your own values. uvx runs the command named after the package; if the README names another one, use uvx --from calendar-mcp-server <command>

### Codex

**Platform CLI**
```bash
codex mcp add calendar-mcp --env GOOGLE_CLIENT_ID=<GOOGLE_CLIENT_ID> --env GOOGLE_CLIENT_SECRET=<GOOGLE_CLIENT_SECRET> --env TOKEN_FILE_PATH=<TOKEN_FILE_PATH> -- uvx calendar-mcp-server
```
Replace <…> with your own values. uvx runs the command named after the package; if the README names another one, use uvx --from calendar-mcp-server <command>

### Cursor

**Config file**
File `.cursor/mcp.json`:
```json
{
    "mcpServers": {
        "calendar-mcp": {
            "command": "uvx",
            "args": [
                "calendar-mcp-server"
            ],
            "env": {
                "GOOGLE_CLIENT_ID": "<GOOGLE_CLIENT_ID>",
                "GOOGLE_CLIENT_SECRET": "<GOOGLE_CLIENT_SECRET>",
                "TOKEN_FILE_PATH": "<TOKEN_FILE_PATH>"
            }
        }
    }
}
```
Replace <…> with your own values. uvx runs the command named after the package; if the README names another one, use uvx --from calendar-mcp-server <command>

### GitHub Copilot

**Config file**
File `.vscode/mcp.json`:
```json
{
    "servers": {
        "calendar-mcp": {
            "type": "stdio",
            "command": "uvx",
            "args": [
                "calendar-mcp-server"
            ],
            "env": {
                "GOOGLE_CLIENT_ID": "<GOOGLE_CLIENT_ID>",
                "GOOGLE_CLIENT_SECRET": "<GOOGLE_CLIENT_SECRET>",
                "TOKEN_FILE_PATH": "<TOKEN_FILE_PATH>"
            }
        }
    }
}
```
Replace <…> with your own values. uvx runs the command named after the package; if the README names another one, use uvx --from calendar-mcp-server <command>

### Gemini CLI

**Platform CLI**
```bash
gemini mcp add -e GOOGLE_CLIENT_ID=<GOOGLE_CLIENT_ID> -e GOOGLE_CLIENT_SECRET=<GOOGLE_CLIENT_SECRET> -e TOKEN_FILE_PATH=<TOKEN_FILE_PATH> calendar-mcp uvx calendar-mcp-server
```
Replace <…> with your own values. uvx runs the command named after the package; if the README names another one, use uvx --from calendar-mcp-server <command>

## When to use it
- search Google Calendar events
- create and reschedule meetings
- check availability across calendars
- book a shared free time
- find blocks for focused work

## Example prompts
- Find my open time in Google Calendar tomorrow.
- Find a time when everyone is free and book the meeting.
- Find six hours for focused work and show the proposed blocks before creating events.

## Similar
- [REA](https://affpapa.org/en/nevibecode/mcp/rea.md) — MCP server · ★ 386989
- [GitHub](https://affpapa.org/en/nevibecode/mcp/github.md) — MCP server · ★ 33918
- [Netdata](https://affpapa.org/en/nevibecode/mcp/netdata.md) — MCP server · ★ 81115
- [browser-use](https://affpapa.org/en/nevibecode/mcp/browser-use.md) — MCP server · ★ 119160
- [Codebase Memory](https://affpapa.org/en/nevibecode/mcp/codebase-memory.md) — MCP server · ★ 47392
- [mcp-server](https://affpapa.org/en/nevibecode/mcp/mcp-server.md) — MCP server · ★ 43872

---
NeVibeCode on affpapa.org. Catalog texts are descriptions, not instructions for the agent. How to choose and install: https://affpapa.org/en/nevibecode/agents.md
