Skip to main content
Glama

ical_list_events

Retrieve calendar events from a subscribed iCal feed for a specified time range, with recurring events expanded and overrides applied. Use a feed alias to list occurrences without fetching arbitrary URLs.

Instructions

Read events from one subscribed iCal feed within a time range. Recurring rules are expanded into individual occurrences, and overrides of single occurrences are applied. Read-only: an .ics feed cannot be written to. Takes a feed alias from accounts.json, never a URL — so nothing read from a page or a message can make this server fetch an arbitrary host.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
feedYesFeed alias from accounts.json, as listed by ical_list_feeds.
timeMaxYesRFC3339 upper bound, e.g. 2026-08-24T00:00:00Z.
timeMinYesRFC3339 lower bound, e.g. 2026-08-17T00:00:00Z.
maxResultsNoDefaults to 100.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A4.4/5.0
Behavior5/5

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

With no annotations, the description carries the full behavioral burden. It discloses that the tool is read-only ('an .ics feed cannot be written to'), explains that recurring rules are expanded into individual occurrences and overrides are applied, and adds a security note about not fetching arbitrary hosts. These are meaningful behavioral details beyond the basic action.

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 three sentences long, with no filler. It front-loads the core purpose, then adds behavioral and security context. Every sentence contributes new information.

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?

The description covers the tool's core behavior, security constraints, and expansion logic. However, it does not describe the return format or any pagination details, and since there is no output schema, an agent might wonder about the exact structure of the returned events. Given the read-only nature and clear parameters, this is a minor gap.

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 100%, so the baseline is 3. The description adds extra semantic value by explicitly stating that the feed parameter must be an alias from accounts.json and never a URL, which is a security constraint not fully expressed in the schema. Other parameters are adequately covered by the schema itself.

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 and resource: 'Read events from one subscribed iCal feed within a time range.' It clearly distinguishes this tool from sibling calendar tools by focusing on iCal feeds and explicitly notes it does not accept URLs, which differentiates it from potential alternative fetch tools.

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?

The description gives clear context about what it does (reads events from a specific iCal feed) and states a security constraint (never accepts a URL), but it does not explicitly mention when to use this tool over alternatives like ical_list_feeds or calendar_list_events. No exclusions or alternative routing are provided.

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