---
title: "Bookable slots from a coach's calendar, live, minus what they already have on. `{ slots, source }` — `source` is 'live', 'mirror' (GHL unreachable, last swept copy) or 'manual' (app-side hours)."
method: GET
path: "/api/scheduling/coach/{coachId}/free-slots"
tags: ["scheduling"]
---

# Bookable slots from a coach's calendar, live, minus what they already have on. \`{ slots, source }\` — \`source\` is 'live', 'mirror' (GHL unreachable, last swept copy) or 'manual' (app-side hours).

`GET /api/scheduling/coach/{coachId}/free-slots`

## Request

- Base URL: `https://api.rewritelifestyle.ai` (the document declares no server; this is the origin it was published from)
- URL: `https://api.rewritelifestyle.ai/api/scheduling/coach/{coachId}/free-slots`
- Auth: HTTP bearer

## Path parameters

- `coachId` number, required

## Query parameters

- `startDate` string, required
- `endDate` string, required
- `timezone` string
- `excludeEventId` number

## Response `200`

## Changes

- **2026-09-17** `c79f95b0fabc`: 1 info
  - added the new optional `query` request parameter `excludeEventId`
- **2026-09-12** `0d5ef02a4fbe`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/rewritelifestyle/apis/rewrite-lifestyle-api/changes/api/scheduling/coach/:coachId/free-slots/get.md)

---

[API](https://skmtc.dev/rewritelifestyle/apis/rewrite-lifestyle-api.md) - [All operations](https://skmtc.dev/rewritelifestyle/apis/rewrite-lifestyle-api/llms.txt) - [OpenAPI document](https://skmtc.dev/rewritelifestyle/apis/rewrite-lifestyle-api/revisions/28695827f27a?raw)
