Google Calendar MCP Server for Cloudflare Workers
Test Google Calendar tools directly in your browser. Select a tool and provide inputs to see the results.
Create a free account to test Google Calendar tools interactively. No credit card required.
googlecalendar_get_calendarGet metadata for a calendar. Args: - calendarId: Calendar identifier (use 'primary' for the primary calendar) - format: Response format
googlecalendar_list_aclList access control rules for a calendar. Returns all sharing rules and permissions for the specified calendar. Args: - calendarId: Calendar identifier - maxResults: Maximum rules to return - pageToken: Token for pagination - showDeleted: Include deleted rules - format: Response format
googlecalendar_get_acl_ruleGet a specific access control rule. Args: - calendarId: Calendar identifier - ruleId: ACL rule identifier (e.g., 'user:email@example.com') - format: Response format
googlecalendar_share_calendarShare a calendar by creating an access control rule. Role descriptions: - none: Remove access - freeBusyReader: Can see free/busy only - reader: Can see all event details - writer: Can edit events - owner: Full control (can share and delete the calendar) Scope types: - default: Public access (no value needed) - user: Share with a specific user (value = email) - group: Share with a Google group (value = group email) - domain: Share with everyone in a domain (value = domain name) Args: - calendarId: Calendar identifier - role: Access level to grant - scope: Who to share with - sendNotifications: Whether to send sharing notification
googlecalendar_update_acl_ruleUpdate an access control rule (full update). Args: - calendarId: Calendar identifier - ruleId: ACL rule identifier - role: New access level - scope: Scope of the rule - sendNotifications: Whether to send notification
googlecalendar_patch_acl_rulePartially update an access control rule. Only updates the specified fields. Args: - calendarId: Calendar identifier - ruleId: ACL rule identifier - role: New access level - sendNotifications: Whether to send notification
googlecalendar_unshare_calendarRemove calendar sharing by deleting an access control rule. Args: - calendarId: Calendar identifier - ruleId: ACL rule identifier to delete
googlecalendar_list_calendar_listList all calendars on the user's calendar list. Returns a paginated list of the user's calendar entries. Use pageToken to fetch subsequent pages. Args: - maxResults: Maximum number of entries to return (1-250) - pageToken: Token from previous response for pagination - minAccessRole: Filter by minimum access role - showDeleted: Whether to include deleted calendar list entries - showHidden: Whether to show hidden entries - format: Response format ('json' or 'markdown')
googlecalendar_get_calendar_list_entryGet a specific calendar list entry. Args: - calendarId: Calendar identifier (use 'primary' for the primary calendar) - format: Response format
googlecalendar_insert_calendar_list_entryAdd an existing calendar to the user's calendar list. This adds a calendar that already exists (e.g., a shared calendar) to the user's list. Args: - id: Calendar identifier to add - colorId: Color ID for the calendar - backgroundColor: Custom background color (hex) - foregroundColor: Custom foreground color (hex) - hidden: Whether to hide from the list - selected: Whether to show in calendar UI - summaryOverride: Custom display name - defaultReminders: Default reminders for events
googlecalendar_update_calendar_list_entryUpdate an entry on the user's calendar list (full update). Args: - calendarId: Calendar identifier - colorId: Color ID for the calendar - backgroundColor: Custom background color (hex) - foregroundColor: Custom foreground color (hex) - hidden: Whether to hide from the list - selected: Whether to show in calendar UI - summaryOverride: Custom display name - defaultReminders: Default reminders for events
googlecalendar_patch_calendar_list_entryPartially update an entry on the user's calendar list. Only updates the specified fields, leaving others unchanged. Args: - calendarId: Calendar identifier - colorId: Color ID for the calendar - backgroundColor: Custom background color (hex) - foregroundColor: Custom foreground color (hex) - hidden: Whether to hide from the list - selected: Whether to show in calendar UI - summaryOverride: Custom display name
googlecalendar_delete_calendar_list_entryRemove a calendar from the user's calendar list. This removes the calendar from the user's list but does not delete the calendar itself. Args: - calendarId: Calendar identifier to remove
googlecalendar_create_calendarCreate a new secondary calendar. The calendar is created with the authenticated user as the owner. Note: Primary calendars cannot be created; they are automatically created for users. Args: - summary: Title of the calendar (required) - description: Description of the calendar - location: Geographic location as free-form text - timeZone: IANA time zone (e.g., 'America/New_York')
googlecalendar_update_calendarUpdate metadata for a calendar (full update). Args: - calendarId: Calendar identifier - summary: Title of the calendar - description: Description of the calendar - location: Geographic location - timeZone: Time zone (IANA format)
googlecalendar_patch_calendarPartially update metadata for a calendar. Only updates the specified fields, leaving others unchanged. Args: - calendarId: Calendar identifier - summary: Title of the calendar - description: Description of the calendar - location: Geographic location - timeZone: Time zone (IANA format)
googlecalendar_delete_calendarDelete a secondary calendar. The primary calendar cannot be deleted; use clear instead to remove all events. Args: - calendarId: Calendar identifier to delete
googlecalendar_clear_calendarClear a primary calendar. Deletes all events from the primary calendar of an account. This operation cannot be undone. Note: Only works on the primary calendar. Args: - calendarId: Calendar identifier (usually 'primary')
googlecalendar_stop_channelStop receiving push notifications for a channel. This stops watching for changes that were set up using a watch request. You need the channel ID and resource ID that were returned when the watch was created. Note: Watch channels for CalendarList, Events, ACL, and Settings must be created through their respective watch endpoints, which are not currently implemented. Args: - id: The channel ID (UUID) returned from a watch request - resourceId: The resource ID returned from a watch request
googlecalendar_get_colorsGet the color definitions for calendars and events. Returns two color palettes: 1. Calendar colors: Used for the colorId field in CalendarListEntry 2. Event colors: Used for the colorId field in Event Each color has: - background: Hex color for the background - foreground: Hex color for the text Use these IDs when setting colors on calendars or events. Args: - format: Response format ('json' or 'markdown')
googlecalendar_list_eventsList events on a calendar. Returns events within the specified time range. Use singleEvents=true to expand recurring events. Args: - calendarId: Calendar identifier (use 'primary' for primary calendar) - maxResults: Maximum events to return (1-2500) - pageToken: Token for pagination - timeMin: Lower bound (RFC3339, exclusive) - timeMax: Upper bound (RFC3339, exclusive) - q: Search query (searches summary, description, location, attendee names/emails) - singleEvents: Expand recurring events into instances - orderBy: Sort order ('startTime' requires singleEvents=true, or 'updated') - showDeleted: Include deleted events - showHiddenInvitations: Show hidden invitations - timeZone: Time zone for response - updatedMin: Filter by last modification time - iCalUID: Filter by iCalendar UID - format: Response format
googlecalendar_get_eventGet a specific event. Args: - calendarId: Calendar identifier - eventId: Event identifier - timeZone: Time zone for the response - maxAttendees: Maximum number of attendees to include - format: Response format
googlecalendar_quick_add_eventCreate an event from a text string. Parses natural language to create an event. Examples: - "Meeting with John tomorrow at 3pm" - "Dinner at 7pm on Friday" - "Team standup every weekday at 9am" Args: - calendarId: Calendar identifier - text: Natural language event description - sendUpdates: Send notifications
googlecalendar_create_eventCreate a new event. For all-day events, use 'date' in start/end. For timed events, use 'dateTime'. Args: - calendarId: Calendar identifier - summary: Event title - description: Event description - location: Geographic location - start: Start time (object with date or dateTime and optional timeZone) - end: End time (object with date or dateTime and optional timeZone) - attendees: List of attendees - recurrence: RRULE strings for recurring events - visibility: Event visibility - colorId: Color ID - reminders: Reminder settings - guestsCanInviteOthers: Allow guests to invite others - guestsCanModify: Allow guests to modify - guestsCanSeeOtherGuests: Allow guests to see other guests - sendUpdates: Send notifications ('all', 'externalOnly', 'none')
googlecalendar_update_eventUpdate an event (full update). All writable fields must be provided; unspecified fields will be cleared. Args: - calendarId: Calendar identifier - eventId: Event identifier - summary: Event title - description: Event description - location: Geographic location - start: Start time - end: End time - attendees: List of attendees - recurrence: Recurrence rules - visibility: Event visibility - colorId: Color ID - status: Event status - reminders: Reminder settings - sendUpdates: Send notifications
googlecalendar_patch_eventPartially update an event. Only updates the specified fields, leaving others unchanged. Args: - calendarId: Calendar identifier - eventId: Event identifier - summary: Event title - description: Event description - location: Geographic location - start: Start time - end: End time - attendees: List of attendees - visibility: Event visibility - colorId: Color ID - status: Event status - sendUpdates: Send notifications
googlecalendar_delete_eventDelete an event. For recurring events, this deletes all instances. Args: - calendarId: Calendar identifier - eventId: Event identifier - sendUpdates: Send cancellation notifications
googlecalendar_import_eventImport an event with a specified iCalendar UID. This is used for importing events from other calendar systems. The UID must be globally unique. Args: - calendarId: Calendar identifier - iCalUID: Unique iCalendar identifier - summary: Event title - description: Event description - location: Geographic location - start: Start time - end: End time - attendees: List of attendees - recurrence: Recurrence rules - visibility: Event visibility - colorId: Color ID - status: Event status
googlecalendar_move_eventMove an event to another calendar. The event is moved from the source calendar to the destination calendar. Args: - calendarId: Source calendar identifier - eventId: Event identifier - destination: Destination calendar identifier - sendUpdates: Send notifications
googlecalendar_list_event_instancesList instances of a recurring event. Returns all instances of a recurring event within the specified time range. Args: - calendarId: Calendar identifier - eventId: Recurring event identifier - maxResults: Maximum instances to return - pageToken: Token for pagination - timeMin: Lower bound (RFC3339) - timeMax: Upper bound (RFC3339) - timeZone: Time zone - showDeleted: Include deleted instances - maxAttendees: Maximum attendees per instance - format: Response format
googlecalendar_query_freebusyQuery free/busy information for a set of calendars. Returns busy times for the specified calendars within the given time range. Useful for finding available meeting times. Args: - timeMin: Start of the interval (RFC3339 format, e.g., '2024-01-15T09:00:00Z') - timeMax: End of the interval (RFC3339 format) - items: List of calendar IDs to query (use 'primary' for primary calendar) - timeZone: Time zone for the response (IANA format, e.g., 'America/New_York') - groupExpansionMax: Maximum number of calendars for a single group (default 50) - calendarExpansionMax: Maximum calendar identifiers per group (default 50) - format: Response format
googlecalendar_list_settingsList all user settings for the authenticated user. Common settings include: - autoAddHangouts: Auto-create video meetings - dateFieldOrder: Date format order (MDY, DMY, YMD) - defaultEventLength: Default event duration in minutes - format24HourTime: Use 24-hour time format - hideInvitations: Hide invitations - hideWeekends: Hide weekends in calendar view - locale: User's locale - showDeclinedEvents: Show events the user declined - timezone: User's time zone - weekStart: First day of the week (0=Sunday, 1=Monday, 6=Saturday) Args: - maxResults: Maximum settings to return - pageToken: Token for pagination - format: Response format
googlecalendar_get_settingGet a specific user setting. Common setting IDs: - autoAddHangouts - dateFieldOrder - defaultEventLength - format24HourTime - hideInvitations - hideWeekends - locale - showDeclinedEvents - timezone - weekStart Args: - settingId: Setting identifier - format: Response format
googlecalendar_get_calendar{
"format": "example_format",
"calendarId": "example_calendarId"
}googlecalendar_list_acl{
"format": "example_format",
"pageToken": "example_pageToken",
"calendarId": "example_calendarId",
"maxResults": true,
"showDeleted": true
}googlecalendar_get_acl_rule{
"format": "example_format",
"ruleId": "example_ruleId",
"calendarId": "example_calendarId"
}