> ## Documentation Index
> Fetch the complete documentation index at: https://docs.zuddl.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Create Event

> **Tool name:** `v1_create_event` · **Behaviour:** ✏️ Write

Create an event in the user's Zuddl organization. Handles conferences, virtual events, webinars, field events and third-party events — set eventType, and for a conference or virtual event also set eventFormat. CONFIRM WITH THE USER BEFORE CALLING THIS. Creating an event is not reversible from here. Restate what you are about to create — title, type and format, start and end with the timezone, and the team — name anything you chose rather than were told, and get an explicit yes. Do not call this in the same turn the user first mentions the event, and never to "see what happens". title and description must come from the user: ask for them and use their words rather than inventing something plausible. The timezone you may suggest when the conversation gives you a real basis, but say so and let them correct it. Call v1_list_teams first, every time, and take teamId from what it returns — never from memory or an earlier session. brandKitId comes from v1_list_brand_kits the same way. Tags and languages are given by name and resolved for you, and an unknown or ambiguous name comes back with the available options rather than a guess — nothing is created in that case. A NEEDS_INPUT response lists EVERY missing or inapplicable field for that event type at once, and nothing has been created — ask the user for all of them in one message, then call again. Read any DEFAULT values in resolvedPlan back to the user afterwards, and mention any warnings: a brand kit can fail to link without failing the create.

**Same as Public API:** [Create an event](/api-reference/events/create-an-event) (`POST /v1/events`)



## OpenAPI

````yaml https://api.prod.zuddl.com/api/v3/api-docs/mcp-tools post /tools/v1_create_event
openapi: 3.1.0
info:
  title: Zuddl MCP Tools Reference
  description: >-
    The Zuddl MCP server lets AI assistants such as Claude and ChatGPT work with
    your Zuddl organization through the [Model Context
    Protocol](https://modelcontextprotocol.io). This reference lists every tool
    the server offers. It is generated from the live server, so it always
    matches what your assistant sees.


    # Connecting


    Add `https://setup.zuddl.com/api/mcp` as a remote MCP server in your
    assistant. It signs you in to Zuddl with OAuth and then calls tools on your
    behalf, with your permissions. AI features must be enabled for your
    organization.


    # Calling a tool


    Assistants call a tool with a JSON-RPC `tools/call` request whose `name` is
    the tool name and whose `arguments` match the request body documented on the
    tool's page. The `/tools/<name>` paths in this reference identify tools;
    they are not HTTP endpoints.


    # Behaviour labels


    | Label | Meaning |

    | --- | --- |

    | 🔒 Read-only | Reads data and changes nothing. |

    | ✏️ Write | Creates or updates data, but does not delete it. |

    | ⚠️ Destructive | Deletes or removes data. Most assistants ask you to
    approve these calls. |

    | 🔁 Idempotent | Calling it again with the same arguments has no further
    effect. |


    A tool that mirrors a Public API endpoint links to that endpoint's page.
    MCP-only tools have no Public API equivalent.
  version: 1.0.0
servers:
  - url: https://setup.zuddl.com/api/mcp
    description: Zuddl MCP server
security:
  - oauth: []
tags:
  - name: Events
  - name: Attendees
  - name: Sessions
  - name: Speakers
  - name: Sponsors
  - name: Locations
  - name: Teams
  - name: Brand Kits
  - name: Registration flows & tickets
  - name: Analytics
paths:
  /tools/v1_create_event:
    post:
      tags:
        - Events
      summary: Create Event
      description: >-
        **Tool name:** `v1_create_event` · **Behaviour:** ✏️ Write


        Create an event in the user's Zuddl organization. Handles conferences,
        virtual events, webinars, field events and third-party events — set
        eventType, and for a conference or virtual event also set eventFormat.
        CONFIRM WITH THE USER BEFORE CALLING THIS. Creating an event is not
        reversible from here. Restate what you are about to create — title, type
        and format, start and end with the timezone, and the team — name
        anything you chose rather than were told, and get an explicit yes. Do
        not call this in the same turn the user first mentions the event, and
        never to "see what happens". title and description must come from the
        user: ask for them and use their words rather than inventing something
        plausible. The timezone you may suggest when the conversation gives you
        a real basis, but say so and let them correct it. Call v1_list_teams
        first, every time, and take teamId from what it returns — never from
        memory or an earlier session. brandKitId comes from v1_list_brand_kits
        the same way. Tags and languages are given by name and resolved for you,
        and an unknown or ambiguous name comes back with the available options
        rather than a guess — nothing is created in that case. A NEEDS_INPUT
        response lists EVERY missing or inapplicable field for that event type
        at once, and nothing has been created — ask the user for all of them in
        one message, then call again. Read any DEFAULT values in resolvedPlan
        back to the user afterwards, and mention any warnings: a brand kit can
        fail to link without failing the create.


        **Same as Public API:** [Create an
        event](/api-reference/events/create-an-event) (`POST /v1/events`)
      operationId: v1_create_event
      requestBody:
        description: The tool's `arguments`, as sent in a JSON-RPC `tools/call` request.
        content:
          application/json:
            schema:
              type: object
              properties:
                request:
                  type: object
                  description: >-
                    The event to create. eventType, title, description,
                    startDateTime, endDateTime, tz and teamId are always
                    required.
                  properties:
                    addressDetails:
                      type: object
                      description: >-
                        Venue for the event. Set this ONLY when the user named a
                        place — never invent one or infer it from their
                        location. Applies to FIELD_EVENT and THIRD_PARTY_EVENT
                        and to an EVENT whose eventFormat is IN_PERSON or
                        HYBRID; ignored for a WEBINAR.
                      properties:
                        city:
                          type: string
                          description: City.
                        country:
                          type: string
                          description: Country.
                        latitude:
                          type: string
                          description: >-
                            Latitude, only from a place the user actually
                            picked. Never estimate it.
                        locality:
                          type: string
                          description: Street address or locality.
                        longitude:
                          type: string
                          description: >-
                            Longitude, only from a place the user actually
                            picked. Never estimate it.
                        name:
                          type: string
                          description: Venue name, e.g. Moscone Center.
                        placeId:
                          type: string
                          description: >-
                            Google Places identifier, only from a place the user
                            actually picked.
                        postalCode:
                          type: string
                          description: Postal or ZIP code.
                        state:
                          type: string
                          description: State or region.
                      required:
                        - name
                    brandKitId:
                      type: string
                      description: Identifier of a published brand kit to apply.
                    description:
                      type: string
                      description: Description of the event. Required. Rich-text HTML.
                    endDateTime:
                      type: string
                      format: date-time
                      description: >-
                        End of the event. Required, and must be after
                        startDateTime.
                    eventFormat:
                      type: string
                      description: >-
                        VIRTUAL, IN_PERSON or HYBRID. Applies to EVENT only — it
                        is what separates a Conference from a Virtual event. Set
                        by the server for every other type.
                      enum:
                        - VIRTUAL
                        - IN_PERSON
                        - HYBRID
                    eventType:
                      type: string
                      description: >-
                        Event type, in the public taxonomy shared with every /v1
                        read: EVENT covers both Conference and Virtual event
                        (eventFormat distinguishes them), FIELD_EVENT, WEBINAR,
                        THIRD_PARTY_EVENT. Determines which other fields apply.
                      enum:
                        - EVENT
                        - FIELD_EVENT
                        - WEBINAR
                        - THIRD_PARTY_EVENT
                    languageCodes:
                      type: array
                      description: >-
                        ISO 639-1 codes of languages to enable, e.g.
                        ["en","de"]. Call v1_list_languages for the supported
                        set rather than guessing a code. The first code you send
                        becomes the event's default language.
                      items:
                        type: string
                        description: >-
                          ISO 639-1 codes of languages to enable, e.g.
                          ["en","de"]. Call v1_list_languages for the supported
                          set rather than guessing a code. The first code you
                          send becomes the event's default language.
                    salesforceCampaignId:
                      type: string
                      description: >-
                        Salesforce campaign ID to link. Some organizations
                        require it; a 422 says so.
                    startDateTime:
                      type: string
                      format: date-time
                      description: >-
                        Start of the event, ISO-8601 with offset, e.g.
                        2026-09-05T10:00:00+05:30.
                    tagNames:
                      type: array
                      description: >-
                        Names of existing organization tags. Maximum 10. Never
                        created implicitly.
                      items:
                        type: string
                        description: >-
                          Names of EXISTING organization tags to apply, maximum
                          10. Call v1_list_tags to see what exists and use those
                          names exactly. Set these only when the user asks for
                          tags — do not infer them from the event's subject. A
                          tag that does not exist is reported back, never
                          created.
                    teamId:
                      type: string
                      description: Identifier of the owning team. Required.
                    title:
                      type: string
                      description: Name of the event.
                      maxLength: 400
                    tz:
                      type: string
                      description: IANA timezone of the event, e.g. Asia/Kolkata. Required.
                  required:
                    - description
                    - endDateTime
                    - eventType
                    - startDateTime
                    - teamId
                    - title
                    - tz
              required:
                - request
        required: true
      responses:
        '200':
          description: A JSON-RPC `tools/call` result. The tool's output is in `content`.
components:
  securitySchemes:
    oauth:
      type: http
      description: >-
        OAuth 2.1 access token. MCP clients obtain it themselves (dynamic client
        registration + PKCE) when you connect them to the server URL above.
      scheme: bearer

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.