Skip to main content

Overview

Assignments are scheduled bookings between two parties — an operator (the host) and an attendee. They’re time-bounded coordination events: meetings, dispatch slots, deployment windows, onboarding sessions. The API uses /v1/bookings internally; the dashboard calls them Assignments to reflect their operational role in the API-FirstResponder context.

Booking pages

Every user gets a public booking page at:
https://schedkit.net/book/:username/:event_slug
Team booking pages:
https://schedkit.net/book/:org_slug/:team_slug/:event_slug

Event types

Event types define the booking rules: duration, location type, availability windows, buffer times, and confirmation requirements.
FieldDescription
duration_minutesLength of the event
location_typevideo, phone, in_person, other
requires_confirmationIf true, booking is pending until host confirms
max_advance_daysHow far ahead bookings can be made
min_notice_hoursMinimum notice required

Confirmation flow

When requires_confirmation: true, a booking is created with status: pending. The host receives an email with Accept and Decline links containing a secure token. The attendee is notified of the outcome.

Booking via API

curl -X POST https://schedkit.net/v1/book/:username/:event_slug \
  -H "Content-Type: application/json" \
  -d '{
    "attendee_name": "Jason Johnson",
    "attendee_email": "jason@example.com",
    "start_time": "2026-03-20T14:00:00Z",
    "timezone": "America/Chicago",
    "notes": "Interested in the enterprise plan"
  }'

postMessage SDK

When embedded via the @schedkit/react SDK, a schedkit:booked event fires after a successful booking:
window.addEventListener('message', (e) => {
  if (e.data?.type === 'schedkit:booked') {
    console.log(e.data.payload);
    // { id, status, requires_confirmation, attendee_name, start_time, ... }
  }
});