Provides read-only access to the Google Calendar API, enabling users to list calendars, search and retrieve event details, check free/busy availability, and view calendar settings.
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., "@GCAL-MCPWhat's on my schedule for tomorrow?"
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.
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
For MCP Users
Use this section if you want to call the gcal-mcp server from your own application via the Dedalus SDK.
Prerequisites
A Dedalus API key (
dsk-live-*ordsk-test-*)The
dedalus-labsPython SDK:pip install dedalus-labs
Quick Start
See src/_client.py for the complete working example.
OAuth Flow
Your first request raises
AuthenticationErrorwith aconnect_urlOpen the URL in a browser to authorize Google Calendar access
After authorization, retry the request — credentials are now stored
Subsequent requests work without re-authorization
For MCP Developers
Use this section if you want to build, modify, or deploy a Google Calendar MCP server like this one.
Project Structure
src/
main.py # Entrypoint — loads .env and starts the server
server.py # MCPServer setup (port 8080, streamable HTTP)
gcal.py # All 29 Google Calendar tools + API connection
_client.py # Example client with OAuth browser flowPrerequisites
Google Cloud project with the Calendar API enabled
OAuth 2.0 credentials — create a "Web application" client in the Google Cloud Console and download the client secret JSON
Dedalus API key (
dsk-live-*ordsk-test-*)uv package manager
Environment Variables
Copy .env.example and fill in your values:
cp .env.example .envOAuth configuration (from your Google client secret JSON):
OAUTH_ENABLED=true
OAUTH_AUTHORIZE_URL=https://accounts.google.com/o/oauth2/auth
OAUTH_TOKEN_URL=https://oauth2.googleapis.com/token
OAUTH_CLIENT_ID=<your-client-id>.apps.googleusercontent.com
OAUTH_CLIENT_SECRET=GOCSPX-<your-secret>
OAUTH_SCOPES_AVAILABLE=https://www.googleapis.com/auth/calendar,https://www.googleapis.com/auth/calendar.events
OAUTH_BASE_URL=https://www.googleapis.com/calendar/v3Dedalus platform:
DEDALUS_API_KEY=dsk-live-...
DEDALUS_API_URL=https://api.dedaluslabs.ai
DEDALUS_AS_URL=https://as.dedaluslabs.aiAdding a New Tool
Define an async function in
gcal.pywith the@tooldecorator:Add it to the
gcal_toolslist at the bottom ofgcal.py
Running Locally
cd gcal-mcp
uv sync
uv run python src/main.pyThe server starts on port 8080 and exposes /mcp via streamable HTTP.