---
title: "Reschedule and/or edit details"
method: PATCH
path: "/appointments/{id}"
tags: ["Appointments"]
---

# Reschedule and/or edit details

`PATCH /appointments/{id}`

## Request

- Base URL: `https://simpledock.ai/api/v1`
- URL: `https://simpledock.ai/api/v1/appointments/{id}`
- Auth: HTTP bearer

Reschedule an appointment (send `startTime`, and optionally `doorId`) and/or edit its details. Rescheduling revalidates availability and returns 409 if the new slot is not bookable.

## Path parameters

- `id` string, required

## Request body

- PatchAppointment: Provide startTime/doorId to reschedule, and/or any detail fields to edit.
  - `startTime` string, date-time
  - `doorId` string
  - `companyName` string
  - `contactEmail` string, email
  - `contactName` string, nullable
  - `contactPhone` string, nullable
  - `driverName` string, nullable
  - `driverPhone` string, nullable
  - `trailerNumber` string, nullable
  - `poReference` string, nullable
  - `notes` string, nullable
  - `driverNotes` string, nullable

## Response `200`

Success

- object
  - `data` Appointment, required
    - `id` string, required
    - `status` 'PENDING' | 'CONFIRMED' | 'CANCELLED' | 'COMPLETED' | 'NO_SHOW', required
    - `locationId` string, required
    - `startTime` string, date-time, required
    - `endTime` string, date-time, required
    - `companyName` string, required
    - `contactEmail` string, required
    - `contactName` string, nullable
    - `contactPhone` string, nullable
    - `driverName` string, nullable
    - `driverPhone` string, nullable
    - `trailerNumber` string, nullable
    - `poReference` string, nullable
    - `notes` string, nullable
    - `driverNotes` string, nullable
    - `customFields` object, nullable, required
    - `arrivalStatus` string, nullable
    - `estimatedDelay` integer, nullable
    - `approvedAt` string, date-time, nullable
    - `rejectedAt` string, date-time, nullable
    - `cancelledAt` string, date-time, nullable
    - `checkedInAt` string, date-time, nullable: When dock staff marked the truck arrived.
    - `completedAt` string, date-time, nullable: When the appointment was marked completed (the truck left).
    - `rejectionReason` string, nullable
    - `createdAt` string, date-time, required
    - `updatedAt` string, date-time, required
    - `door` object, required
      - `id` string, required
      - `name` string, required
    - `appointmentType` AppointmentTypeSummary, required
      - `id` string
      - `name` string
      - `loadType` string
      - `direction` string
      - `durationMinutes` integer

## Other responses

- `400`: Invalid request
- `401`: Unauthorized — missing, invalid, or expired key
- `402`: Payment required — a Pro feature or a Free plan limit
- `403`: Forbidden — key is missing the required scope
- `404`: Not found
- `409`: Conflict
- `429`: Rate limited — slow down and retry after Retry-After

---

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