Event Types API

Event types define the types of meetings or appointments that can be booked.

List Event Types

GET
/api/v1/event-types

Retrieve a list of event types

Query Parameters

ParameterTypeDescription
active
boolean
Filter by active status
Default: true
limit
number
Max results
Default: 50
offset
number
Skip results
Default: 0
Request
curl -X GET "https://api.webkasa.app/api/v1/event-types?active=true" \
  -H "Authorization: Bearer wk_live_xxx..."

Response

{
  "data": [
    {
      "id": "evt_abc123",
      "title": "30-Minute Consultation",
      "slug": "30-min-consultation",
      "description": "A quick introductory call",
      "duration": 30,
      "location_type": "video",
      "location_details": "Zoom link will be provided",
      "color": "#3B82F6",
      "requires_approval": false,
      "is_active": true,
      "created_at": "2024-01-01T00:00:00Z"
    },
    {
      "id": "evt_def456",
      "title": "1-Hour Deep Dive",
      "slug": "1-hour-deep-dive",
      "description": "Comprehensive discussion session",
      "duration": 60,
      "location_type": "video",
      "color": "#10B981",
      "requires_approval": true,
      "is_active": true,
      "created_at": "2024-01-01T00:00:00Z"
    }
  ],
  "meta": {
    "total": 2,
    "limit": 50,
    "offset": 0,
    "hasMore": false
  }
}

Create Event Type

POST
/api/v1/event-types

Create a new event type

Request Body

ParameterTypeDescription
title
required
string
Event type title
duration
required
number
Duration in minutes
slug
string
URL-friendly identifier (auto-generated if not provided)
description
string
Event type description
location_type
string
Location type (in_person, phone, video, custom)
Default: video
location_details
string
Additional location details
color
string
Display color (hex)
requires_approval
boolean
Whether bookings need approval
Default: false
is_active
boolean
Whether event type is active
Default: true
Request
curl -X POST "https://api.webkasa.app/api/v1/event-types" \
  -H "Authorization: Bearer wk_live_xxx..." \
  -H "Content-Type: application/json" \
  -d '{
    "title": "30-Minute Consultation",
    "slug": "30-min-consultation",
    "description": "A quick introductory call",
    "duration": 30,
    "location_type": "video",
    "location_details": "Zoom link will be provided",
    "color": "#3B82F6",
    "requires_approval": false,
    "is_active": true
  }'

Response

{
  "data": {
    "id": "evt_abc123",
    "title": "30-Minute Consultation",
    "slug": "30-min-consultation",
    "duration": 30,
    "is_active": true,
    "created_at": "2024-01-01T00:00:00Z"
  }
}

Location Types

The following location types are supported:

in_person

Physical meeting at a specified location

phone

Phone call (attendee provides number)

video

Video conference (Zoom, Meet, etc.)

custom

Custom location specified in details