A read-only Google Calendar MCP server written in Go. Supports multiple Google accounts.
- Read-only scope only: Uses
calendar.readonlyscope - cannot create, modify, or delete any events - Local token storage: OAuth tokens stored locally in
~/.config/gcal-readonly-mcp/tokens/ - No third-party services: Communicates only with Google Calendar API
- No telemetry: Zero analytics or data collection
- Multi-account support (personal, work, etc.)
- List calendars from all configured accounts
- List events with date filtering and search
- Check free/busy availability across accounts
- Go to Google Cloud Console
- Create a new project (or select existing)
- Enable the Google Calendar API
- Create OAuth 2.0 credentials:
- Application type: Desktop app
- Download the JSON file
- Place the credentials at:
~/.config/gcal-readonly-mcp/credentials.json
# Add your personal account
./gcal-readonly-mcp --add-account personal
# Add your work account
./gcal-readonly-mcp --add-account work
# List configured accounts
./gcal-readonly-mcp --list-accountsEach --add-account command opens a browser for OAuth authentication.
Add to your ~/.claude/settings.json:
{
"mcpServers": {
"gcal-readonly": {
"command": "/path-to/gcal-readonly-mcp"
}
}
}| Tool | Description |
|---|---|
list_accounts |
List all configured Google accounts |
list_calendars |
List calendars (all accounts or specific) |
list_events |
List events with date/query filters |
get_event |
Get detailed event information |
check_availability |
Check free/busy status |
Once configured, you can ask:
- "What's on my calendar today?"
- "List my events for next week"
- "Am I free Thursday afternoon?"
- "Show my work calendar events"
~/.config/gcal-readonly-mcp/
├── config.json # Account configuration
├── credentials.json # Google OAuth credentials (you provide)
└── tokens/
├── personal.json # Token for 'personal' account
└── work.json # Token for 'work' account
MIT