Skip to main content
Glama

Create a new event as a draft (organizers)

event_create
Idempotent

Creates a new event for the signed-in person, as the organizer dashboard's New event does: name, kind, dateStart, optional dateEnd (at most 14 days), venue and city. It is saved as a DRAFT nobody can find until published, and the creator is its organizer. FIRST CALL WITHOUT confirm returns a PREVIEW with a confirmToken and saves nothing; only when the person says yes, call again with the same arguments, confirm: true and that token. NAME_TAKEN comes with a free suggestion for webAddress. Refusals are read out as given. It requires a personal connector token. Optional startTime, endTime (one day) and color show in the preview. Write the product name in full: Sonar Connections. Optional hostedBy is a display line, not a co-host.

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "name": "<name>",
      "dateStart": "<dateStart>"
    },
    "name": "event_create"
  }
}

Input Schema

NameRequiredDescriptionDefault
cityNoOptional city.
kindNo"private event" for any party or gathering that is not a wedding or birthday; else birthday, wedding, conference, market and so on. Never ask the person to pick from a list.
nameYesThe event name as it should show.
rsvpNoWith templateId: false leaves RSVP off.
timeNoWith templateId: the start time, HH:MM, 24 hour, local.
colorNoPass color, #rrggbb or a name.
songsNoWith templateId: song requests on or off.
venueNoOptional venue name.
confirmNoAbsent on the first call, which saves nothing; true with confirmToken saves.
dateEndNoOptional last day, YYYY-MM-DD.
endTimeNoLike "11:30 PM".
privateNoTrue for a private event.
hostedByNoDisplay line "Hosted by ...". Not a co-host.
languageNoWith templateId: the language of the guests' system text.
dateStartYesFirst day, YYYY-MM-DD, today or later.
paletteIdNoWith templateId: one of its palette ids. For the new draft only; an existing event's colors change through event_change_detail.
startTimeNoLike "8:00 PM".
templateIdNoOptional; a template id from the dashboard (birthday_party, quince_classic, baby_shower_soft, wedding_gallery).
webAddressNoOptional address after sonarconnections.com/event/.
customColorNoOptional #rrggbb; a hard to read color is refused with the closest readable shade. For the new draft only; an existing event's colors change through event_change_detail.
confirmTokenNoThe token the first call returned.

Output Schema

NameRequiredDescriptionDefault
okNo
codeNo
errorNo
kindsNo
addressNo
createdNo
eventIdNo
messageNo
previewNo
servedByNo
suggestionNo
confirmTokenNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed7 schema fields changed
    • addedInput schema / properties / color
      Added value: +{
      +  "description": "Pass color, #rrggbb or a name.",
      +  "maxLength": 40,
      +  "type": "string"
      +}
    • addedInput schema / properties / endTime
      Added value: +{
      +  "description": "Like \"11:30 PM\".",
      +  "maxLength": 10,
      +  "type": "string"
      +}
    • addedInput schema / properties / hostedBy
      Added value: +{
      +  "description": "Display line \"Hosted by ...\". Not a co-host.",
      +  "maxLength": 80,
      +  "type": "string"
      +}
    • changedInput schema / properties / kind / description
      Previous value: -"convention, conference, expo, market, night market, street fair, wedding, birthday or backyard."New value: +"\"private event\" for any party or gathering that is not a wedding or birthday; else birthday, wedding, conference, market and so on. Never ask the person to pick from a list."
    • addedInput schema / properties / private
      Added value: +{
      +  "description": "True for a private event.",
      +  "type": "boolean"
      +}
    • addedInput schema / properties / startTime
      Added value: +{
      +  "description": "Like \"8:00 PM\".",
      +  "maxLength": 10,
      +  "type": "string"
      +}
    • changedInput schema / required
      Previous value: -[
      -  "name",
      -  "kind",
      -  "dateStart"
      -]New value: +[
      +  "name",
      +  "dateStart"
      +]
  2. Added

TDQS

A4.6/5.0
Behavior4/5

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

Goes well beyond the annotations: the annotations only say non-read-only, non-destructive, idempotent, while the description discloses that the record is an unfindable DRAFT until published, that the creator becomes organizer, that the first call persists nothing, and that the tool requires a personal connector token. The remaining gap is the template mechanism (templateId plus its dependent rsvp/time/songs/language/paletteId flags), which materially changes behavior and is never mentioned in prose.

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 but front-loaded paragraph: purpose, then data shape, then the confirm protocol, then failure handling, then prerequisites. A few sentences are agent-directed instructions rather than behavioral description ("Refusals are read out as given", "Write the product name in full: Sonar Connections"), which add length without clarifying invocation, but nothing is redundant.

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 a 21-parameter, output-schema-backed creation tool, the description covers the highest-risk aspects an agent needs: draft visibility, the confirmation handshake, token requirement, and the NAME_TAKEN recovery path. Parameter-level detail is delegated correctly to a 100%-covered schema, so the prose does not need to restate field formats.

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 100%, so the baseline is 3; the description earns an extra point by adding constraints absent from the schema, notably the 14-day cap on `dateEnd` and the one-day limit tying `startTime`/`endTime`, plus the note that these fields surface in the preview. It does not explain how `templateId` interacts with the several parameters the schema marks "With templateId".

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?

Opens with a specific verb+resource ("Creates a new event") and immediately narrows scope: it belongs to the signed-in person as organizer and is saved as a DRAFT, which separates it from publish/edit siblings like event_publish and event_change_detail. The enumeration of the core fields (name, kind, dateStart, dateEnd, venue, city) lets an agent confirm it is the right tool without opening the schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives an explicit two-step protocol: first call without `confirm` saves nothing and returns a preview plus `confirmToken`; the second call repeats the same arguments with `confirm: true` and the token, only after the person agrees. It also routes edge cases (NAME_TAKEN with a `suggestion` for webAddress) and names the prerequisite (personal connector token), leaving little to inference.

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