gcal-mcp
A Google Calendar MCP server using OAuth2 bearer token auth via the Dedalus MCP framework.
Tools
Calendars
gcal_list_calendars- List all calendars accessible by the usergcal_get_calendar- Get details of a specific calendargcal_create_calendar- Create a secondary calendargcal_delete_calendar- Delete a secondary calendargcal_clear_calendar- Clear a calendar (deletes all events)gcal_patch_calendar- Patch calendar metadatagcal_update_calendar- Update calendar metadata (full replace)
Calendar List
gcal_calendarlist_get- Get a calendar list entrygcal_calendarlist_insert- Insert an existing calendar into the user's calendar listgcal_calendarlist_delete- Remove a calendar from the user's calendar listgcal_calendarlist_patch- Patch a calendar list entrygcal_calendarlist_update- Update a calendar list entry (full replace)
Events
gcal_list_events- List events from a calendargcal_get_event- Get a specific event by IDgcal_search_events- Search for events by text querygcal_get_event_instances- Get instances of a recurring eventgcal_create_event- Create an eventgcal_delete_event- Delete an eventgcal_patch_event- Patch an event (partial update)gcal_update_event- Update an event (full replace)gcal_quick_add_event- Quick add an event from a text stringgcal_move_event- Move an event to another calendargcal_import_event- Import an event (creates a private copy)
Free/Busy
gcal_get_freebusy- Query free/busy information for calendars
Settings
gcal_get_settings- Get user's calendar settingsgcal_get_setting- Get a specific calendar setting
Colors
gcal_get_colors- Get available calendar and event colors
Watch (Webhooks)
gcal_channels_stop- Stop watching a channelgcal_events_watch- Watch for changes to Events resourcesgcal_calendarlist_watch- Watch for changes to CalendarList resourcesgcal_settings_watch- Watch for changes to Settings resources
Authentication
Google Calendar API requires OAuth2. The access token is provided at runtime via Dedalus credential exchange.
Required OAuth scopes:
https://www.googleapis.com/auth/calendar- Full calendar accesshttps://www.googleapis.com/auth/calendar.events- Event access
Usage
Prerequisites
- A Dedalus API key (
dsk-live-*ordsk-test-*) - The
dedalus-labsPython SDK installed
Environment Variables
DEDALUS_API_KEY=dsk-live-your-key-here
DEDALUS_API_URL=https://api.dedaluslabs.ai
DEDALUS_AS_URL=https://as.dedaluslabs.ai
Example Client
See src/_client.py for a complete example client that handles the OAuth browser flow.
The first time you use the MCP server, you'll be prompted to authorize Google Calendar access via OAuth.
OAuth Flow
- On first request, you'll receive an
AuthenticationErrorwith aconnect_url - Open the URL in a browser to authorize Google Calendar access
- After authorization, retry the request - credentials are now stored
- Subsequent requests will work without re-authorization
Local Development
cd gcal-mcp
uv sync
uv run python src/main.py
