Skip to main content
POST
/
v1
/
event-types
{
  "name": "30 Minute Meeting",
  "slug": "30-minute-meeting",
  "description": "A quick 30-minute consultation call",
  "type": "one_on_one",
  "duration": 30,
  "hidden_from_profile": false,
  "color": "#3B82F6"
}
{
  "success": true,
  "data": {
    "id": 1,
    "name": "30 Minute Meeting",
    "slug": "30-minute-meeting",
    "description": "A quick 30-minute consultation call",
    "type": "one_on_one",
    "duration": 30,
    "hidden_from_profile": false,
    "color": "#3B82F6",
    "max_group_size": null,
    "form_fields": []
  }
}
Create a new event type. The slug must be unique for the authenticated user.
The slug field must be unique per user. If you attempt to create an event type with a slug that already exists, the request will fail.

Request Body

name
string
required
The name of the event type. Maximum 55 characters.
slug
string
required
The URL-friendly identifier. Must be unique for the user. Maximum 80 characters. Must match pattern: ^[a-z0-9]+(?:-[a-z0-9]+)*$ (lowercase alphanumeric with hyphens).
description
string
Description of the event type. Maximum 5000 characters.
type
string
required
The type of event. Must be one of: one_on_one, group, round_robin, collective.
duration
integer
required
Duration in minutes. Must be between 1 and 1440 (24 hours).
max_group_size
integer
Maximum group size for group events. Required when type is group. Must be between 2 and 10.
hidden_from_profile
boolean
required
Whether the event type should be hidden from the user’s public profile.
color
string
required
Color code in hex format (e.g., #FF5733). Must match pattern: ^#([A-Fa-f0-9]{6})$.
team_id
integer
Team ID for collective event types. Required when type is collective.

Example Request

{
  "name": "30 Minute Meeting",
  "slug": "30-minute-meeting",
  "description": "A quick 30-minute consultation call",
  "type": "one_on_one",
  "duration": 30,
  "hidden_from_profile": false,
  "color": "#3B82F6"
}

Example Response

{
  "success": true,
  "data": {
    "id": 1,
    "name": "30 Minute Meeting",
    "slug": "30-minute-meeting",
    "description": "A quick 30-minute consultation call",
    "type": "one_on_one",
    "duration": 30,
    "hidden_from_profile": false,
    "color": "#3B82F6",
    "max_group_size": null,
    "form_fields": []
  }
}

Error Response

{
  "success": false,
  "error": {
    "code": "VALIDATION_ERROR",
    "message": "The given data was invalid.",
    "details": {
      "slug": ["The slug has already been taken."],
      "color": ["The color format is invalid."]
    }
  }
}

Example: Group Event Type

{
  "name": "Group Workshop",
  "slug": "group-workshop",
  "description": "Interactive group session for up to 5 participants",
  "type": "group",
  "duration": 60,
  "max_group_size": 5,
  "hidden_from_profile": false,
  "color": "#10B981"
}

Authorizations

Authorization
string
header
required

Bearer authentication header of the form Bearer <token>, where <token> is your auth token.

Body

application/json

Event type to create

name
string
required

The name of the event type

Maximum string length: 55
slug
string
required

The URL-friendly identifier (must be unique)

Maximum string length: 80
type
enum<string>
required

The type of event

Available options:
one_on_one,
group,
round_robin,
collective
duration
integer
required

Duration in minutes

Required range: 1 <= x <= 1440
hidden_from_profile
boolean
required

Whether the event type is hidden from profile

color
string
required

Color code in hex format (e.g., #FF5733)

description
string

Description of the event type

Maximum string length: 5000
max_group_size
integer

Maximum group size (required for group type, min: 2, max: 10)

Required range: 2 <= x <= 10
team_id
integer

Team ID (required for collective type)

Response

Event type created

success
boolean
required

Indicates whether the request was successful

Example:

true

data
object
required

The response data. Can be an object, array, or null