Skip to main content
Glama

list_calendar_events

Read-only

List one-off calendar events with their title, times, location and notes. Bound them with startDateFrom and startDateTo, or omit both for everything. An all-day event's end depends on its sourceEntityType. With no source, endDateTime is its LAST day (inclusive), or null for a single day. For 'deviceCalendar' and 'calendarSubscription' it is the day AFTER the last day (exclusive). For 'RecurringCalendarEvent' the event covers endDateTime minus startDateTime in whole days, rounded up (a single day when null). Read a 00:00Z value as its UTC date; read any other all-day value in the event's timezone when it has one.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
startDateToNoRange end, ISO 8601 UTC. Matches events starting at or before this.
startDateFromNoRange start, ISO 8601 UTC. Matches events ending, or starting if undated, at or after this.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
itemsYes
titleNo
messageNo
variantNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema fields changed
    • changedInput schema / properties / startDateFrom / description
      Previous value: -"Inclusive lower bound of the date range, ISO 8601 date-time in UTC. An event matches if it ends (or, when it has no end, starts) on or after this instant. Omit for no lower bound."New value: +"Range start, ISO 8601 UTC. Matches events ending, or starting if undated, at or after this."
    • changedInput schema / properties / startDateTo / description
      Previous value: -"Inclusive upper bound of the date range, ISO 8601 date-time in UTC. An event matches if it starts on or before this instant. Omit for no upper bound."New value: +"Range end, ISO 8601 UTC. Matches events starting at or before this."
  2. Changed5 schema fields changed
    • addedInput schema / examples
      Added value: +[
      +  {
      +    "startDateFrom": "2026-07-01T00:00:00Z",
      +    "startDateTo": "2026-07-31T23:59:59Z"
      +  }
      +]
    • changedInput schema / properties / startDateFrom / description
      Previous value: -"UTC date range bound (ISO 8601 date-time)"New value: +"Inclusive lower bound of the date range, ISO 8601 date-time in UTC. An event matches if it ends (or, when it has no end, starts) on or after this instant. Omit for no lower bound."
    • addedInput schema / properties / startDateFrom / examples
      Added value: +[
      +  "2026-07-01T00:00:00Z"
      +]
    • changedInput schema / properties / startDateTo / description
      Previous value: -"UTC date range bound (ISO 8601 date-time)"New value: +"Inclusive upper bound of the date range, ISO 8601 date-time in UTC. An event matches if it starts on or before this instant. Omit for no upper bound."
    • addedInput schema / properties / startDateTo / examples
      Added value: +[
      +  "2026-07-31T23:59:59Z"
      +]
  3. First observed

TDQS

A4.3/5.0
Behavior5/5

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

Even though readOnlyHint=true and destructiveHint=false already establish the safety profile, the description goes well beyond that by disclosing the nuanced all-day event endDateTime semantics per sourceEntityType and the timezone-dependent reading of all-day values. This is precisely the kind of behavioral detail an agent needs.

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 front-loaded with the main purpose, then moves into necessary edge cases. Every sentence conveys a distinct and useful fact; nothing feels padded or redundant. The complexity justifies its length.

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 the output schema already covers return structure, the description fills the remaining gaps: range semantics, all-day boundary handling, source-specific behavior, and timezone interpretation. An agent has enough to call the tool correctly even for edge cases.

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 description coverage is 100% for both parameters, so the schema already documents their ISO 8601 UTC format and matching behavior. The description adds the useful 'omit both for everything' rule and references the parameter names, but does not significantly deepen parameter-level semantics beyond the 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 verb-resource pair ('List one-off calendar events') and the fields returned (title, times, location, notes). It distinguishes itself from create/update/delete calendar tools and explicitly scopes to one-off events rather than recurring ones.

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

Usage Guidelines3/5

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

It provides clear operational guidance on using startDateFrom and startDateTo or omitting both, but does not explicitly state when to choose this tool over another sibling or when not to use it. The usage context is implied rather than stated as a decision rule.

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