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.
API Reference
This server cannot be installed
Resources
Looking for Admin?
Admins can modify the Dockerfile, update the server description, and track usage metrics. If you are the server author, to access the admin panel.