Provides access to Google Calendar events through MCP resources and tools. Allows listing, creating, and updating calendar events with natural language date parsing.
Three tools with basic schemas and descriptions, but significant gaps in parameter documentation and output schema clarity. list_events and create_event have reasonable descriptions (80-120 chars), but update_event is vague ('Any field left as None will be left unchanged' lacks context on what fields are mutable). All three tools lack documented output schemas, critical for LLM planning. Parameters are typed but descriptions are minimal (e.g., 'Event title/summary' for summary param). No error handling guidance, no pagination support for list_events despite potentially large result sets, and no idempotency hints for write operations. Code shows format_events() returns unstructured text, not structured JSON, forcing LLMs to parse free-form output.
Create a new calendar event with summary, start/end times, and optional description, location, and attendees.
List calendar events between two dates. Dates can be in YYYY-MM-DD format or natural language like 'today', 'tomorrow', 'next Monday'.
Update an existing calendar event by event ID. Any field left as None will be left unchanged.
No documented output schemas for any tool. LLMs cannot plan downstream calls or extract required fields (e.g., event_id for update_event). format_events() returns unstructured text, not structured JSON.
list_events lacks pagination (limit, offset, next_cursor) and result count. No cap on returned events, large calendars could blow context window. Description does not mention limits or pagination.
update_event description is vague ('Any field left as None will be left unchanged'). Does not explain which fields are mutable, what happens on conflict, or whether the operation is idempotent. LLMs cannot reason about retry safety.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 51 | <=2025-11-25 | v2 |
Parameter descriptions are minimal and lack format/constraint details. E.g., 'Event title/summary' for summary param does not specify max length, character restrictions, or required format. 'Optional comma-separated list' for attendees is informal, should be structured array or explicit format.
No error handling guidance. Code does not show what happens on invalid dates, missing credentials, API failures, or permission errors. LLMs receive no recovery hints.