Skip to main content
Glama

Change one detail of a personal event (hosts only)

event_change_detail
DestructiveIdempotent

To change an existing event's pass palette or color ("change the color to sage"): call this tool with field "color" or "palette". THE HOSTS' OWN EDIT of a wedding or other personal event. IT APPLIES THE CHANGE ON THIS CALL, one field per call, and the reply says the detail now and before: read both out. A time needs am or pm, or a 24 hour time that reads one way; a bare "4:30" is refused. For faq_answer, question adds the entry or replaces its answer. Every change is logged and can be read back; event_change_undo reverses the caller's own latest one. Only the hosts can change it; read refusals (NOT_A_HOST, BAD_TIME, NO_SUCH_PLACE, NO_SUCH_ENTRY, NO_CHANGE) out as given; it sends no message and it changes nothing else on the event; the event's Wallet passes are updated with the new detail as a lock-screen notice and the reply's passNotice says how many passes were reached. Needs a personal connector token. CARD LOOKS: field "card" with a card object sets how the event's card looks (look, accent, tabs, heightCapPx, intro) for every host, or for one cardHost; value is not needed for it. The organizer of a convention may use it for their own event, and the hosts for a personal event; an unknown setting or value is refused with the allowed set, and event_change_undo reverses it. QUIETLY: quiet true saves the change and updates the passes with no lock-screen notice (say it when the host says "quietly"); several edits in one turn send at most one notice. field "place_time" sets the Places-tab time of one session named by sessionId or entryTitle; a Places line that follows its session moves the session. A title or place that more than one answers to is refused with the candidates: ask which. LANGUAGE: field "language" with value a language code (en, es) sets the language guests see on the passes, the add page and notices; issued passes relabel quietly, with no alert, and the hosts' own text is untouched. COVER PHOTO: field "cover_photo" (any value, e.g. "add") answers with a one-time link to our upload page; give the host the link and its sentence. The photo goes from their phone to us, never through this chat. Call it again after they say done: the reply carries the pass preview with the photo. PALETTE: field "palette" with a palette name, or "color" with a color name or #rrggbb, changes the pass colors; the text color is chosen so it stays readable. Without confirm the reply is a preview: show it, and only on a yes call again with confirm true. Issued passes update quietly, with no alert. PARTY LINK: field "party_link" runs one shareable link for a personal event; anyone who taps it adds their own pass. value: on, pause, resume, status (the count and the latest adds), regenerate (the old link stops), revoke all, or settings like "cap 80, names on, one per phone off, expires 2026-11-15". GUEST CODE: field "guest_code" changes the code guests type to open a private event's page; value is the new code (4 to 32 letters and digits) or "new" for a fresh one. The old code stops working. Read the new code back to the host. SHARE PREVIEW: field "share_level" sets what a texted link to a personal event previews as. value: branded (cover photo, name, date), name_only (a card with the name and date), private ("A private event", nothing else), or status (what the link looks like now, with the image url). LOOK: field "page_template" picks the guest page template (summit, market, gala, garden), "pass_style" the Google pass style (A, C, D, E, F, G), and "title_font" the title face for the event page and the share card only (Bodoni Moda, Sofia Sans Extra Condensed, Fredoka, Jost, Caprasimo, or default for the template's own); the pass always uses the system font. value "status" answers the current look. EYEBROW: field "eyebrow" sets the short word the guest page prints over the event name instead of its kind (2 to 24 characters, for example "Live music"); value "none" goes back to the kind.

Input Schema

NameRequiredDescriptionDefault
cardNoFor card: the settings to change, each with its new value.
fieldYesWhich detail. The place fields take an optional `venueName`; schedule_time takes `entryTitle`; faq_answer takes `question`. card takes `card`. place_time takes `sessionId` or `entryTitle`. language takes a code in `value`. cover_photo answers with an upload link. palette takes a palette name, color a color name or #rrggbb. party_link takes a phrase in `value`. guest_code takes the new code or "new" in `value`. share_level takes a level or status in `value`. page_template, pass_style and title_font take the choice or status in `value`. eyebrow takes the words, or "none", in `value`.
quietNoOptional; true saves the change with no lock-screen notice.
valueNoThe new value, as the hosts say it: a time, a place, a sentence or an answer. No links or markup. Not used for card.
confirmNoFor palette or color: true applies the previewed change.
cardHostNoFor card: one host to change it for. Leave out for every host.
questionNoFor faq_answer: the question.
sessionIdNoFor place_time: the session id as the agenda gave it.
venueNameNoOptional venue name, for the place fields.
entryTitleNoFor schedule_time: the row title as spelled.
eventIdOrNameYesThe event id or the event name as the hosts spell it.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema fields changed
    • changedInput schema / properties / field / description
      Previous value: -"Which detail. The place fields take an optional `venueName`; schedule_time takes `entryTitle`; faq_answer takes `question`. card takes `card`. place_time takes `sessionId` or `entryTitle`. language takes a code in `value`. cover_photo answers with an upload link. palette takes a palette name, color a color name or #rrggbb. party_link takes a phrase in `value`. guest_code takes the new code or \"new\" in `value`. share_level takes a level or status in `value`."New value: +"Which detail. The place fields take an optional `venueName`; schedule_time takes `entryTitle`; faq_answer takes `question`. card takes `card`. place_time takes `sessionId` or `entryTitle`. language takes a code in `value`. cover_photo answers with an upload link. palette takes a palette name, color a color name or #rrggbb. party_link takes a phrase in `value`. guest_code takes the new code or \"new\" in `value`. share_level takes a level or status in `value`. page_template, pass_style and title_font take the choice or status in `value`. eyebrow takes the words, or \"none\", in `value`."
    • changedInput schema / properties / field / enum
      Previous value: -[
      -  "ceremony_time",
      -  "ceremony_place",
      -  "reception_time",
      -  "reception_place",
      -  "dress_code",
      -  "arrival_note",
      -  "schedule_time",
      -  "faq_answer",
      -  "card",
      -  "place_time",
      -  "language",
      -  "cover_photo",
      -  "palette",
      -  "color",
      -  "party_link",
      -  "guest_code",
      -  "share_level"
      -]New value: +[
      +  "ceremony_time",
      +  "ceremony_place",
      +  "reception_time",
      +  "reception_place",
      +  "dress_code",
      +  "arrival_note",
      +  "schedule_time",
      +  "faq_answer",
      +  "card",
      +  "place_time",
      +  "language",
      +  "cover_photo",
      +  "palette",
      +  "color",
      +  "party_link",
      +  "guest_code",
      +  "share_level",
      +  "page_template",
      +  "pass_style",
      +  "title_font",
      +  "eyebrow"
      +]
  2. Changed2 schema fields changed
    • changedInput schema / properties / field / description
      Previous value: -"Which detail. The place fields take an optional `venueName`; schedule_time takes `entryTitle`; faq_answer takes `question`. card takes `card`. place_time takes `sessionId` or `entryTitle`. language takes a code in `value`. cover_photo answers with an upload link. palette takes a palette name, color a color name or #rrggbb. party_link takes a phrase in `value`."New value: +"Which detail. The place fields take an optional `venueName`; schedule_time takes `entryTitle`; faq_answer takes `question`. card takes `card`. place_time takes `sessionId` or `entryTitle`. language takes a code in `value`. cover_photo answers with an upload link. palette takes a palette name, color a color name or #rrggbb. party_link takes a phrase in `value`. guest_code takes the new code or \"new\" in `value`. share_level takes a level or status in `value`."
    • changedInput schema / properties / field / enum
      Previous value: -[
      -  "ceremony_time",
      -  "ceremony_place",
      -  "reception_time",
      -  "reception_place",
      -  "dress_code",
      -  "arrival_note",
      -  "schedule_time",
      -  "faq_answer",
      -  "card",
      -  "place_time",
      -  "language",
      -  "cover_photo",
      -  "palette",
      -  "color",
      -  "party_link"
      -]New value: +[
      +  "ceremony_time",
      +  "ceremony_place",
      +  "reception_time",
      +  "reception_place",
      +  "dress_code",
      +  "arrival_note",
      +  "schedule_time",
      +  "faq_answer",
      +  "card",
      +  "place_time",
      +  "language",
      +  "cover_photo",
      +  "palette",
      +  "color",
      +  "party_link",
      +  "guest_code",
      +  "share_level"
      +]
  3. Changed3 schema fields changed
    • addedInput schema / properties / confirm
      Added value: +{
      +  "description": "For palette or color: true applies the previewed change.",
      +  "type": "boolean"
      +}
    • changedInput schema / properties / field / description
      Previous value: -"Which detail. The place fields take an optional `venueName`; schedule_time takes `entryTitle`; faq_answer takes `question`. card takes `card`. place_time takes `sessionId` or `entryTitle`. language takes a code in `value`. cover_photo answers with an upload link."New value: +"Which detail. The place fields take an optional `venueName`; schedule_time takes `entryTitle`; faq_answer takes `question`. card takes `card`. place_time takes `sessionId` or `entryTitle`. language takes a code in `value`. cover_photo answers with an upload link. palette takes a palette name, color a color name or #rrggbb. party_link takes a phrase in `value`."
    • changedInput schema / properties / field / enum
      Previous value: -[
      -  "ceremony_time",
      -  "ceremony_place",
      -  "reception_time",
      -  "reception_place",
      -  "dress_code",
      -  "arrival_note",
      -  "schedule_time",
      -  "faq_answer",
      -  "card",
      -  "place_time",
      -  "language",
      -  "cover_photo"
      -]New value: +[
      +  "ceremony_time",
      +  "ceremony_place",
      +  "reception_time",
      +  "reception_place",
      +  "dress_code",
      +  "arrival_note",
      +  "schedule_time",
      +  "faq_answer",
      +  "card",
      +  "place_time",
      +  "language",
      +  "cover_photo",
      +  "palette",
      +  "color",
      +  "party_link"
      +]
  4. Changed2 schema fields changed
    • changedInput schema / properties / field / description
      Previous value: -"Which detail. The place fields take an optional `venueName`; schedule_time takes `entryTitle`; faq_answer takes `question`. card takes `card`. place_time takes `sessionId` or `entryTitle`."New value: +"Which detail. The place fields take an optional `venueName`; schedule_time takes `entryTitle`; faq_answer takes `question`. card takes `card`. place_time takes `sessionId` or `entryTitle`. language takes a code in `value`. cover_photo answers with an upload link."
    • changedInput schema / properties / field / enum
      Previous value: -[
      -  "ceremony_time",
      -  "ceremony_place",
      -  "reception_time",
      -  "reception_place",
      -  "dress_code",
      -  "arrival_note",
      -  "schedule_time",
      -  "faq_answer",
      -  "card",
      -  "place_time"
      -]New value: +[
      +  "ceremony_time",
      +  "ceremony_place",
      +  "reception_time",
      +  "reception_place",
      +  "dress_code",
      +  "arrival_note",
      +  "schedule_time",
      +  "faq_answer",
      +  "card",
      +  "place_time",
      +  "language",
      +  "cover_photo"
      +]
  5. Changed8 schema fields changed
    • addedInput schema / properties / card
      Added value: +{
      +  "additionalProperties": {},
      +  "description": "For card: the settings to change, each with its new value.",
      +  "properties": {
      +    "accent": {
      +      "anyOf": [
      +        {
      +          "type": "string"
      +        },
      +        {
      +          "type": "number"
      +        },
      +        {
      +          "type": "boolean"
      +        },
      +        {
      +          "type": "null"
      +        },
      +        {
      +          "items": {
      +            "type": "string"
      +          },
      +          "type": "array"
      +        }
      +      ],
      +      "description": "a colour as #rrggbb, or null for the brand colour."
      +    },
      +    "heightCapPx": {
      +      "anyOf": [
      +        {
      +          "type": "string"
      +        },
      +        {
      +          "type": "number"
      +        },
      +        {
      +          "type": "boolean"
      +        },
      +        {
      +          "type": "null"
      +        },
      +        {
      +          "items": {
      +            "type": "string"
      +          },
      +          "type": "array"
      +        }
      +      ],
      +      "description": "a whole number of pixels from 480 to 2400, or null for the height of the content (floor card only)."
      +    },
      +    "intro": {
      +      "anyOf": [
      +        {
      +          "type": "string"
      +        },
      +        {
      +          "type": "number"
      +        },
      +        {
      +          "type": "boolean"
      +        },
      +        {
      +          "type": "null"
      +        },
      +        {
      +          "items": {
      +            "type": "string"
      +          },
      +          "type": "array"
      +        }
      +      ],
      +      "description": "on, off (floor card only)."
      +    },
      +    "look": {
      +      "anyOf": [
      +        {
      +          "type": "string"
      +        },
      +        {
      +          "type": "number"
      +        },
      +        {
      +          "type": "boolean"
      +        },
      +        {
      +          "type": "null"
      +        },
      +        {
      +          "items": {
      +            "type": "string"
      +          },
      +          "type": "array"
      +        }
      +      ],
      +      "description": "classic, bold, quiet."
      +    },
      +    "tabs": {
      +      "anyOf": [
      +        {
      +          "type": "string"
      +        },
      +        {
      +          "type": "number"
      +        },
      +        {
      +          "type": "boolean"
      +        },
      +        {
      +          "type": "null"
      +        },
      +        {
      +          "items": {
      +            "type": "string"
      +          },
      +          "type": "array"
      +        }
      +      ],
      +      "description": "one or more of directory, agenda, offers, in the order to show them, each once (floor card only)."
      +    }
      +  },
      +  "type": "object"
      +}
    • addedInput schema / properties / cardHost
      Added value: +{
      +  "description": "For card: one host to change it for. Leave out for every host.",
      +  "enum": [
      +    "default",
      +    "claude",
      +    "chatgpt",
      +    "claude_desktop",
      +    "inspector",
      +    "other",
      +    "standalone",
      +    "web"
      +  ],
      +  "type": "string"
      +}
    • changedInput schema / properties / field / description
      Previous value: -"Which detail. The place fields take an optional `venueName`; schedule_time takes `entryTitle`; faq_answer takes `question`."New value: +"Which detail. The place fields take an optional `venueName`; schedule_time takes `entryTitle`; faq_answer takes `question`. card takes `card`. place_time takes `sessionId` or `entryTitle`."
    • changedInput schema / properties / field / enum
      Previous value: -[
      -  "ceremony_time",
      -  "ceremony_place",
      -  "reception_time",
      -  "reception_place",
      -  "dress_code",
      -  "arrival_note",
      -  "schedule_time",
      -  "faq_answer"
      -]New value: +[
      +  "ceremony_time",
      +  "ceremony_place",
      +  "reception_time",
      +  "reception_place",
      +  "dress_code",
      +  "arrival_note",
      +  "schedule_time",
      +  "faq_answer",
      +  "card",
      +  "place_time"
      +]
    • addedInput schema / properties / quiet
      Added value: +{
      +  "description": "Optional; true saves the change with no lock-screen notice.",
      +  "type": "boolean"
      +}
    • addedInput schema / properties / sessionId
      Added value: +{
      +  "description": "For place_time: the session id as the agenda gave it.",
      +  "maxLength": 128,
      +  "type": "string"
      +}
    • changedInput schema / properties / value / description
      Previous value: -"The new value, as the hosts say it: a time, a place, a sentence or an answer. No links or markup."New value: +"The new value, as the hosts say it: a time, a place, a sentence or an answer. No links or markup. Not used for card."
    • changedInput schema / required
      Previous value: -[
      -  "eventIdOrName",
      -  "field",
      -  "value"
      -]New value: +[
      +  "eventIdOrName",
      +  "field"
      +]
  6. Changed4 schema fields changed
    • changedInput schema / properties / field / description
      Previous value: -"ceremony_time, reception_time, ceremony_place, reception_place, dress_code, arrival_note, schedule_time or faq_answer; required unless `undo`."New value: +"Which detail. The place fields take an optional `venueName`; schedule_time takes `entryTitle`; faq_answer takes `question`."
    • removedInput schema / properties / undo
      Removed value: -{
      -  "description": "Optional; true reverses the caller's own last change.",
      -  "type": "boolean"
      -}
    • changedInput schema / properties / value / description
      Previous value: -"The new value, as the hosts say it. No links or markup."New value: +"The new value, as the hosts say it: a time, a place, a sentence or an answer. No links or markup."
    • changedInput schema / required
      Previous value: -[
      -  "eventIdOrName"
      -]New value: +[
      +  "eventIdOrName",
      +  "field",
      +  "value"
      +]
  7. Changed7 schema fields changed
    • changedInput schema / properties / entryTitle / description
      Previous value: -"REQUIRED for schedule_time: the TITLE of the schedule entry to move, exactly as a schedule row spells it. If two entries answer to it the reply is NO_SUCH_ENTRY and nothing moves, and you ask which one they mean rather than choosing."New value: +"For schedule_time: the row title as spelled."
    • changedInput schema / properties / eventIdOrName / description
      Previous value: -"REQUIRED. The event id (test_wedding_a_garden) or the event NAME as the hosts spell it (\"Susie and John\")."New value: +"The event id or the event name as the hosts spell it."
    • changedInput schema / properties / field / description
      Previous value: -"WHICH detail to change, one of the named values and nothing else. Required unless `undo` is true. ceremony_time and reception_time take a clock time; ceremony_place and reception_place take the place label in `value` and optionally a venue name in `venueName`; dress_code and arrival_note take a sentence; schedule_time takes a clock time plus `entryTitle`; faq_answer takes an answer plus `question`."New value: +"ceremony_time, reception_time, ceremony_place, reception_place, dress_code, arrival_note, schedule_time or faq_answer; required unless `undo`."
    • changedInput schema / properties / question / description
      Previous value: -"REQUIRED for faq_answer: the question being answered. An exact existing question replaces that answer; a new one is added."New value: +"For faq_answer: the question."
    • changedInput schema / properties / undo / description
      Previous value: -"OPTIONAL. True reverses the CALLER'S OWN most recent change on this event, through the same validation and into the same log. It cannot reverse somebody else's change, cannot reverse an undo, and cannot reverse the same change twice."New value: +"Optional; true reverses the caller's own last change."
    • changedInput schema / properties / value / description
      Previous value: -"The NEW value, as the hosts would say it. A clock time for the time fields, the place label for the place fields, one sentence for dress_code and arrival_note, the answer for faq_answer. No links and no markup: both are refused. Required unless `undo` is true."New value: +"The new value, as the hosts say it. No links or markup."
    • changedInput schema / properties / venueName / description
      Previous value: -"OPTIONAL, and only for ceremony_place and reception_place: the name of the venue, when the hosts named one. Left out, the venue already stored is kept rather than cleared."New value: +"Optional venue name, for the place fields."
  8. Added

TDQS

A4.5/5.0
Behavior5/5

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

Adds far more than the annotations: it applies immediately on this call, every change is logged and reversible by the caller's own latest undo, nothing else on the event changes, no message is sent, Wallet passes update with a lock-screen notice whose count appears in `passNotice`, and host-only auth plus a personal connector token are required. It also names the exact refusal codes (NOT_A_HOST, BAD_TIME, NO_SUCH_PLACE, NO_SUCH_ENTRY, NO_CHANGE) — consistent with destructiveHint=true since guest_code invalidates the old code.

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

Conciseness3/5

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

Core rule and warning ('IT APPLIES THE CHANGE ON THIS CALL, one `field` per call') are front-loaded, and the ALL-CAPS section labels help navigation. But the block is a very long run-on that interleaves general rules with per-field detail, orders the labeled sections haphazardly (QUIETLY and LANGUAGE before the things they qualify), and repeats itself (quiet pass updates appear twice). Given 21 enum values some length is warranted, but tighter grouping would serve better.

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?

For an 11-parameter tool with no output schema, the description covers what an agent needs: what the reply contains (before/after values, `passNotice`, upload link, candidate lists for ambiguous titles/places), failure modes, auth requirements, and the undo path. Nothing material is left for the agent to guess before calling.

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 earns more by mapping which auxiliary parameters each `field` consumes (`venueName`, `entryTitle`, `sessionId`, `question`, `cardHost`) and by adding format rules absent from the schema: times need am/pm or unambiguous 24-hour form, guest codes 4–32 letters and digits, eyebrow 2–24 characters. The `card` sub-object is only lightly touched ('look, accent, tabs, heightCapPx, intro'), leaving the individual setting semantics to 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?

States a specific verb, resource and scope: 'Change one detail of a personal event (hosts only)', one `field` per call. The enumerated field list and the explicit pointer to `event_change_undo` for reversal let an agent distinguish this from siblings such as `event_session_move` or `event_pass_reissue` without opening another schema.

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?

Rich per-variant guidance: palette/color needs a preview then `confirm` true, cover_photo returns a one-time upload link and must be re-called, `quiet` when the host says 'quietly', refusal codes to read out verbatim. However it never routes the agent between this tool and overlapping siblings like `event_session_move`, `event_session_rename`, `event_pass_reissue` or `events_personal_card`, so the boundary is inferred rather than stated.

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