---
title: "Delete an on-call schedule"
method: DELETE
path: "/api/v1/schedules/{schedule}"
tags: ["On-call schedules"]
---

# Delete an on-call schedule

`DELETE /api/v1/schedules/{schedule}`

## Request

- Base URL: `https://wardenpoint.com` (the document declares no server; this is the origin it was published from)
- URL: `https://wardenpoint.com/api/v1/schedules/{schedule}`
- Auth: API key in header `X-API-Key`

Hard delete: every shift and handover of this schedule goes with it. There is no undo and no soft-delete. A schedule that an escalation step still points at answers 409 with the list of what points at it and stays — the reference lives as a plain string inside the step JSON, with no foreign key to protect it, so deleting would leave that step resolving nobody. Steps count wherever they live: in a policy, or inline in a group notification setting. To take a rotation out of use without losing its history, PATCH is_active to false instead. Repeating the call returns 404.

## Path parameters

- `schedule` string, uuid, required

## Response `204`

Deleted.

## Other responses

- `401`: API key missing, invalid, revoked or expired.
- `403`: API key lacks the config.write ability, or the schedule belongs to another company.
- `404`: No schedule with this UUID, or on-call schedules are switched off for this deployment.
- `409`: Something still points at it, so it was NOT deleted. The body carries `code: ENTITY_IN_USE` and a `references` list — each entry names what holds it (`type`, `uuid`, `name`, and sometimes a `detail` like «2 shifts»). Detach it there and repeat; there is no force flag.

---

[API](https://skmtc.dev/wardenpoint/apis/wardenpoint-api.md) · [All operations](https://skmtc.dev/wardenpoint/apis/wardenpoint-api/llms.txt) · [OpenAPI document](https://skmtc.dev/wardenpoint/apis/wardenpoint-api/revisions/259ee445728e?raw)
