Skip to main content
Glama
deciduus
by deciduus

Project recurring events

project_recurring_events
Read-onlyIdempotent

Predict future occurrences of recurring events by expanding recurrence rules beyond Google's visible horizon, so you can see when birthdays or standups land next year.

Instructions

Compute future occurrences of recurring events from their recurrence rules.

Unlike find_events, this expands the RRULEs locally, so it reaches past the horizon Google materialises instances for -- useful for "when do my birthdays / standups land next year".

Args: time_min: Start of the projection window, ISO 8601. time_max: End of the projection window, ISO 8601. calendar_id: Calendar whose recurring events should be projected. event_query: Only project recurring events matching this text, e.g. 'Birthday'. account: Account name from 'calendar-mcp accounts'; omit for the default.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
accountNo
time_maxYes
time_minYes
calendar_idNoprimary
event_queryNo

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
countYesNumber of projected occurrences.
time_maxYesEnd of the projection window, ISO 8601.
time_minYesStart of the projection window, ISO 8601.
calendar_idYesCalendar that was projected.
occurrencesNoComputed occurrences, earliest first.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv1.1.0

TDQS

A4.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, openWorldHint, and idempotentHint, so the base safety profile is covered. The description adds valuable behavioral context beyond annotations: it expands RRULEs locally rather than relying on Google-materialized instances, which explains a non-obvious implementation trait that affects results and performance. No contradiction with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is tight and well-organized: a one-sentence purpose, a differentiating note with a use case, then a clean Args list. No filler or repetition of schema defaults; every sentence adds information needed for correct invocation.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given five parameters, zero schema descriptions, and an output schema present, the description provides everything an agent needs: purpose, usage guidance, behavioral expectations, and complete parameter semantics. It does not need to describe return values because the output schema exists. Nothing critical is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description carries the full burden of parameter explanation. It does so thoroughly: time_min and time_max are defined as the projection window with ISO 8601 format, calendar_id is the calendar to project, event_query is explained with an example, and account references where to obtain account names and notes the default. This far exceeds the bare schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific, action-oriented statement: 'Compute future occurrences of recurring events from their recurrence rules.' It clearly identifies the resource (recurring events) and the operation (compute future occurrences), and it explicitly contrasts itself with the sibling find_events, making differentiation immediate.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly names the alternative tool find_events and explains the precise condition for choosing this tool: it expands RRULEs locally and reaches past the horizon Google materializes instances for. It also gives a concrete use case ('when do my birthdays / standups land next year'), so an agent knows exactly when to invoke this tool over siblings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.