Scheduling

Let your users be booked, inside your own product, with calendars and double-booking handled for you.

Scheduling is for products where people book people: telehealth, marketplaces, tutoring, services. You add your doctors or tutors as hosts, they connect their calendars and set their hours, and your customers book them, through the API or a page you embed. It uses the same API key, logs, webhooks and sandbox environments as everything else.

const { :  } = await ...({
  : "doctor_482",
  : "Dr. Ana Reyes",
  : "ana@example.com",
  : "America/New_York",
});

await ...("doctor_482", {
  : [{ : [1, 2, 3, 4, 5], : "09:00", : "17:00" }],
});

const { :  } = await ...({
  : "Initial consultation",
  : 30,
  : 10,
  : [{ : "doctor_482" }],
});

Then ask when it can be booked, and book it:

const { :  } = await ...(, {
  : "2027-01-04T00:00:00Z",
  : "2027-01-11T00:00:00Z",
});

const { : ,  } = await ...({
  : ,
  : !.[0]!.,
  : {
    : "patient_77",
    : "Sam Lee",
    : "sam@example.com",
    : "America/Chicago",
  },
});

What it takes care of

  • Double-booking. The database refuses two overlapping bookings of one host, whatever races: a retry, a second tab or two people clicking at once. A time that's gone answers slot_unavailable.
  • Calendars. Google, Microsoft and CalDAV (Apple, Nextcloud, Fastmail). Coss.com reads when they're busy and adds bookings to them. It never reads your hosts' event titles.
  • Time zones. Hours stay in the host's local time across daylight saving changes, and a recurring booking stays at the attendee's local time.
  • Who gets told. Confirmations, reminders and calendar invitations, from your domain. You can turn any of them off.

Where to next

  • Hosts and availability: schedules, overrides, time zones.
  • Calendars: connecting them, and what happens when one fails.
  • Bookings: holds for taking payment, approval, rescheduling, recurring series.
  • Pools and groups: any available host, panels and classes.
  • Embedding: coss.com's pages in your app, and building your own.
  • Privacy: what's stored, for how long, and health data.
  • Testing: sandbox environments and simulated calendars.

Each booking is $0.10 per booking, charged when it's confirmed. A group session is one booking however many attend, and each occurrence of a series is one. Rescheduling is free, and a cancelled booking stays charged. Free plans include 100 a month, and sandbox environments are free.