Real-Time Scheduling

Required plan: Emerging

When we built our Availability API it was to solve the problem that our customers were facing in enabling access to real-time booking options into their applications. Labor marketplaces wanting to understand who is available for a booking; hiring managers wanting to know when members of an interview panel are available to see a candidate; etc.

This works really well in the context of an application but enabling a self-serve flow that is similar to many popular personal meeting booking applications is a more involved proposition.

The Cronofy Real-Time Scheduling service, built on top of our Availability API, delivers this for any application.

You can generate branded, self-serve booking links for healthcare appointments, interviews, in fact consultations of any kind which are always up to date with people’s availability.

The User Experience #

Once a link has been generated, this can be sent in an email, text, or chat conversation. The recipient can then navigate through the options to choose a time that works for them.

At the point they choose a time, the Real-Time Scheduling service automatically generates events in all of the relevant participants’ calendars and makes a web hook call to the generating application with the details of the chosen option.

The API reference docs describe all elements. In this article I’ll describe the key elements of an API request.

  "oauth": {
    "redirect_uri": "{REDIRECT_URI}",
  "event": {
    "event_id": "qTtZdczOccgaPncGJaCiLg",
    "summary": "Product Manager Interview at Globex",
  "availability": {
    "participants": [{
      "members": [{
        "sub": "acc_567236000909002",
        "calendar_ids": ["cal_n23kjnwrw2_jsdfjksn234"]
      "required": "all"
    "required_duration": { "minutes": 60 },
    "query_periods": [{
      "start": "2017-07-17T09:00:00Z",
      "end": "2017-07-17T18:00:00Z"
  "target_calendars": [{
    "sub": "acc_567236000909002",
    "calendar_id": "cal_n23kjnwrw2_jsdfjksn234"
  "callback_url": "",
  "tzid": "Europe/London"

The result of this will include a URL that encapsulates all of this information into a booking link to be sent to the recipient, eg:

  "real_time_scheduling": {
    "real_time_scheduling_id": "sch_4353945880944395",
    "url": ""
event  #

This is the template for the event that will be created in all of the participants’ calendars.

availability  #

The Real-Time Scheduling service is built on top of our Availability API. This means that any availability query with any supported combination of participants can be used to generate booking links.

Each participant is identified by their Cronofy Account ID, eg: acc_567236000909002

target_calendars  #

When a booking slot is chosen, this indicates which calendar the event should be put into for each participant.

callback_url  #

This is the URL the Cronofy API will call when a booking slot is chosen and will contain all of the information about the event that’s been created.

You can find more in-depth documentation about the parameters used on the Real-Time Scheduling API reference.