Skip to main content
Glama

update_event

Update an existing Eventbrite event by ID, changing fields such as name, summary, dates, location, capacity, listing status, and ticket visibility.

Instructions

Update an Event by Event ID.

ENDPOINT: POST /events/{event_id}/

Note that if the event is a series parent, updating name, description, hide_start_date, hide_end_date, currency, show_remaining, password, capacity, or source on the series parent will update these fields on all occurrences in the series.

EVENT OBJECT - PUBLIC FIELDS (can be updated):

  • name (multipart-text): Event name

  • summary (string, optional): Event summary. Short summary describing the event and its purpose

  • description (multipart-text, optional, DEPRECATED): Event description. Use summary instead

  • start (datetime-tz): Event start date and time

  • end (datetime-tz): Event end date and time

  • currency (string): Event ISO 4217 currency code

  • online_event (boolean): true = Event is online only (no Venue)

  • hide_start_date (boolean): If true, event's start date never displayed to attendees

  • hide_end_date (boolean): If true, event's end date never displayed to attendees

EVENT OBJECT - PRIVATE FIELDS (can be updated):

  • listed (boolean): true = Event publicly searchable on Eventbrite

  • shareable (boolean): true = Event is shareable with social buttons

  • invite_only (boolean): true = Only invitees can see the event

  • show_remaining (boolean): true = Show remaining ticket count

  • password (string): Password to access event details

  • capacity (integer): Maximum attendees (sum of ticket class quantities)

  • capacity_is_custom (boolean): true = Use custom capacity, false = Calculate from ticket classes

  • organizer_id (string): ID of event organizer

  • venue_id (string): ID of event venue

  • format_id (string): ID of event format

  • category_id (string): ID of event category

  • subcategory_id (string): ID of event subcategory

  • logo_id (string): ID of event logo image

  • is_reserved_seating (boolean): Whether event has reserved seating

  • is_series (boolean): Whether this is a series parent event

  • show_pick_a_seat (boolean): For reserved seating, show seat picker

  • show_seatmap_thumbnail (boolean): Show seat map thumbnail

  • show_colors_in_seatmap_thumbnail (boolean): Show colors in seat map thumbnail

POSSIBLE ERRORS (400):

  • CANNOT_UPDATE_CURRENCY: Cannot update event with paid sales or reserved seats

  • CANNOT_UPDATE_SOURCE: Event source can only be set during creation

  • DATE_CONFLICT: End date must be after start date

  • DIFFERENT_TIMEZONES: Start and end times must have same timezone

  • INVALID_DATE: Start and end dates cannot be in the past

  • INVENTORY_TYPE_CONFLICT: Only single inventory type may be set at once

  • INVITE_CONFLICT: Cannot set both listed and invite_only

  • NO_DEFAULT_ORGANIZER: No organizer ID and no default found

  • NO_PAYMENT_OPTIONS: Event has paid tickets but no payment options

  • NO_PACKAGE_SELECTED: Need to select package at /organizations/{id}/assortment/

  • NO_VENUE: Attempted to create event without venue

  • PASSWORD_CONFLICT: Cannot set both listed and password

  • PAYMENT_OPTIONS_DEPRECATED_SPLIT_FEES: Split fees no longer supported

  • PAYMENT_OPTIONS_NO_COUNTRY: Paid tickets but no payment country

  • PAYMENT_OPTIONS_NO_PAYMENT_TYPE: Paid tickets but no payment type

  • PAYMENT_OPTIONS_PAYPAL_NO_EMAIL: PayPal configured but no email

  • SHARE_INVITE_CONFLICT: Cannot set both shareable and invite_only

  • UNSUPPORTED_TIMEZONE: Timezone does not exist

  • VENUE_AND_ONLINE: Cannot set both venue_id and online_event

  • SUMMARY_DESCRIPTION_CONFLICT: Cannot set both summary and description

  • OCCURRENCE_TIMEZONE_UPDATE_NOT_ALLOWED: Cannot change timezone on series occurrence

  • SERIES_PARENT_START_END_DATE_EDIT: Cannot set start/end on series parent

  • OCCURRENCE_DURATION_TOO_LONG: Series occurrences cannot exceed 7 days

  • IS_RESERVED_SEATING_UPDATE_NOT_ALLOWED_ON_SERIES_EVENTS: Reserved seating events cannot be recurring

  • IS_SERIES_UPDATE_NOT_ALLOWED_ON_RESERVED_EVENTS: Reserved seating events cannot be recurring

  • IS_SERIES_UPDATE_NOT_ALLOWED_ON_TICKETED_EVENTS: Delete all tickets to make this change

  • IS_SERIES_UPDATE_NOT_ALLOWED_ON_PUBLISHED_EVENTS: Unpublish event to make this change

  • IS_SERIES_UPDATE_NOT_ALLOWED_HAS_OCCURRENCES: Delete all occurrences to change to one-time event

  • IS_SERIES_UPDATE_NOT_ALLOWED_ON_SERIES_OCCURRENCE: Cannot change occurrence to one-time event

  • ARGUMENTS_ERROR: Errors with your arguments

AUTHENTICATION: Requires: Authorization: Bearer PERSONAL_OAUTH_TOKEN

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
endNoEvent end date/time (optional)
nameNoEvent name (optional)
startNoEvent start date/time (optional)
listedNoPublicly searchable (optional)
localeNoEvent locale (optional, e.g., en_US)
logo_idNoLogo image ID (optional)
summaryNoEvent summary (optional)
capacityNoMaximum attendees (optional)
currencyNoISO 4217 currency code (optional, e.g., USD, EUR, GBP)
event_idYesEvent ID (required)
passwordNoEvent password (optional)
venue_idNoVenue ID (optional)
format_idNoFormat ID (optional)
is_seriesNoIs series parent (optional)
shareableNoIs shareable (optional)
category_idNoCategory ID (optional)
descriptionNoEvent description (optional, deprecated - use summary)
invite_onlyNoOnly invited can see (optional)
online_eventNoIs online-only event (optional)
organizer_idNoOrganizer ID (optional)
hide_end_dateNoHide end date from attendees (optional)
show_remainingNoShow remaining tickets (optional)
subcategory_idNoSubcategory ID (optional)
hide_start_dateNoHide start date from attendees (optional)
show_pick_a_seatNoShow seat picker (optional)
capacity_is_customNoUse custom capacity (optional)
is_reserved_seatingNoHas reserved seating (optional)
show_seatmap_thumbnailNoShow seatmap thumbnail (optional)
show_colors_in_seatmap_thumbnailNoShow colors in seatmap (optional)

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv1.0.6

TDQS

A4.5/5.0
Behavior5/5

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

With no annotations provided, the description carries the full burden and does so well: it discloses that series-parent edits propagate to all occurrences, flags the deprecated description field, enumerates field-level conflict rules (listed/password, invite_only/shareable, venue/online), and states the auth requirement. This is well beyond what a bare mutation description usually offers.

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?

Front-loading is good (purpose, endpoint, then special-case behavior), but the ~30-line public/private field enumeration largely duplicates the input schema, which already has 100% parameter description coverage. The error catalog earns its space; the field list mostly does not, dragging the structure below a 4.

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 29-parameter mutation tool with no annotations and no output schema, the description covers purpose, propagation semantics, deprecation, auth, and the full failure taxonomy. An agent could call this correctly without opening any other document.

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, but the description adds real meaning: it segregates fields into PUBLIC vs PRIVATE, marks 'description' as DEPRECATED in favor of 'summary', and attaches constraints (e.g., capacity is the sum of ticket class quantities, currency is locked once paid sales exist). It does not fully compensate for anything, but it clearly exceeds 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 and resource ('Update an Event by Event ID') and pins the operation to a concrete endpoint (POST /events/{event_id}/). Against siblings like create_event, get_event, delete_event, publish_event, the scope of this tool is unambiguous.

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?

The series-parent paragraph and the extensive 400-error catalog effectively tell the agent the conditions under which updates succeed or fail (e.g., cannot change currency with paid sales, cannot set start/end on a series parent). What is missing is any explicit routing to an alternative tool or a stated 'use this instead of X' rule, so it stops short of a 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Deploy Server

Other Tools