Slatis Public API v1 is open for beta testers Register on the waitlist →
Slatis

Event Types

Event types define the rules for a bookable meeting. Read them with a public key; create, update, and delete them with a secret key that has the event-types:write scope.

Read operations

Read operations accept both public keys (pk_*) and secret keys (sk_*) with event-types:read.

List event types

GET /v1/event-types

Returns all active event types for the organization, sorted alphabetically by name.

curl https://api.slatis.com/v1/event-types \
  -H "Authorization: Bearer pk_live_xxxxxxxxxxxxxxxxxxxx"
{
  "success": true,
  "event_types": [
    {
      "id": "evt_01abc",
      "name": "30-Minute Call",
      "slug": "30-min-call",
      "description": "A quick intro call",
      "duration": 30,
      "slot_interval": 15,
      "buffer_before": 0,
      "buffer_after": 5,
      "minimum_booking_notice": 60,
      "scheduling_type": "ROUND_ROBIN",
      "team_id": "team_01"
    }
  ]
}

Get a specific event type

GET /v1/event-types/{id}

Returns full details including all custom fields in their display order.

{
  "success": true,
  "event_type": {
    "id": "evt_01abc",
    "name": "30-Minute Call",
    "slug": "30-min-call",
    "duration": 30,
    "slot_interval": 15,
    "buffer_before": 0,
    "buffer_after": 5,
    "minimum_booking_notice": 60,
    "scheduling_type": "ROUND_ROBIN",
    "custom_fields": [
      {
        "id": "fld_01abc",
        "key": "company",
        "label": "Company",
        "type": "TEXT",
        "required": true,
        "order": 1
      },
      {
        "id": "fld_01def",
        "key": "topic",
        "label": "What would you like to discuss?",
        "type": "SELECT",
        "required": false,
        "options": ["Product demo", "Support", "Partnership"],
        "order": 2
      }
    ]
  }
}

Get custom fields

Fetch only the field schema for an event type — useful when building booking forms:

GET /v1/event-types/{id}/fields

Pass custom field values in custom_fields when creating a booking:

{
  "event_type_id": "evt_01abc",
  "attendee": { "name": "Jane", "email": "jane@example.com" },
  "requested_time": "2026-05-01T14:00:00Z",
  "custom_fields": {
    "company": "Acme Inc",
    "topic": "Product demo"
  }
}

Only keys defined on the event type are accepted. Unknown keys in custom_fields are silently ignored. Required fields must be present or the create call returns 400 validation_error.


Write operations

Write operations require a secret key (sk_*) with the event-types:write scope.

Create an event type

POST /v1/event-types

Returns 201 Created on success.

curl -X POST https://api.slatis.com/v1/event-types \
  -H "Authorization: Bearer sk_live_xxxxxxxxxxxxxxxxxxxx" \
  -H "Content-Type: application/json" \
  -d '{
    "team_id": "team_01",
    "name": "Discovery Call",
    "duration": 30,
    "workload": {
      "prep": 5,
      "meeting": 30,
      "implementation": 0,
      "admin": 5
    }
  }'

Required fields

PropTypeDefault
team_id
string
-
name
string
-
duration
integer
-
workload
object
-

workload object:

PropTypeDefault
prep
integer (≥0)
-
meeting
integer (>0)
-
implementation
integer (≥0)
-
admin
integer (≥0)
-

Optional fields

{
  "success": true,
  "event_type": {
    "id": "evt_01xyz",
    "name": "Discovery Call",
    "slug": "discovery-call",
    "duration": 30,
    "mode": "SIMPLE",
    "is_active": true,
    "is_personal": false,
    "team_id": "team_01",
    "created_at": "2026-05-01T14:00:00.000Z",
    "updated_at": "2026-05-01T14:00:00.000Z"
  }
}

Update an event type

PATCH /v1/event-types/{id}

All fields are optional. Only the fields you include are updated — omitted fields retain their current values.

curl -X PATCH https://api.slatis.com/v1/event-types/evt_01xyz \
  -H "Authorization: Bearer sk_live_xxxxxxxxxxxxxxxxxxxx" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Intro Call",
    "duration": 45,
    "is_active": false
  }'

The response body has the same shape as the create response, with a warning field populated if any downstream effects require attention (for example, disabling an event type that has active bookings).

{
  "success": true,
  "event_type": {
    "id": "evt_01xyz",
    "name": "Intro Call",
    "duration": 45,
    "is_active": false,
    "updated_at": "2026-05-02T10:00:00.000Z"
  },
  "warning": "This event type has 3 active bookings. Disabling it will not cancel them."
}

Delete an event type

Soft-deletes the event type. The record is retained for audit and reporting purposes; it will no longer appear in list responses.

DELETE /v1/event-types/{id}
{
  "success": true,
  "event_type": {
    "id": "evt_01xyz",
    "deleted_at": "2026-05-03T09:00:00.000Z"
  }
}

Deletion is a soft delete — existing bookings linked to this event type are not affected. The event type can be restored via the dashboard.


Scheduling types

ValueBehavior
SOLOAssigned to one member via the routing algorithm
ROUND_ROBINDistributed evenly across team members
COLLECTIVEAll team members must be available simultaneously

On this page