Skip to main content
Glama

List events

list_events
Read-onlyIdempotent

Retrieve calendar events with details like attendees, status, and hangout links. Filter by time range or search text, expand recurring events, and paginate results.

Instructions

Lists events on a calendar: id, summary, start/end (all-day events carry date with an EXCLUSIVE end; timed events carry dateTime), status, attendees with responseStatus, organizer, recurrence, hangoutLink, eventType. time_min/time_max bound the window (an event overlapping the window is included). single_events=true expands recurring events into individual instances — required for order_by=start_time and the right choice for questions like "what is on my calendar this week"; without it recurring events appear once as the series master. time_zone only changes how times are RENDERED in the response, never the events themselves. q searches summary/description/location/attendees. updated_min + show_deleted enable incremental polling (cancelled events come back as status=cancelled). Paginate with page_token from nextPageToken.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
qNoFree-text search over summary, description, location and attendees.
order_byNoSort order; start_time works only with single_events=true. Default is unspecified order.
time_maxNoOnly events starting before this RFC3339 moment (window upper bound, exclusive).
time_minNoOnly events ending at/after this RFC3339 moment (window lower bound).
time_zoneNoIANA zone the response times are rendered in (defaults to the calendar's zone).
page_tokenNonextPageToken from the previous page.
calendar_idYesThe calendar id from list_calendars, or "primary" for the authenticated user's main calendar.
event_typesNoOnly these event types (e.g. ["out_of_office"] to see OOO blocks).
max_resultsNoMax events per page (1..2500; API default 250).
updated_minNoOnly events modified after this RFC3339 moment — for incremental polling; too-old values return HTTP 410.
show_deletedNoInclude cancelled events (status=cancelled).
single_eventsNoExpand recurring events into instances (required for order_by=start_time).
Behavior5/5

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

Beyond the readOnly/idempotent annotations, it reveals important runtime behavior: all-day ends are exclusive, overlapping events are included, recurring masters appear once without single_events, time_zone never changes stored events, and cancellations surface as status=cancelled. This is exactly the non-obvious context annotations cannot express.

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 long but compressed: every sentence covers a distinct semantic point and none restate the schema verbatim. Front-loading the output fields and the core list operation keeps the most important facts first.

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?

For a 12-parameter read tool with no output schema, it explains the result fields, windowing, recurrence expansion, timezone rendering, search, incremental polling, and pagination. Nothing essential for correct invocation 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 coverage is 100%, but the description adds relational meaning: time_min/time_max define an inclusive-overlap window, single_events interacts with order_by, updated_min/show_deleted form a polling pair, and page_token comes from nextPageToken. These cross-parameter insights go well beyond the schema descriptions.

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?

The lead sentence 'Lists events on a calendar: id, summary, start/end...' names a specific verb, resource, and return fields, making it clear this is a bulk-read tool rather than single-event access. It does not explicitly name sibling tools like get_event or list_event_instances, so sibling differentiation is only implicit.

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?

The description gives concrete usage context: single_events=true is 'required for order_by=start_time and the right choice' for calendar-week questions, time_zone is only render-level, and updated_min+show_deleted enable incremental polling. It doesn't explicitly tell the agent when to pick list_events over list_event_instances or get_event, so it stops short of a full 5.

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

Install Server

Other Tools

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/A1-x-Tech/mcp-google-calendar'

If you have feedback or need assistance with the MCP directory API, please join our Discord server