Server Details
A MCP server that works with Google Calendar to manage event listing, reading, and updates.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP
- URL
- Repository
- mintmcp/servers
- GitHub Stars
- 5
Available Tools
6 toolscreate_eventTry in Inspector
Create a new calendar event. Use this to schedule meetings, appointments, or all-day events. For all-day events, only provide dates (end date is EXCLUSIVE - use '2024-01-16' for a single day event on Jan 15). For timed events, both start and end times are required. Can optionally invite attendees with email notifications. The created event ID can be used for future updates or deletion.
| Name | Required | Description | Default |
|---|---|---|---|
| endDate | Yes | End date YYYY-MM-DD. For all-day: next day. For timed: same or later day | |
| endTime | No | End time HH:MM:SS (e.g., "15:00:00"). Required if startTime provided | |
| summary | Yes | Event title | |
| location | No | Event location (address or meeting room) | |
| timeZone | Yes | Timezone (e.g., "America/Los_Angeles", "UTC", "Europe/London") | |
| attendees | No | Email addresses of attendees to invite | |
| startDate | Yes | Start date YYYY-MM-DD (e.g., "2024-01-15") | |
| startTime | No | Start time HH:MM:SS (e.g., "14:00:00"). Omit for all-day events | |
| calendarId | Yes | Calendar ID from list_calendars (required - get ID first using list_calendars) | |
| description | No | Event description. Supports markdown formatting | |
| sendUpdates | No | all: notify everyone, externalOnly: only external users, none: no notifications | all |
delete_eventTry in Inspector
Permanently delete an event by eventId (no undo). Sends cancellation notifications to attendees by default (control with sendUpdates). Returns {success: true, eventId, message} on success.
| Name | Required | Description | Default |
|---|---|---|---|
| eventId | Yes | Event ID to delete | |
| calendarId | Yes | Calendar ID from list_calendars | |
| sendUpdates | No | Whether to send cancellation notifications (all: notify all attendees, externalOnly: only non-Google Calendar users, none: no notifications) | all |
get_calendar_eventsTry in Inspector
Retrieve events from a specific calendar within a time range. Use this to view scheduled events, check availability, or find specific appointments. Times are interpreted in the provided timezone. Without dateMax, returns all future events from dateMin. IMPORTANT: For single day events, use next day as dateMax (e.g., dateMin='2024-01-15' and dateMax='2024-01-16'). Event IDs from this tool are required for update/delete operations.
| Name | Required | Description | Default |
|---|---|---|---|
| dateMax | No | End date YYYY-MM-DD. Events BEFORE this date. For single day, use next day | |
| dateMin | Yes | Start date YYYY-MM-DD (e.g., "2024-01-15"). Required | |
| timeMax | No | End time HH:MM:SS. Only valid with dateMax | |
| timeMin | Yes | Start time HH:MM:SS (e.g., "09:00:00"). Required | |
| timeZone | Yes | Timezone for interpreting dates/times (e.g., "America/Los_Angeles", "UTC") | |
| pageToken | No | Pagination token from previous response | |
| calendarId | Yes | Calendar ID from list_calendars (required - get ID first using list_calendars) | |
| maxResults | No | Number of events to return (1-2500). Default: 10 |
get_next_availabilityTry in Inspector
Find next 10 available time slots in a calendar. Searches up to 30 days ahead. Returns {availableSlots: [{start, end}...], searchedUntil} with times in the specified timezone. Use searchedUntil with new startFromDate/Time to paginate. Can restrict to specific hours/days. Slots align to startTimeIncrement boundaries.
| Name | Required | Description | Default |
|---|---|---|---|
| duration | Yes | Duration of the meeting in minutes (e.g., 30, 60, 90) | |
| timezone | Yes | Time zone for all operations (IANA format, e.g., "America/New_York") | |
| calendarId | Yes | Calendar ID from list_calendars | |
| includeDays | No | Days of the week to include in search (default: weekdays only) | |
| startFromDate | Yes | Start searching from this date in YYYY-MM-DD format (e.g., "2024-01-15") | |
| startFromTime | Yes | Start searching from this time in HH:MM:SS format (e.g., "09:00:00") | |
| searchHoursEnd | No | Daily search window end time in HH:MM:SS format (e.g., "17:00:00"). If not provided, searches all hours | |
| searchHoursStart | No | Daily search window start time in HH:MM:SS format (e.g., "09:00:00"). If not provided, searches all hours | |
| startTimeIncrement | No | Increment between possible start times in minutes (e.g., 15 for every 15 minutes, 30 for every half-hour) |
list_calendarsTry in Inspector
List all calendars the user has access to. Use this to discover available calendars before performing calendar operations. The primary calendar (primary:true) is the user's main calendar. Other calendars may be shared, subscribed, or secondary calendars. The calendar ID is required for all other calendar operations.
| Name | Required | Description | Default |
|---|---|---|---|
| pageToken | No | Pagination token from previous response to get next page | |
| maxResults | No | Number of calendars to return (1-250). Default: 100 |
update_eventTry in Inspector
Update an existing event by eventId. Dates/times are interpreted in the provided timezone. Can update individual fields (summary, description, location) OR update times (must provide all: startDate, endDate, and optionally startTime, endTime). WARNING: Empty strings/arrays CLEAR fields. Cannot move between calendars. Returns updated event {id, summary, start, end, updated, ...}.
| Name | Required | Description | Default |
|---|---|---|---|
| endDate | No | End date in YYYY-MM-DD format (e.g., "2024-01-16" for all-day or "2024-01-15" for timed). Required if updating time | |
| endTime | No | End time in HH:MM:SS format (e.g., "15:00:00"). Omit for all-day events | |
| eventId | Yes | Event ID to update | |
| summary | No | Event title/summary | |
| location | No | Event location | |
| timeZone | Yes | Timezone for interpreting dates and times (e.g., "America/Los_Angeles", "UTC", "Europe/London") | |
| attendees | No | Array of attendee email addresses (replaces existing attendees) | |
| startDate | No | Start date in YYYY-MM-DD format (e.g., "2024-01-15"). Required if updating time | |
| startTime | No | Start time in HH:MM:SS format (e.g., "14:00:00"). Omit for all-day events | |
| calendarId | Yes | Calendar ID from list_calendars | |
| description | No | Event description | |
| sendUpdates | No | Whether to send update notifications (all: notify all attendees, externalOnly: only non-Google Calendar users, none: no notifications) | all |
FAQ
How do I claim this server?
To claim this server, publish a /.well-known/glama.json file on your server's domain with the following structure:
The email address must match the email associated with your Glama account. Once verified, the server will appear as claimed by you.
What are the benefits of claiming a server?
- Control your server's listing on Glama, including description and metadata
- Receive usage reports showing how your server is being used
- Get monitoring and health status updates for your server
Your Connectors
Sign in to create a connector for this server.