Use the `create_meeting_invite` tool to schedule meetings on the primary Google Calendar associated with the configured OAuth credentials.
Single tool with adequate schema and description, but lacks depth in error handling and parameter validation. Tool name is clear (create_meeting_invite), description explains the action and timezone requirement, and input schema is properly typed with defaults. However, descriptions are minimal (72 chars for tool, 40-80 chars per param), no enum constraints on format variants, no error recovery guidance, and no documentation of what happens on failure (invalid email, timezone conflicts, API errors). Output schema is present but sparse, returns only event fields without guidance on next steps. No tool annotations (destructiveHint, idempotentHint) despite this being a write operation. Baseline: avg tool description 194 chars (this is 72); avg param description 72 chars (these are 40-80). Missing patterns: error-classification, recovery-guide, tool-annotation.
Create a Google Calendar meeting invite in Asia/Kolkata time. Requires meeting_time (YYYY-MM-DD HH:MM or YYYY-MM-DDTHH:MM) and other_email.
Tool description lacks error recovery guidance. No mention of what happens if email is invalid, timezone parsing fails, or Google Calendar API rejects the request. LLM has no recovery path.
Parameter descriptions are minimal (40-80 chars vs baseline 72 avg). 'meeting_time' description does not explain what happens if format is invalid or time is in the past. 'other_email' lacks validation hints (must be valid email format).
No tool annotations despite destructive/write operation. Missing destructiveHint=true and idempotentHint=false to signal to LLM that this creates calendar state and should not be retried blindly.
meeting_time parameter accepts two formats but no enum or pattern constraint. LLM may pass invalid formats (e.g. 'YYYY/MM/DD HH:MM'). Should use JSON Schema pattern or enum to enforce valid formats.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 53 | 2026-07-28+ | v2 |
Output schema lacks documentation. Tool returns dict with 7 fields (summary, status, start, end, hangoutLink, htmlLink, eventId) but no description of what each field means or when it is null. LLM cannot reason about downstream use.