# Real-Time Sequencing

> **BETA**

#### Description
Returns a URL to a form where a user can select their preferred date and time for a sequence of events based upon live availability information.

#### URL format
```
{data_center_url}/v1/real_time_sequencing
```

#### Example Request
```http
POST /v1/real_time_sequencing HTTP/1.1
Host: {data_center_url}
Authorization: Bearer {API_KEY}
Content-Type: application/json; charset=utf-8

{
  "oauth": {
    "redirect_uri": "{REDIRECT_URI}",
  },
  "event": {
    "event_id": "qTtZdczOccgaPncGJaCiLg",
    "summary": "Product Manager Interview at Globex",
    "tzid": "Europe/London"
  },
  "availability": {
      "sequence":[
        {
          "sequence_id":"123",
          "ordinal":1,
          "participants":[
            {
              "members":[
                {
                  "sub":"acc_5ba21743f408617d1269ea1e",
                  "calendar_ids":[ "cal_n23kjnwrw2_jsdfjksn234" ]
                }
              ],
              "required":"all"
            }
          ],
          "event": {
            "event_id": "qTtZdczOccgaPncGJaCiLg",
            "summary": "Pre screen"
          },
          "required_duration":{ "minutes": 60 }
        },
        {
          "sequence_id":"456",
          "ordinal":2,
          "participants":[
            {
              "members":[
                {
                  "sub": "acc_64b17d868090ea21640c914c",
                  "available_periods": [
                    {
                      "start": "2026-04-30T09:00:00Z",
                      "end": "2026-04-30T12:00:00Z"
                    },
                    {
                      "start": "2026-05-01T10:00:00Z",
                      "end": "2026-05-01T20:00:00Z"
                    }
                  ]
                }
              ],
              "required":"all"
            }
          ],
          "event": {
            "event_id": "qTtZdczOccgaPncGJaCiLg",
            "summary": "Face to face"
          },
          "required_duration":{ "minutes": 60 }
        }
      ],
      "query_periods": [
        {
          "start": "2026-04-30T09:00:00Z",
          "end": "2026-04-30T18:00:00Z"
        },
        {
          "start": "2026-05-01T09:00:00Z",
          "end": "2026-05-01T18:00:00Z"
        }
      ]
  },
  "target_calendars": [
    {
      "sub": "acc_5ba21743f408617d1269ea1e",
      "calendar_id": "cal_n23kjnwrw2_jsdfjksn234"
    }
  ],
  "callback_url": "http://www.example.com/callback",
  "selection_mode": "no_confirm"
}
```

#### Example Response
```http
HTTP/1.1 200 OK
Content-Type: application/json; charset=utf-8

{
  "real_time_sequencing": {
    "real_time_sequencing_id": "seq_64b185388090ea21640c915e",
    "url": "{REAL_TIME_SEQUENCING_URL}"
  }
}
```

#### Request parameters
##### `data_center_url` *(required)*

The URL for the data center you want to communicate with. Possible choices are:

- `api-au.cronofy.com` - Australia
- `api-ca.cronofy.com` - Canada
- `api-de.cronofy.com` - Germany
- `api-sg.cronofy.com` - Singapore
- `api-uk.cronofy.com` - United Kingdom
- `api.cronofy.com` - United States

Find out more about [Cronofy's data centers](/developers/data-centers/index.md).
##### `API_KEY` *(required)*

The `client_secret` of the client.

##### `event` *(required)*

An object with the details of the event you wish to push into the user's selected calendar. Details of what parameters this object can hold can be found in the [create or update event](/developers/api/events/upsert-event/index.md) documentation.

Please note that `event.attendees` is not supported for Real Time Scheduling.

The `start` and `end` parameters should be omitted.

##### `availability` *(required)*

An object with the details of the availability query used to determine the available time periods for the user to choose for the sequence date and time. Details of what parameters this object can hold can be found in the [Sequenced Availability](/developers/api/scheduling/sequenced-availability/index.md) documentation.

Note that when a group requires only some of the members, the order the members are listed in will be used as a soft-preference for who is selected.
If you want to evenly distribute events to members across several tokens, you should shuffle this list so each request has the members in a random order.

##### `availability.sequence.event` *(required)*

An object with the details of the event you wish to push into the user's selected calendar. Details of what parameters this object can hold can be found in the [create or update event](/developers/api/events/upsert-event/index.md) documentation.

Please note that `event.attendees` is not supported for Real Time Scheduling.

The `start` and `end` parameters should be omitted.

#### Response parameters
##### `url`

The URL to direct the user to in order to authorize their calendar account and have the event inserted into their selected calendar.

#### Example callback
```http
POST {CALLBACK_URL_PATH} HTTP/1.1
Host: {CALLBACK_URL_HOST}
Content-Type: application/json; charset=utf-8
Cronofy-HMAC-SHA256: {Base64(HmacSHA256(body_bytes, CLIENT_SECRET))}

{
  "event": {
    "event_id": "qTtZdczOccgaPncGJaCiLg",
    "start": {
      "time": "2026-04-30T11:00:00Z",
      "tzid": "Europe/London"
    },
    "end": {
      "time": "2026-04-30T13:00:00Z",
      "tzid": "Europe/London"
    },
    "summary": "Product Manager Interview at Globex"
  },
  "participants": [
    { "sub": "acc_5ba21743f408617d1269ea1e" }
  ],
  "sequence":[
    {
      "sequence_id":"123",
      "event": {
        "event_id": "qTtZdczOccgaPncGJaCiLg",
        "start": "2026-04-30T11:00:00Z",
        "end": "2026-04-30T12:00:00Z",
        "summary": "Pre screen"
      },
      "participants":[ { "sub":"acc_5ba21743f408617d1269ea1e" } ]
    },
    {
      "sequence_id":"456",
      "event": {
        "event_id": "qTtZdczOccgaPncGJaCiLg",
        "start": "2026-04-30T12:00:00Z",
        "end": "2026-04-30T13:00:00Z",
        "summary": "Face to face"
      },
      "participants":[ { "sub": "acc_64b17d868090ea21640c914c" } ]
    }
  ]
}
```

#### Request headers
##### `Cronofy-HMAC-SHA256`

Can optionally be used to verify that the notification was sent by Cronofy.

This [HMAC](https://en.wikipedia.org/wiki/Hash-based_message_authentication_code) uses the SHA256 algorithm, keyed with the application's client secret, to generate a Base64 encoded hash of the request body.

When an application has multiple active client secrets, a value is generated for each active secret, separated by commas. For example:

```
Cronofy-HMAC-SHA256: {HMAC_FROM_SECRET_1},{HMAC_FROM_SECRET_2}
```

Examples are available in the [cronofy/notification-hmac-examples](https://github.com/cronofy/notification-hmac-examples) GitHub repository.
#### Request parameters
##### `event`

An object with the details of the end users event based on the period of time selected. Details of what parameters this object can hold can be found in the [create or update event](/developers/api/events/upsert-event/index.md) documentation.

##### `participants`

An array of all the participants which were selected for the events contained in the sequence based on their availability.

##### `sequence`

An array of available periods which match the selection made by the user in Real Time Scheduling.

##### `sequence.sequence_id`

A value to identify this part of the sequence.

##### `sequence.start`

The`start` of an available period as a [`Time`](/developers/api/data-types/index.md).

##### `sequence.end`

The`end` of an available period as a [`Time`](/developers/api/data-types/index.md).

##### `sequence.participants`

An array of participants that are available for the given period.

##### `sequence.participants.sub`

The internal Cronofy ID for the account, as an ASCII-only [`String`](/developers/api/data-types/index.md).

##### `selection_mode` *(optional)*

A [`String`](/developers/api/data-types/index.md) indicating how users select their time slot. Supports the following options:

- `no_confirm` (Default) - Selecting a time books the event immediately

- `confirm` - The user is taken to a confirmation page after selecting a time, before the event is booked


---
[Read in HTML](/developers/api/scheduling/real-time-sequencing/)

## In this section

- [Disable](/developers/api/scheduling/real-time-sequencing/disable/index.md) — Disables a Real Time Sequencing link.
