Skip to main content
Glama

events

Read-only

List calendar appointments as pointers for today, a week, or a specific date, returning calendar IDs for free/busy checks or filtering; read-only and requires Calendar access.

Instructions

List calendar events as pointers. when: today | week | YYYY-MM-DD. Each result's folder is its calendar's id (from calendars); pass it to free_busy(calendars=…) or as calendar=. A read cannot tell that a series' first occurrence is extra (each result holds its own occurrence start); the create/update result says so. Read-only; needs EventKit (Calendar) access.

Input Schema

NameRequiredDescriptionDefault
whenNotoday

Output Schema

NameRequiredDescriptionDefault
resultYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.15.1

TDQS

A4/5.0
Behavior4/5

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

Annotations already mark it read-only, yet the description still adds real context: EventKit (Calendar) permission is required, results are pointers rather than full records, and each result carries its own occurrence start so a series' extra first occurrence is invisible to reads. That last caveat about a known limitation is exactly the kind of behavior an agent cannot infer from structured fields.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Four short sentences, each earning its place, front-loaded with the core action before the chaining and caveat details. The parenthetical about occurrence starts is dense but necessary and kept short.

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?

With an output schema present, return values needn't be enumerated, and the description correctly focuses on the pointer shape and `folder` semantics that matter for chaining. Permission requirements and the read-versus-create asymmetry caveat round it out; only explicit non-use guidance is missing.

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 description coverage is 0%, so the description carries the burden and does: `when` accepts today | week | YYYY-MM-DD, which is effectively an enum the schema lacks. The `folder` output field is also explained for chaining purposes, though the default value is left to the schema.

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?

"List calendar events as pointers" gives a clear verb and resource, and the surrounding sibling set (create_event, update_event, delete_event) makes the read-only listing role obvious. "As pointers" is slightly cryptic on its own but is unpacked in the following sentence about the `folder` field.

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 wires the tool into the workflow explicitly: pass each result's `folder` to `free_busy(calendars=…)` or as `calendar=`, which tells the agent when this tool is the prerequisite for others. It does not state exclusions (e.g., use `free_busy` instead when you only need availability), so it stops short of a full when/when-not pair.

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