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

# Reschedule a booking

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

## Request

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

Reschedules a booking to a new time. 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). Validates the new slot against availability rules and existing bookings.

## Path parameters

- `id` string, uuid, required

## Query parameters

- `token` string

## Request body

- object
  - `new_start_time` string, date-time, required
  - `reason` string

## Response `200`

Booking rescheduled

- object
  - `id` string, uuid, required
  - `organization_id` string, uuid, required
  - `event_type_id` string, uuid, required
  - `calendar_connection_id` string, uuid, nullable, required
  - `assigned_host` object, nullable, required
    - `member_id` string, uuid, required
    - `name` string, nullable, required
    - `email` string, nullable, required
  - `status` 'confirmed' | 'cancelled' | 'rescheduled' | 'pending_payment', required
  - `is_test` boolean, required
  - `start_time` string, required
  - `end_time` string, required
  - `invitee_name` string, required
  - `invitee_email` string, required
  - `invitee_timezone` string, required
  - `attendee_count` integer, required
  - `attendees` object[], required
    - `id` string, uuid, required
    - `name` string, required
    - `email` string, required
    - `timezone` string, required
    - `is_primary` boolean, required
  - `notes` string, nullable, required
  - `cancel_token` string, required
  - `calendar_event_id` string, nullable, required
  - `meeting_url` string, nullable, required
  - `location` string, nullable, required
  - `metadata` object, required
  - `cancelled_at` string, nullable, required
  - `cancel_reason` string, nullable, required
  - `created_at` string, required
  - `updated_at` string, required

## Other responses

- `401`: Unauthorized — invalid or missing token/API key
- `404`: Booking not found
- `409`: Booking is cancelled or time slot unavailable
- `422`: Validation error (e.g. past start time)

---

[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)
