MCP server for Google Calendar integration, providing tools to create, read, update, and delete calendar events and calendars, as well as free/busy queries
This Google Calendar MCP server demonstrates solid definition quality with consistent naming patterns, comprehensive parameter schemas, and clear descriptions across all 10 tools. All tools follow verb_noun naming convention (create_event, get_event, list_events, etc.). Schemas are well-structured with JSON Schema types, descriptions for all parameters, and appropriate required field declarations. However, output schemas are not documented, error handling guidance is absent, and there are minor gaps in parameter constraints (e.g., no explicit enum validation for 'orderBy' in list_events despite having enum values in schema). Tool descriptions are adequate (average ~60-80 chars) but could be more prescriptive about when to use each tool vs. similar alternatives. No parameter descriptions explicitly state format expectations, constraints, or recovery hints that would elevate this to A-level quality.
Creates a new calendar
Creates a new calendar event
Deletes a calendar
Deletes a calendar event
Retrieves a specific calendar
Retrieves a specific calendar event
Gets free/busy information for calendars
Output schemas not documented. Tools return event/calendar objects, but LLMs have no contract specifying which fields are present, types, or nested structures. This forces LLMs to guess at response structure and plan downstream tool calls speculatively.
No error handling guidance. Descriptions lack recovery hints (e.g., 'If event not found, call list_events to search' or 'Invalid time format, use RFC3339'). Error responses will not tell LLMs what to do next.
Parameter descriptions lack explicit format/constraint details. E.g., 'startTime: RFC3339 format (e.g., 2023-12-01T10:00:00Z)' mixes description with examples, LLMs may reuse the example literally. Should separate example into schema pattern/format field.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | C | 62 | <=2025-11-25 | v2 |
| 2026-03-09 | F | 0 | 2024-11-05+ | v1 |
Lists available calendars
Lists calendar events
Updates an existing calendar event
No pagination documented for list_events and list_calendars. maxResults exists but no 'nextToken' or 'offset' for continuation, and no total count returned. LLMs cannot page through large result sets reliably.
No confirmation/dry-run support for destructive operations (delete_event, delete_calendar). Agents can accidentally delete without a safety check. Recommend adding a 'confirm' parameter or implementing a separate 'preview_delete' tool.
attendees parameter in create_event accepts array of strings (emails) but no validation hint that emails must be well-formed. LLMs may pass invalid email formats.