---
title: "Update an appointment"
method: PUT
path: "/api/appointments/{appointmentId}"
tags: ["Appointments"]
---

# Update an appointment

`PUT /api/appointments/{appointmentId}`

## Request

- Base URL: `https://api.hairdora.com`
- URL: `https://api.hairdora.com/api/appointments/{appointmentId}`
- Auth: one of:
  - HTTP basic
  - API key in header `Authorization`

Updates an appointment. Requires the `appointments:write` scope. Appointments owned by another organization respond 404. Fires the `appointment.updated` webhook.

## Path parameters

- `appointmentId` string, required

## Request body

- object
  - `_id` string
  - `salonId` string
  - `clientId` string
  - `startTime` string, date-time
  - `endTime` string, date-time
  - `status` string
  - `services` object[]
  - `reminders` object[]
  - `lastEditTime` string, date-time

## Response `200`

The updated appointment

- object
  - `_id` string
  - `salonId` string
  - `clientId` string
  - `startTime` string, date-time
  - `endTime` string, date-time
  - `status` string
  - `services` object[]
  - `reminders` object[]
  - `lastEditTime` string, date-time

## Other responses

- `404`: Not found (or owned by another organization)
- `default`: Error response

---

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