# Available Slots

### Description
Lists the available times for a [Scheduling Request](https://docs.cronofy.com/api-reference/managed-scheduling/scheduling-requests/index.md)
so your application can present them or choose one directly.

This is an [integration operation](https://docs.cronofy.com/api-reference/managed-scheduling/scheduling-requests/integration-operations/index.md). Read Integration Operations
first for the shared
[response envelope](https://docs.cronofy.com/api-reference/managed-scheduling/scheduling-requests/integration-operations/index.md),
[result vocabulary](https://docs.cronofy.com/api-reference/managed-scheduling/scheduling-requests/integration-operations/index.md),
[authentication](https://docs.cronofy.com/api-reference/managed-scheduling/scheduling-requests/integration-operations/index.md),
and error shapes.

Once you have the times, book one with [Select Slot](https://docs.cronofy.com/api-reference/managed-scheduling/scheduling-requests/select-slot/index.md),
using the `simple_select_slot_url` returned alongside them.

Listing requires the `organizational_unit_scheduling` scope.

You do not build this URL. It is returned as the [opaque](https://docs.cronofy.com/api-reference/managed-scheduling/scheduling-requests/integration-operations/index.md)
`simple_available_slots_url` under the request's [`integration_operations`](https://docs.cronofy.com/api-reference/managed-scheduling/scheduling-requests/integration-operations/index.md).
No request body is required.

### When a request qualifies
A Scheduling Request advertises `simple_available_slots_url` only when it can be
completed with just a time. That means it is awaiting slot selection, places a
single event, and needs no further input from the person booking.

Requests that need more than a time are excluded. Required data capture,
consent questions, and custom questions all require the person to complete the
booking page. Multi-event and sequence requests place an event per step, so a
single time can never complete them.

An excluded request has an empty `integration_operations` object, and the
person should be sent to the booking page via
[`recipient_operations.view_url`](https://docs.cronofy.com/api-reference/managed-scheduling/scheduling-requests/query/index.md).
If the operation is called by URL regardless, the response is `not_possible`
with a `result_detail` of `requires_more_input`.

### Example Request
Send the request to the `simple_available_slots_url` returned on the Scheduling
Request, exactly as given.

```http
POST {SIMPLE_AVAILABLE_SLOTS_URL} HTTP/1.1
Authorization: Bearer {API_KEY}
```

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

{
  "integration_operation_result": {
    "type": "available_slots",
    "result": "success",
    "integration_operations": {
      "simple_select_slot_url": "{SIMPLE_SELECT_SLOT_URL}"
    },
    "available_slots": [
      { "start": "2026-10-24T09:00:00Z", "end": "2026-10-24T09:30:00Z" },
      { "start": "2026-10-24T09:30:00Z", "end": "2026-10-24T10:00:00Z" },
      { "start": "2026-10-24T14:00:00Z", "end": "2026-10-24T14:30:00Z" }
    ],
    "suggested_slots": [
      { "start": "2026-10-24T09:00:00Z", "end": "2026-10-24T09:30:00Z" },
      { "start": "2026-10-24T14:00:00Z", "end": "2026-10-24T14:30:00Z" }
    ]
  },
  "scheduling_request": {
    "scheduling_request_id": "srq_7b9784257940f9bbbfcad097",
    "slot_selection": "pending",
    "primary_select_url": "https://app.cronofy.com/rts/wZ9tLbN4sWjH6yD1cF0a",
    "dashboard_url": "https://app.cronofy.com/scheduler/requests/7b9784257940f9bbbfcad097",
    "summary": "Intro call with Riya Patel",
    "duration": { "minutes": 30 },
    "recipient_operations": {
      "view_url": "https://app.cronofy.com/rts/wZ9tLbN4sWjH6yD1cF0a"
    },
    "integration_operations": {
      "simple_available_slots_url": "{SIMPLE_AVAILABLE_SLOTS_URL}"
    }
  }
}
```

### Request parameters
This operation takes no request body; the only input is the credential.

##### `API_KEY` *(required)*

An access token for the Organizational Unit or the `client_secret` of the linked
Internal Application. See [Authentication](https://docs.cronofy.com/api-reference/managed-scheduling/scheduling-requests/integration-operations/index.md).

### Response parameters
##### `integration_operation_result`

An [`Object`](https://docs.cronofy.com/api-reference/fundamentals/data-types/index.md) describing the outcome of the
operation. See [The response envelope](https://docs.cronofy.com/api-reference/managed-scheduling/scheduling-requests/integration-operations/index.md).

##### `integration_operation_result.type`

A [`String`](https://docs.cronofy.com/api-reference/fundamentals/data-types/index.md) of `available_slots` for this
operation.

##### `integration_operation_result.result`

A [`String`](https://docs.cronofy.com/api-reference/fundamentals/data-types/index.md) outcome, one of:

- `success`: the times were listed (`200`).

- `not_possible`: the request cannot be booked with just a time in its
current state (`409`); see `result_detail`.

##### `integration_operation_result.result_detail`

Present only when `result` is `not_possible`. A [`String`](https://docs.cronofy.com/api-reference/fundamentals/data-types/index.md)
explaining why, one of `no_longer_possible`, `superseded`, `requires_more_input`,
or `configuration_error`. See [result_detail](https://docs.cronofy.com/api-reference/managed-scheduling/scheduling-requests/integration-operations/index.md).

##### `integration_operation_result.integration_operations`

An [`Object`](https://docs.cronofy.com/api-reference/fundamentals/data-types/index.md) of the actions available next.
On a `success` it carries `simple_select_slot_url`; otherwise it is empty.

##### `integration_operation_result.integration_operations.simple_select_slot_url`

A [`String`](https://docs.cronofy.com/api-reference/fundamentals/data-types/index.md) URL to
[select a time](https://docs.cronofy.com/api-reference/managed-scheduling/scheduling-requests/select-slot/index.md). Returned here, alongside the times,
because a time cannot be selected before it has been listed.

##### `integration_operation_result.available_slots`

An array of the available times. Present when `result` is `success`. Each is an
[`Object`](https://docs.cronofy.com/api-reference/fundamentals/data-types/index.md) with `start` and `end`.

##### `integration_operation_result.available_slots.start`

A [`Time`](https://docs.cronofy.com/api-reference/fundamentals/data-types/index.md) representing the UTC start of the slot.

##### `integration_operation_result.available_slots.end`

A [`Time`](https://docs.cronofy.com/api-reference/fundamentals/data-types/index.md) representing the UTC end of the slot,
derived from the request's fixed duration.

##### `integration_operation_result.suggested_slots`

A small, spread-out subset of `available_slots` to highlight if you want to offer
a shortlist rather than the full list. Each has the same `start` and `end` shape
as `available_slots`.

##### `scheduling_request`

The full Scheduling Request, in the same shape as the
[Query](https://docs.cronofy.com/api-reference/managed-scheduling/scheduling-requests/query/index.md)
response. It travels alongside every envelope response so you can render the
current state without a second call.

### Error responses
Beyond the shared [errors](https://docs.cronofy.com/api-reference/managed-scheduling/scheduling-requests/integration-operations/index.md)
for authentication, authorization, an unknown token, and rate limiting, this
operation returns `not_possible` (`409`) when the request cannot be booked with
just a time. No times are returned and the accompanying `scheduling_request`
shows why. Because listing takes no input and never books, it never returns
`invalid` or `conflict`.

```json
{
  "integration_operation_result": {
    "type": "available_slots",
    "result": "not_possible",
    "result_detail": "requires_more_input",
    "integration_operations": {}
  },
  "scheduling_request": { ... }
}
```


---
[Read in HTML](https://docs.cronofy.com/api-reference/managed-scheduling/scheduling-requests/available-slots/)
