---
title: "Find available slots"
method: POST
path: "/v1/appointments/recur_slots"
tags: ["Appointments"]
---

# Find available slots

`POST /v1/appointments/recur_slots`

Times when the selected services can be performed back-to-back for a provider.

Requires the `appointments:read` scope.

## Request body

- object
  - `provider` integer, required
  - `services` integer[], required
  - `date` string, date — Single date → response collapses to { times: [...] }
  - `dates` string[]
  - `frequency` 'daily' | 'weekly' | 'monthly'
  - `count` integer

## Response `200`

{ options: [{time, dates}] } or { times: [...] } for a single date

## Other responses

- `401` — Missing or invalid API key
- `402` — Monthly quota exceeded
- `403` — Insufficient scope, inactive subscription, or the clinic hasn't authorized API access
- `429` — Rate limit exceeded — see Retry-After header
- `502` — Upstream unavailable

---

[API](https://skmtc.dev/yezza/apis/yezza-clinic-api-external-access.md) · [All operations](https://skmtc.dev/yezza/apis/yezza-clinic-api-external-access/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/yezza/yezza-clinic-api-external-access/revisions/fb0639413542/schema)
