---
title: "Reserve Appointment"
method: PUT
path: "/consumer/v1/appointments/{id}/reserve"
tags: ["Appointments"]
---

# Reserve Appointment

`PUT /consumer/v1/appointments/{id}/reserve`

Use this endpoint to **Reserve** an appointment. Only appointments with an "IN" status, Initial, can be reserved. A valid **appointment id** is required. Use the appointment id returned from the initial _POST /consumer/v1/appointments_ endpoint.

**NOTE: Reservations are different from Bookings as reservations are a two-step booking process that must be managed by the API consumer.** An appointment that is reserved is not completely booked until other business conditions have been met. For example, an appointment may be reserved if it is not yet assigned to a resource or until the customer or resource explicitly confirms it.

With reservations you have the ability to notify the customer of a reservation prior to officially booking and the workflow can be designed to indicate what conditions will need to be met in order to convert the reservation to a complete booking. A reservation converts to a complete booking when it is either Confirmed or Booked.

**IMPORTANT: A reserved appointment time will not be released, i.e., become available to others, until it is Cancelled. The booking timer is not used with reserved appointments.**

For more information: [Appointments Overview](https://onsched.readme.io/docs/appointments-overview)

## Path parameters

- `id` string, required

## Query parameters

- `sendNotifications` boolean

## Request body

- AppointmentReserveModel
  - `email` string, nullable
  - `name` string, nullable
  - `phone` string, nullable
  - `phoneType` string, nullable
  - `phoneExt` string, nullable
  - `customerMessage` string, nullable
  - `notes` string, nullable
  - `customFields` CustomFieldInputModel
    - `field1` string, nullable
    - `field2` string, nullable
    - `field3` string, nullable
    - `field4` string, nullable
    - `field5` string, nullable
    - `field6` string, nullable
    - `field7` string, nullable
    - `field8` string, nullable
    - `field9` string, nullable
    - `field10` string, nullable
  - `appointmentBookingFields` BookingFieldItem[], nullable
    - `name` string, nullable
    - `value` string, nullable
  - `customerBookingFields` BookingFieldItem[], nullable
    - `name` string, nullable
    - `value` string, nullable

## Response `200`

Success

---

[API](https://skmtc.net/onsched/apis/onsched-consumer-api.md) · [All operations](https://skmtc.net/onsched/apis/onsched-consumer-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/onsched/onsched-consumer-api/versions/1cd2a28a0305/schema)
