---
title: "Update a booking"
method: PATCH
path: "/bookings/{code}.json"
tags: ["Booking Endpoints"]
---

# Update a booking

`PATCH /bookings/{code}.json`

Update an existing booking as an admin.

This uses the same booking update flow as staff members would from the admin dashboard.

You can update various booking details including time, room, pricing, customer information,
and other booking attributes.

The booking is identified by its code (same as the GET endpoint).

## Path parameters

- `code` string, required

## Headers

- `Authorization` string, required

## Request body

- BookingUpdate — Booking update parameters
  - `booking` object
    - `start_at` string, date-time — Start time of the booking
    - `end_at` string, date-time — End time of the booking
    - `room_id` integer — ID of the room for the booking
    - `price` integer — Price of the booking in cents/pence
    - `additional_notes` string — Additional notes for the booking
    - `studio_notes` string — Internal studio notes
    - `number_expected` integer — Expected number of attendees

## Response `200`

Booking updated successfully

- Booking
  - `group` ShortGroup
    - `name` string, required — The name of the group
    - `code` string, required — The code of the group - used internally by Jammed
    - `number_of_members` integer — The number of members in the group (only present in full group responses)
    - `number` integer, nullable — The number of members in the group (present in customer band responses)
    - `booking_count` integer — The number of bookings for this group
  - `customer` ShortCustomer
    - `name` string, required — The customers given full name
    - `email` string, required — The customers email address
    - `mobile` string — The customers mobile phone number
    - `avatar` string — The customers avatar image URL, if any
    - `reminders_opt_in` boolean — Whether this customer wants to receive reminders
    - `mailing_list_opt_in` boolean — Whether this customer wants to be on the mailing list
  - `room` ShortRoom
    - `name` string, required — The name of the room
    - `code` string, required — The code of the room - used internally by Jammed
  - `extras` ShortExtra[] — The addons/extras added to the booking
    - `name` string, required — The name of the extra
    - `category` string — The category of the extra
  - `custom_answers` BookingCustomAnswer[] — The responses to custom questions added to the booking
    - `question_id` integer — The ID of the question that was asked
    - `name` string — The name of the question
    - `response` string — The response/answer to the question
  - `source_data` object — The source metadata of the booking, how and where the booking was made
    - `source` string — The source of the booking: app, online, regular_booking etc.
    - `platform` string — The platform where the booking was made: booking_form, dashboard, staff_section, calendar, app etc.
    - `referrer` string — The referrer - the URL of the booking page
  - `code` string — The code of the booking - seen by customers on the booking page
  - `id` string — Same as code
  - `recording` boolean — Whether the room has been marked as a recording
  - `regular` boolean — Whether the booking is part of a regular booking
  - `online_booking` boolean — Whether the booking was made online by the customer
  - `created_at` integer — Unix timestamp from epoch
  - `updated_at` integer — Unix timestamp from epoch
  - `approved_at` integer — Unix timestamp from epoch - when the booking was approved (if approved)
  - `rejected_at` integer — Unix timestamp from epoch - when the booking was rejected (if rejected)
  - `price` integer — The price of the booking time only in cents/pence/units
  - `price_currency` string — The currency of the price
  - `title` string — The title of the booking - this is generated from the customer and group names
  - `start_at` integer — Unix timestamp from epoch
  - `end_at` integer — Unix timestamp from epoch
  - `duration` integer — The duration of the booking in seconds
  - `duration_hours` number — The duration of the booking in hours, e.g. 1pm-2.30pm = `2.5` hours
  - `duration_full_hours` integer — The duration of the booking in hours, rounded up to each full hour, e.g. 1pm-2.30pm = `3` hours
  - `activity_name` string — The name of the activity the booking is part of - e.g. 'Rehearsal'
  - `dates` string[] — The dates that the booking is part of in local time - given as strings YYYYMMDD format
  - `timezone` string — The timezone of the booking
  - `has_amount_due` boolean — Whether the booking still has an amount due
  - `remaining_amount` integer — The remaining amount due for the booking
  - `cancelled` boolean — Whether the booking has been cancelled
  - `taken_by` string — The name of the staff member who took the booking - if null, the booking was made by the customer themselves

## Other responses

- `401` — Unauthorized - Invalid API key
- `404` — Not found - Booking was not found
- `422` — Unprocessable - the booking parameters you provided are invalid

---

[API](https://skmtc.net/jammed-org/apis/jammed-bookings-api.md) · [All operations](https://skmtc.net/jammed-org/apis/jammed-bookings-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/jammed-org/jammed-bookings-api/versions/3fc6a6f91b06/schema)
