Creating an Event

You can use the Eventbrite website to quickly and easily create a new Event. However, you can use the Eventbrite API if, for example, you want to create an Event within a workflow outside of Eventbrite such as in your CRM or CMS.

There are two ways to create Events using the Eventbrite API:

  • Create an Event from scratch by defining an new Event object.
  • Copy an Event already existing in your account and then update it.

Once you have created a new Event, you must create at least one Ticket Class object for the Event, and then publish the Event so that Attendees can access tickets. See below for information on both of these actions.


Authenticating Your Access to the Eventbrite API

To create an Event, you must authenticate your access to the Eventbrite API. To learn how, refer to Authenticating Your Access.


Creating an Event from Scratch

Every Event is created within an Organization. To create a new Event from scratch, you must have the ID of an Organization to which you (and the new Event should) belong. If you are on Eventbrite Music you can belong to multiple Organizations. For information on finding your Organization ID, refer to Organizations.

Create a new Event by using the call

curl -X POST   https://www.eventbriteapi.com/v3/organizations/{organization_id}/events/   -H 'Authorization: Bearer PERSONAL_OAUTH_TOKEN'   -H "Accept: application/json"
  -d '{
        "event": {
            "name": {
                "html": "My New Event"
            },
            "start":{
                "timezone": "America/Los_Angeles",
                "utc": "2019-12-01T02:00:00Z"
            },
            "end":{
                "timezone": "America/Los_Angeles",
                "utc": "2019-12-01T05:00:00Z"
            },
            "currency": "USD"
        }
    }'

The following fields are required when creating an Event, and should be appended to the end of the POST request URL:

FieldTypeDescription
namemultipart-textEvent name (title), made up of two fields.
startdatetime-tzEvent start date and time (must be a future date) made up of two fields.
enddatetime-tzEvent end date and time (must be a future date after the start date) made up of two fields.
currencystringEvent ISO 4217 currency code.

The multipart-text data type is an object with two fields.

FieldTypeDescription
htmlstring(Required) HTML format.
textstring(Optional) Plain text.

The datetime-tz data type is an object with two fields.

FieldTypeDescription
timezonestringThe timezone
utcstringThe time relative to UTC

If the call is successful, the new Event object is returned. The id attribute is the unique ID of the new Event. You'll need the Event ID when using the API to update the Event, add Ticket Classes and publish the Event, as explained below.

Events created using the API call above will be standard events that occur one time. In order to create a series of events with multiple occurrences (also known as a "repeating event" or "recurring event"), you must first create one event to serve as the "series parent", then add occurrences to the series parent. For more information on how to create a series parent and add occurrences, please refer to the Create Event API.


Creating a New Event by Copying an Existing Event

To create a new Event by copying an existing Event, you need to have the ID of the Event you want to copy. For more information, refer to Getting Information on an Event.

Specify the Event ID of the Event you want to copy, as the basis for the new Event, in the request URL. The copied Event is created under the same Organization as the original Event.

curl -X POST   https://www.eventbriteapi.com/v3/events/{event_id}/copy/   -H 'Authorization: Bearer PERSONAL_OAUTH_TOKEN' 

If the call is successful, the copied Event object is returned with a new Event ID (the id attribute).


Updating an Event

You use the following API call, with the appropriate Event attributes of the fields you want to update. For example, updating the Event capacity to 200.

curl -X POST   https://www.eventbriteapi.com/v3/events/{event_id}/   -H 'Authorization: Bearer PERSONAL_OAUTH_TOKEN'   -H "Accept: application/json"
  -d '{
        "event": {
            "capacity": 200
            }
        }'

Event Attributes

FieldTypeDescription
namemultipart-textEvent name.
summarystringEvent summary. Limited to 140 characters.
descriptionmultipart-text(DEPRECATED) Event description. Description can be lengthy and have significant formatting.
urlstringURL of the Event's Listing page on eventbrite.com.
startdatetime-tzEvent start date and time.
enddatetime-tzEvent end date and time.
currencystringEvent ISO 4217 currency code.
online_eventbooleantrue = Specifies that the Event is online only (i.e. the Event does not have a Venue).
listedbooleantrue = Allows the Event to be publicly searchable on the Eventbrite website.
shareablebooleantrue = Event is shareable, by including social sharing buttons for the Event to Eventbrite applications.
invite_onlybooleantrue = Only invitees who have received an email inviting them to the Event are able to see Eventbrite applications.
show_remainingbooleantrue = Provides, to Eventbrite applications, the total number of remaining tickets for the Event.
passwordstringEvent password used by visitors to access the details of the Event.
capacityintegerMaximum number of tickets for the Event that can be sold to Attendees. The total capacity is calculated by the sum of the quantity_total of the Ticket Class.

Creating a Ticket Class

Regardless of the method you use to create an new Event, you must create at least one Ticket Class (ticket type) for the new Event. For example, a Ticket Class that is a paid, \$10 ticket with the ticket name VIP.

You create a Ticket Class for an Event (identified by the Event ID) using the following API call

curl -X POST   https://www.eventbriteapi.com/v3/events/{event_id}/ticket_classes/   -H 'Authorization: Bearer PERSONAL_OAUTH_TOKEN'   -H "Accept: application/json"
  -d '{
        "ticket_class": {
            "name": "VIP",
            "quantity_total": 100,
            "cost": "USD,1000"
            }
        }'

These fields are required to create a Ticket Class:

FieldTypeDescription
namestringTicket Class name.
quantity_totalintegerNumber of this Ticket Class available for sale.
freeboolean(Only for free tickets) true = Ticket Class is Free.
coststring(Only for paid tickets) Cost of the Ticket Class (example format: USD,1000) \$10

Publishing an Event

All new Events must be published so that Attendees can access tickets to your Event. Use the following API call, to publish an Event.

curl -X POST   https://www.eventbriteapi.com/v3/events/{event_id}/publish/   -H 'Authorization: Bearer PERSONAL_OAUTH_TOKEN' 

Next steps

These are the next articles to continue with your building

Creating Ticket Classes in Tiered Events

Uploading an Image