Skip to main content
Glama

Program calendar

list_program_occurrences

Every dated occurrence of matching published programs in [from, to) — a range of at most 93 days — with its program, organizer and status (cancelled and rescheduled dates included unless include_cancelled is false). The same filters as search_programs. Paginated via cursor.

Input Schema

NameRequiredDescriptionDefault
qNoFree text over name, summary, organizer and tags
toYesISO date or date-time; at most 93 days after `from`
tzNoTimezone for bare from/to dates (default America/Halifax)
bboxNo[minLng, minLat, maxLng, maxLat]
cityNoCity, case-insensitive
fromYesISO date or date-time (bare dates are midnight in `tz`)
kindNoprogram · event · volunteer · job
nearNoA point; use with radius_km
limitNoPage size (default 100, max 500)
cursorNoOpaque cursor from the previous page (next_cursor)
countryNoISO 3166-1 code canonical (CA); any spelling matches
provinceNoISO 3166-2 code canonical (NS); any spelling matches
audiencesNo
entity_idNoPrograms this entity organizes, hosts or partners on
frequencyNo
radius_kmNoRadius around `near` (default 10, max 200)
saved_mapNoA public saved map (share token or id): programs of the organizations on it
categoriesNo
cost_modelsNo
access_modelsNo
include_cancelledNoDefault true: cancelled dates are listed with their status

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.4/5.0
Behavior4/5

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

With no annotations, the description carries the full burden and does disclose substantive behavior: only published programs are covered, cancelled and rescheduled dates are included by default with their status, the window is capped at 93 days, and results are cursor-paginated. It omits result ordering and any auth/permission expectations, but the operationally risky details (range cap, cancellation default) are stated.

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?

Two dense sentences, front-loaded with what is returned before the constraints and pagination note. Every clause carries information an agent needs — nothing is restated from the schema verbatim without added meaning.

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 21-parameter query tool with no output schema and no annotations, the description covers scope, filter alignment, the range cap, cancellation handling, and pagination — enough to call it correctly. Ordering of returned occurrences and the concrete status values are left unstated, but these are secondary to correct invocation.

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

Parameters4/5

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

Schema coverage is 76% across 21 parameters, so the baseline is 3; the description earns above that by delegating the full filter set to a named sibling ('The same filters as search_programs') and by explaining the include_cancelled semantics in terms of effect on results rather than repeating the default. The from/to window rule is restated with the 93-day limit, which is the constraint most likely to cause a failed call.

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 states a specific resource and scope: 'Every dated occurrence of matching published programs in [from, to)', plus the joined fields returned (program, organizer, status). That distinguishes it cleanly from search_programs, which returns program records rather than dated occurrences, without needing the schema.

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?

It signals the sibling relationship ('The same filters as search_programs') and states the hard operating constraint (range of at most 93 days, paginate via cursor), which tells an agent when this tool is viable. It stops short of an explicit 'use search_programs if you want program records, use this for calendar dates' routing rule, so there are no explicit exclusions.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources