Skip to main content
Glama
timetree-mcp
by ap311036

timetree_list_occurrences

Read-onlyIdempotent

Read dated calendar occurrences overlapping a specified window of up to 93 days, including daily, weekly, monthly, and yearly rules, to list events in a bounded time range.

Instructions

Read dated occurrences overlapping an explicit window of at most 93 days, including a narrow DAILY/WEEKLY/MONTHLY/YEARLY rule subset. Requires a complete selected-calendar snapshot; unsupported rules, unsafe DST, or truncation mark complete=false. Does not establish edit eligibility or prove a time is free.

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "calendar_id": "<calendar_id>",
      "start_at": "<start_at>",
      "end_at": "<end_at>"
    },
    "name": "timetree_list_occurrences"
  }
}

Input Schema

NameRequiredDescriptionDefault
limitNo
queryNoLiteral title filter.
end_atYesExclusive window end, YYYY-MM-DDTHH:MM:SS±HH:MM; after start and at most 93 days later.
start_atYesInclusive window start, YYYY-MM-DDTHH:MM:SS±HH:MM. Numeric offset defines an absolute instant; use +00:00 instead of Z.
calendar_idYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Addedv0.6.0

TDQS

A4.1/5.0
Behavior5/5

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

Annotations only declare it is a safe, idempotent read; the description goes well beyond by disclosing failure semantics that exist nowhere else — unsupported rules, unsafe DST, or truncation set complete=false. It also bounds the recurrence support and explicitly disclaims two things agents commonly assume (edit eligibility, free/busy proof). With no output schema, this is the only place these return-value caveats appear.

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?

Three dense sentences with zero filler, front-loaded with the core operation and window bound before the caveats. Every clause carries distinct information (scope, rule subset, snapshot requirement, failure flag, non-goals).

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

Completeness4/5

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

For a read-only list tool with no output schema, the definition covers the critical unknowns: window limits, supported recurrence rules, and how incompleteness is signalled. It leaves the shape of returned occurrences and how limit interacts with the complete flag unaddressed, which is a modest gap rather than a blocking one.

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

Parameters3/5

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

Schema coverage is 60%: start_at, end_at, and query are documented in-schema, while calendar_id (pattern only) and limit (bounds/default only) carry no prose anywhere. The description reinforces the 93-day end_at constraint and hints that calendar_id is a 'selected-calendar snapshot', but adds nothing about limit or pagination behavior. Baseline 3 is appropriate at this coverage level.

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

Purpose4/5

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

States a specific verb and resource ('Read dated occurrences') plus concrete scope limits: an explicit window of at most 93 days and a 'narrow DAILY/WEEKLY/MONTHLY/YEARLY rule subset'. It implicitly separates itself from timetree_get_occurrence_for_edit ('does not establish edit eligibility') but never names that or timetree_list_events explicitly, so sibling differentiation is left partly to inference.

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

Usage Guidelines4/5

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

Gives clear preconditions (an explicit bounded window, a complete selected-calendar snapshot) and a when-not signal ('does not establish edit eligibility or prove a time is free'). It stops short of naming the alternative tool an agent should call for edit checks or free/busy queries, so the routing is implied rather than stated.

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