Skip to main content
POST
Create an Event

Headers

Authorization
string
required

value must be Bearer <token> where <token> is api key prefixed with cal_, managed user access token, or OAuth access token

Body

application/json
title
string
required

The Event's title.

Required string length: 1 - 255
Example:

"Team offsite"

startTime
string
required

When the Event starts, in ISO 8601 format in UTC timezone. It must not be in the past.

Example:

"2030-01-01T10:00:00.000Z"

endTime
string
required

When the Event ends, in ISO 8601 format in UTC timezone. It must be after startTime.

Example:

"2030-01-01T11:00:00.000Z"

timeZone
string
required

The IANA time zone the Event's times are shown in.

Example:

"Europe/Berlin"

slug
string

Public page slug (cal.com/{slug}): 10-100 lowercase letters, digits and hyphens. Generated from the title when omitted.

Example:

"team-offsite-2030"

description
string | null

What the Event is about, shown on its page.

Maximum string length: 5000
visibility
enum<string>
default:PUBLIC

Once published: PUBLIC is listed on the owner's page, UNLISTED only opens from its link. Defaults to PUBLIC.

Available options:
PUBLIC,
UNLISTED
capacity
number | null

The most guests the Event can take. Omit or pass null for unlimited. Ignored once any location has its own capacity: the Event then takes the sum of the location capacities, or is unlimited if any location has none. The waitlist only opens when the Event or the chosen location is full, so it only works when capacity is set on the Event or on a location.

Required range: 1 <= x <= 100000
waitlistEnabled
boolean
default:false

Let guests join a waitlist when the Event is full. The waitlist only opens when the Event or the chosen location is full, so it only works when capacity is set on the Event or on a location.

requiresApproval
boolean
default:false

Registrations wait for a host's approval.

showOrganizerEmail
boolean
default:true

Show the organizer's email to guests.

guestList
enum<string>
default:names

Who guests can see on the Event's page. names lists them, count shows how many, hidden shows neither. Defaults to names.

Available options:
hidden,
names,
count
showPresentedBy
boolean
default:true

Show who the Event is presented by.

locations
object[]

Where the Event happens. Links can repeat. An Event can have one address and one conferencing location, either an integration or the organizer's default app.

Response

status
enum<string>
required
Available options:
success,
error
Example:

"success"

data
object
required