Skip to main content
Glama

Event as what you run (draft or publish)

create_event

An event for something they run: sign-ups, waitlist, reminders. Free, in a public place, never at someone's home. Only when they ask. A draft they publish unless their AI runs the place or this app may publish there; never directly where under-18s can see it. A meetup with friends: create_plan.

Input Schema

NameRequiredDescriptionDefault
asNoWhich of what they run to act as: its name, e.g. "Löparklubben", or a key from list_identities. Left out when only one fits.
howNoWith where hunchful: text (default), voice or video (never where under-18s can see it).
linkNoWith where external: an https link (never a hunchful.io link).
modeNo"draft" always makes a card. Default: publish where allowed, else a card.
textNoA few words about it (≤ 1000 characters).
kanalNoA members' calendar event for one #kanal (e.g. "#styrelsen"); default #allmänt.
levelNoinside (default, its members), followers (also its page and Explore) or everyone (also hunchful.io and Google; a public place only).
placeNoWhere on site (needed unless `where` is hunchful or external).
titleYes3–80 characters, e.g. "Höstloppet 5 km".
whereNoA place's event: onsite (default, `place`), hunchful (a temporary #kanal around it) or external (a `link`).
endsAtNoOptional, same format, within 12 hours of the start.
repeatNoA members' calendar event that repeats, e.g. {"every": 1, "until": "2026-12-15"} (implies calendar members).
calendarNo"members": the place's own calendar. "page" (default when it has one): its public page, with sign-ups.
capacityNoHow many may sign up (default 20).
startsAtYesISO 8601 with the person's UTC offset, at least an hour ahead and within 6 months, e.g. 2026-10-18T10:00:00+02:00.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed11 schema fields changed
    • removedInput schema / $schema
      Removed value: -"http://json-schema.org/draft-07/schema#"
    • removedInput schema / additionalProperties
      Removed value: -false
    • changedInput schema / properties / as / description
      Previous value: -"Which of what the person runs to act as — a key from list_personas, e.g. \"forening:a1b2c3d4e5\" or \"channel:Xy12Ab34Cd\", or its name, e.g. \"Löparklubben\". May be left out when only one fits."New value: +"Which of what they run to act as: its name, e.g. \"Löparklubben\", or a key from list_identities. Left out when only one fits."
    • changedInput schema / properties / calendar / description
      Previous value: -"A förening's, company's or community's: \"members\" puts it on the place's own calendar (Händer — its members see it, with repeats and a #kanal); \"page\" (default when it has one) is its public page's event with sign-ups."New value: +"\"members\": the place's own calendar. \"page\" (default when it has one): its public page, with sign-ups."
    • changedInput schema / properties / how / description
      Previous value: -"With where hunchful: text (default), voice or video — a room the host starts from the #kanal. Voice and video only where nobody under 18 can see it."New value: +"With where hunchful: text (default), voice or video (never where under-18s can see it)."
    • changedInput schema / properties / level / description
      Previous value: -"Who sees it: inside (default — the #kanal's members), followers (also the place's page in the app and Explore), everyone (also hunchful.io and Google). Followers and everyone: the admins and the page's team, a public place only. A video event shown outside by the page's owner also becomes the page's scheduled live."New value: +"inside (default, its members), followers (also its page and Explore) or everyone (also hunchful.io and Google; a public place only)."
    • changedInput schema / properties / mode / description
      Previous value: -"\"publish\" (default) publishes now only if the person turned on \"May publish directly\" for your app AND no one under 18 can see it — else it's a draft; \"draft\" always makes a draft they publish with one tap."New value: +"\"draft\" always makes a card. Default: publish where allowed, else a card."
    • removedInput schema / properties / place / additionalProperties
      Removed value: -false
    • removedInput schema / properties / repeat / additionalProperties
      Removed value: -false
    • changedInput schema / properties / where / description
      Previous value: -"A förening's, company's or community's event: onsite (default — `place`), hunchful (a temporary #kanal in the place opens 15 min before and closes, read-only, 30 min after: \"answering questions Wednesday 20–21\") or external (a `link`: Zoom, Teams, YouTube, tickets)."New value: +"A place's event: onsite (default, `place`), hunchful (a temporary #kanal around it) or external (a `link`)."
    • changedOutput schema / (root)
      Previous value: -{
      -  "$schema": "http://json-schema.org/draft-07/schema#",
      -  "additionalProperties": false,
      -  "properties": {
      -    "as": {
      -      "additionalProperties": false,
      -      "properties": {
      -        "key": {
      -          "type": "string"
      -        },
      -        "name": {
      -          "type": "string"
      -        }
      -      },
      -      "required": [
      -        "key",
      -        "name"
      -      ],
      -      "type": "object"
      -    },
      -    "itemId": {
      -      "type": [
      -        "string",
      -        "null"
      -      ]
      -    },
      -    "note": {
      -      "type": "string"
      -    },
      -    "postId": {
      -      "type": [
      -        "string",
      -        "null"
      -      ]
      -    },
      -    "status": {
      -      "enum": [
      -        "published",
      -        "scheduled",
      -        "pending_check",
      -        "draft",
      -        "draft_exists",
      -        "held"
      -      ],
      -      "type": "string"
      -    },
      -    "undoUntil": {
      -      "type": [
      -        "string",
      -        "null"
      -      ]
      -    },
      -    "url": {
      -      "type": [
      -        "string",
      -        "null"
      -      ]
      -    },
      -    "why": {
      -      "type": [
      -        "string",
      -        "null"
      -      ]
      -    }
      -  },
      -  "required": [
      -    "status",
      -    "as",
      -    "postId",
      -    "url",
      -    "itemId",
      -    "undoUntil",
      -    "why",
      -    "note"
      -  ],
      -  "type": "object"
      -}New value: +null
  2. Changed6 schema fields changed
    • addedInput schema / properties / how
      Added value: +{
      +  "description": "With where hunchful: text (default), voice or video — a room the host starts from the #kanal. Voice and video only where nobody under 18 can see it.",
      +  "enum": [
      +    "text",
      +    "voice",
      +    "video"
      +  ],
      +  "type": "string"
      +}
    • addedInput schema / properties / level
      Added value: +{
      +  "description": "Who sees it: inside (default — the #kanal's members), followers (also the place's page in the app and Explore), everyone (also hunchful.io and Google). Followers and everyone: the admins and the page's team, a public place only. A video event shown outside by the page's owner also becomes the page's scheduled live.",
      +  "enum": [
      +    "inside",
      +    "followers",
      +    "everyone"
      +  ],
      +  "type": "string"
      +}
    • addedInput schema / properties / link
      Added value: +{
      +  "description": "With where external: an https link (never a hunchful.io link).",
      +  "maxLength": 500,
      +  "type": "string"
      +}
    • addedInput schema / properties / place / description
      Added value: +"Where on site (needed unless `where` is hunchful or external)."
    • addedInput schema / properties / where
      Added value: +{
      +  "description": "A förening's, company's or community's event: onsite (default — `place`), hunchful (a temporary #kanal in the place opens 15 min before and closes, read-only, 30 min after: \"answering questions Wednesday 20–21\") or external (a `link`: Zoom, Teams, YouTube, tickets).",
      +  "enum": [
      +    "onsite",
      +    "hunchful",
      +    "external"
      +  ],
      +  "type": "string"
      +}
    • changedInput schema / required
      Previous value: -[
      -  "title",
      -  "startsAt",
      -  "place"
      -]New value: +[
      +  "title",
      +  "startsAt"
      +]
  3. Changed3 schema fields changed
    • addedInput schema / properties / calendar
      Added value: +{
      +  "description": "A förening's, company's or community's: \"members\" puts it on the place's own calendar (Händer — its members see it, with repeats and a #kanal); \"page\" (default when it has one) is its public page's event with sign-ups.",
      +  "enum": [
      +    "page",
      +    "members"
      +  ],
      +  "type": "string"
      +}
    • addedInput schema / properties / kanal
      Added value: +{
      +  "description": "A members' calendar event for one #kanal (e.g. \"#styrelsen\"); default #allmänt.",
      +  "maxLength": 80,
      +  "type": "string"
      +}
    • addedInput schema / properties / repeat
      Added value: +{
      +  "additionalProperties": false,
      +  "description": "A members' calendar event that repeats, e.g. {\"every\": 1, \"until\": \"2026-12-15\"} (implies calendar members).",
      +  "properties": {
      +    "every": {
      +      "description": "1 = every week, 2 = every other week.",
      +      "enum": [
      +        1,
      +        2
      +      ],
      +      "type": "number"
      +    },
      +    "until": {
      +      "description": "The last date, YYYY-MM-DD.",
      +      "maxLength": 10,
      +      "type": "string"
      +    }
      +  },
      +  "required": [
      +    "every",
      +    "until"
      +  ],
      +  "type": "object"
      +}
  4. Added

TDQS

A3.7/5.0
Behavior4/5

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

Beyond annotations, it discloses that events are free, must be in a public place and never at someone's home, and that draft versus publish behavior depends on who runs the place and under-18 visibility. This is meaningful behavioral context; it still does not explain return values or idempotency, but annotations cover the safety profile.

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?

It is short, but the sentences are fragmentary and the antecedents for 'they', 'their' and 'this app' are unclear, especially in the draft/publish clause. The create_plan pointer is useful, but the overall structure is not cleanly front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 15-parameter nested creation tool, the description covers the high-level intent and key publication constraints but omits the roles of repeat, capacity, calendar, kanal, level and other options. The rich schema compensates, yet the description is not fully complete as a standalone guide to a complex tool.

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 description coverage is 100% and the 15 parameters have detailed descriptions and enums. The description reinforces a few constraints such as draft/publish, public place and under-18 visibility, but adds little parameter-level meaning beyond 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?

The description identifies the resource as an event for sign-ups, waitlist and reminders, and explicitly distinguishes it from create_plan for meetups with friends. The verb is implicit rather than stated, and the phrasing is fragmented, but an agent can still infer that this is the event-creation tool.

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 gives a use condition ('Only when they ask'), representative use cases, and a named alternative ('A meetup with friends: create_plan'). It does not address other calendar-related siblings such as add_to_calendar, events or rsvp_event, so routing is not fully exhaustive.

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.