Skip to main content
Glama
Date Math – Business Days, Holidays & Time Zones

Date Math – Business Days, Holidays & Time Zones

Expand recurring events (RRULE)

recurring_dates
Read-onlyIdempotent

Expand iCalendar RRULEs or recurring events into concrete dates and times in a chosen time zone, DST-aware, with optional excluded dates for meetings and schedules.

Instructions

Expand a recurring event or iCalendar RRULE ("every 2nd Tuesday", "Mon/Wed until June") into concrete dates and times in a time zone, DST-aware, with optional excluded dates. Use for repeating meetings, calendar invites and schedules. First 25 calls per day are free, then $0.001 per call (x402).

Input Schema

NameRequiredDescriptionDefault
countNoDefault 10
rruleYesiCalendar RRULE (no DTSTART/TZID inside)
startYesLocal start date or datetime in timezone, e.g. 2026-01-01T10:00
excludeNoLocal dates (YYYY-MM-DD) to skip
timezoneNoDefault UTC

Output Schema

NameRequiredDescriptionDefault
countYes
rruleYes
startNo
timezoneYes
descriptionNo
occurrencesYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A3.7/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint and closed-world, so the safety profile is covered. The description adds genuinely useful context beyond that: DST-aware expansion, support for excluded dates, and a concrete pricing/rate-limit ceiling (25 free calls/day, then $0.001 via x402) that an agent should factor into repeated invocation.

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?

Two sentences, core capability front-loaded, with examples and usage in the first sentence and commercial terms last. No filler, though the pricing clause is somewhat tangential to correct invocation.

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?

Output schema exists, so return-value shape needn't be explained, and all parameters are covered by schema descriptions. The description supplies the missing behavioral layer — DST handling, exclusions, and cost — leaving only sibling routing to cron_schedule unaddressed.

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 coverage is 100%, so all five parameters, including defaults for count/timezone and the exclude format, are already documented in structured fields. The description adds only the DST-aware behavior and the notion of excluded dates, which is marginal on top of 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?

States a specific verb and resource — 'Expand a recurring event or iCalendar RRULE ... into concrete dates and times' — and the parenthetical examples ('every 2nd Tuesday', 'Mon/Wed until June') make the input/output relation unambiguous. It stops short of naming how it differs from the closest sibling, cron_schedule, which is a plausible confusion point.

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?

'Use for repeating meetings, calendar invites and schedules' gives a usage context but no exclusions or explicit alternatives. An agent facing a cron expression has no signal in the description telling it to prefer cron_schedule over this tool.

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