Local MCP server for Google Calendar — read, create, update events with your Google account directly.
honest-calendar-mcp provides 6 well-named tools with complete input schemas and clear descriptions. Tool names follow verb_noun convention (list_calendars, create_event, delete_event). All tools have descriptions (avg 120 chars, within 10-1024 baseline). Input schemas are properly typed with required fields and enums. However, output schemas are not documented, LLMs cannot predict response structure for downstream chaining. Parameter descriptions are present but sparse (e.g., 'RFC3339' format stated but no guidance on timezone handling). Error handling is absent from visible code, no recovery guidance, no validation messages. Missing tool annotations (readOnlyHint, destructiveHint) despite clear risk levels (READ_ONLY, WRITE, DESTRUCTIVE). No pagination guidance for list_events despite potential for large result sets.
Create a new event. Times as RFC3339 datetimes (timed) or YYYY-MM-DD (all-day). Attendees is a list of email strings.
Delete an event by id.
Fetch full details of a single event by id.
List all calendars available on this account with id, summary, and access role.
List events in a calendar within a time range. Returns event id, summary, start, end, location, attendees. Default calendar is 'primary'.
Partial update of an existing event. Only pass the fields you want to change. Uses PATCH semantics.
Output schemas not documented. LLMs cannot predict response structure (fields, types, nested objects) for list_events, get_event, create_event, update_event, delete_event. This breaks tool chaining, agent cannot extract calendar_id or event_id from responses for downstream calls.
No tool annotations (readOnlyHint, destructiveHint, idempotentHint). Tools declare risk levels (READ_ONLY, WRITE, DESTRUCTIVE) but MCP annotations are absent. Agents cannot distinguish safe retries from irreversible operations without explicit hints.
No error handling or recovery guidance in visible code. If create_event fails (invalid timezone, attendee not found, quota exceeded), agent receives raw exception with no actionable next step. Missing pattern: recovery-guide.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 64 | 2026-07-28+ | v2 |
list_events lacks pagination guidance. Schema accepts max_results (default 50, max 250) but no documentation of total count, next_cursor, or behavior when results exceed limit. Large calendars risk context window exhaustion.
Parameter descriptions lack format/constraint details. 'timezone' param says 'IANA tz like Europe/Warsaw, default Europe/Warsaw' but no validation guidance. 'recurrence' accepts RRULE/RDATE/EXDATE but no examples or error cases documented.