Skip to main content
Glama

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 tools
create_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.

ParametersJSON Schema
NameRequiredDescriptionDefault
endDateYesEnd date YYYY-MM-DD. For all-day: next day. For timed: same or later day
endTimeNoEnd time HH:MM:SS (e.g., "15:00:00"). Required if startTime provided
summaryYesEvent title
locationNoEvent location (address or meeting room)
timeZoneYesTimezone (e.g., "America/Los_Angeles", "UTC", "Europe/London")
attendeesNoEmail addresses of attendees to invite
startDateYesStart date YYYY-MM-DD (e.g., "2024-01-15")
startTimeNoStart time HH:MM:SS (e.g., "14:00:00"). Omit for all-day events
calendarIdYesCalendar ID from list_calendars (required - get ID first using list_calendars)
descriptionNoEvent description. Supports markdown formatting
sendUpdatesNoall: notify everyone, externalOnly: only external users, none: no notificationsall
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.

ParametersJSON Schema
NameRequiredDescriptionDefault
eventIdYesEvent ID to delete
calendarIdYesCalendar ID from list_calendars
sendUpdatesNoWhether 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.

ParametersJSON Schema
NameRequiredDescriptionDefault
dateMaxNoEnd date YYYY-MM-DD. Events BEFORE this date. For single day, use next day
dateMinYesStart date YYYY-MM-DD (e.g., "2024-01-15"). Required
timeMaxNoEnd time HH:MM:SS. Only valid with dateMax
timeMinYesStart time HH:MM:SS (e.g., "09:00:00"). Required
timeZoneYesTimezone for interpreting dates/times (e.g., "America/Los_Angeles", "UTC")
pageTokenNoPagination token from previous response
calendarIdYesCalendar ID from list_calendars (required - get ID first using list_calendars)
maxResultsNoNumber 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.

ParametersJSON Schema
NameRequiredDescriptionDefault
durationYesDuration of the meeting in minutes (e.g., 30, 60, 90)
timezoneYesTime zone for all operations (IANA format, e.g., "America/New_York")
calendarIdYesCalendar ID from list_calendars
includeDaysNoDays of the week to include in search (default: weekdays only)
startFromDateYesStart searching from this date in YYYY-MM-DD format (e.g., "2024-01-15")
startFromTimeYesStart searching from this time in HH:MM:SS format (e.g., "09:00:00")
searchHoursEndNoDaily search window end time in HH:MM:SS format (e.g., "17:00:00"). If not provided, searches all hours
searchHoursStartNoDaily search window start time in HH:MM:SS format (e.g., "09:00:00"). If not provided, searches all hours
startTimeIncrementNoIncrement 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.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageTokenNoPagination token from previous response to get next page
maxResultsNoNumber 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, ...}.

ParametersJSON Schema
NameRequiredDescriptionDefault
endDateNoEnd date in YYYY-MM-DD format (e.g., "2024-01-16" for all-day or "2024-01-15" for timed). Required if updating time
endTimeNoEnd time in HH:MM:SS format (e.g., "15:00:00"). Omit for all-day events
eventIdYesEvent ID to update
summaryNoEvent title/summary
locationNoEvent location
timeZoneYesTimezone for interpreting dates and times (e.g., "America/Los_Angeles", "UTC", "Europe/London")
attendeesNoArray of attendee email addresses (replaces existing attendees)
startDateNoStart date in YYYY-MM-DD format (e.g., "2024-01-15"). Required if updating time
startTimeNoStart time in HH:MM:SS format (e.g., "14:00:00"). Omit for all-day events
calendarIdYesCalendar ID from list_calendars
descriptionNoEvent description
sendUpdatesNoWhether 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:

{ "$schema": "https://glama.ai/mcp/schemas/connector.json", "maintainers": [ { "email": "your-email@example.com" } ] }

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
Try in Browser

Your Connectors

Sign in to create a connector for this server.