Skip to main content
Glama

Change a reminder

update_alarm
DestructiveIdempotent

Change a reminder (or the texts, location, colour, icon or sound of a notification). Pass only the fields to change. Setting fire_at re-arms the reminder (status becomes scheduled), even if it was done or cancelled, and moves ends_at with it. color / icon / location: another one, or null for the default. sound (ringing alerts only): another sound, or null to go back to the user's default sound. ends_at: null removes the end. countdown: true or false.

Input Schema

NameRequiredDescriptionDefault
idYesAlarm id from list_alarms.
bodyNoOptional details. Supports line breaks and URLs: line breaks are kept, and links, phone numbers and addresses can be tapped in the app.
iconNoOptional. The icon shown with it in the app, the Live Activity and the widget. Pick the one that fits, or omit it for the default (bell). Icons: bell: anything else (the default); checkmark.circle: a task, job or build finished; exclamationmark.triangle: an error, incident, failure or outage; calendar: a meeting, appointment, deadline or event; sportscourt: sport: a match, a game, a workout; gift: a birthday, anniversary or holiday; cart: shopping, orders, deliveries, prices; airplane: travel: flights, trips, check-in; heart: health and personal life: medication, family, self-care; briefcase: work: reviews, follow-ups, documents, clients.
typeNo
colorNoOptional. The colour in the app (its icon in the feed and the list, the alarm screen and the Live Activity). Use the colour the user asks for. Otherwise pick the one that fits best, or omit it for the default (blue). Colours: blue: everything else (the default); red: critical: incidents, outages, failures, hard deadlines; orange: important or due soon: reviews, renewals, follow-ups; green: personal and health: sport, medication, family errands, money; purple: events and fun: meetings, birthdays, trips, matches.
soundNoOptional. The sound it rings with: only when it rings (urgent, ring: true); a quiet one is a notification with the sound from the app's Settings. Use the sound the user asks for. Otherwise omit it for the user's chosen default sound (picked in the app's Settings), or pick one when the context clearly suggests it: a football match -> stadium, something that must wake the user -> loudalarm or urgentpulse, a gentle nudge -> calmpiano or softbells. Sounds, calm to loud: default: the iPhone's standard system alarm sound, familiar; calmpiano: calm soft piano, gentle: quiet nudges, evenings; softbells: soft bells, gentle and quiet: a reminder that must not startle; sunrise: slowly rising warm tones: a gentle wake-up in the morning; chime: a clear short chime, neutral: everyday reminders; brightmarimba: bright cheerful marimba, the classic phone alarm feel: a normal alarm; upbeatpop: upbeat pop melody, energetic and happy: workouts, fun plans; urgentpulse: fast insistent pulsing beeps, hard to ignore: something urgent, incidents; loudalarm: very loud aggressive alarm that wakes you up: must not be slept through; stadium: football stadium fans chanting with drums and air horns: matches, sports events.
titleNo
ends_atNoReminders only: the new end (ISO 8601, after fire_at), or null for none.
fire_atNoNew time, ISO 8601 with offset (reminders only).
locationNoOptional. An address or place; the app offers to open it in Maps. One line.
countdownNoReminders only: show a countdown to fire_at, or not.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A3.8/5.0
Behavior4/5

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

The description discloses a non-obvious state transition the annotations cannot express: setting fire_at re-arms the reminder even if it was done or cancelled, and moves ends_at with it. That is exactly the kind of side effect an agent needs. It does not cover permissions or the response shape, but with destructiveHint/idempotentHint already declared, this is solid added context.

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?

One dense paragraph that front-loads purpose and then walks each special field in a predictable order, with no filler sentences. The opening parenthetical is the only awkward part — it reads as a clarification of alarm vs notification but adds little for an agent that has the schema.

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?

For an 11-parameter destructive mutation with strong schema coverage and no output schema, the description covers the risky part (re-arming a completed/cancelled reminder) and the null-reset semantics for every optional field. It stops short of describing the returned object, which is a minor gap given there is no output schema to lean on.

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 already 82%, so the baseline would be 3; the description earns an extra point by spelling out null semantics the schema leaves implicit — null color/icon/location reverts to the default, null sound returns to the user's default sound, null ends_at removes the end. It also restates the reminders-only constraint for fire_at and ends_at, keeping the enum-heavy fields interpretable without opening 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 ('Change') and resource ('a reminder'), and enumerates the mutable facets (texts, location, colour, icon, sound, plus the title/body fields). An agent can tell it apart from create_alarm, cancel_alarm and list_alarms, though the parenthetical about 'a notification' is slightly muddling and no sibling is named explicitly.

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?

'Pass only the fields to change' is a genuinely useful partial-update rule, and the fire_at note implies when this tool's re-arm behavior matters. But there is no explicit when-to-use vs create_alarm/cancel_alarm/rename_agent guidance, so routing must be inferred from the tool name.

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