---
title: "Cancel a booking"
method: POST
path: "/v1/bookings/{id}/cancel"
tags: ["Bookings"]
---

# Cancel a booking

`POST /v1/bookings/{id}/cancel`

## Request

- Base URL: `https://api.astrocal.dev`
- URL: `https://api.astrocal.dev/v1/bookings/{id}/cancel`
- Auth: none required

Cancels a booking. Supports two authentication methods: a cancel token via `?token=` query param (for invitee self-service), or an API key via `Authorization: Bearer` header (for developers). Idempotent — cancelling an already-cancelled booking returns success.

## Path parameters

- `id` string, uuid, required

## Query parameters

- `token` string

## Request body

- object
  - `reason` string

## Response `200`

Booking cancelled

- object
  - `id` string, uuid, required
  - `status` 'cancelled', required
  - `cancelled_at` string, required

## Other responses

- `401`: Unauthorized — invalid or missing token/API key
- `404`: Booking not found

---

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