Appointments

This API documentation serves as your guide to interacting with the appointment management system within Whautomate. It allows you to sync appointments between multiple systems

The API offers a variety of functionalities through the following methods:

  • Generate Available Slots:

    This method retrieves information about available appointment slots within a specific timeframe.

  • Search or Retrieve Appointments:

    This method allows you to search for existing appointments based on various criteria (e.g., date range, participant, service or staff). You can also retrieve a list of all appointments.

  • Get Individual Appointment By Id:

    This method retrieves detailed information about a specific appointment by providing its unique identifier.

  • Book Appointment:

    This method allows you to create a new appointment by specifying details like date, time, service, and participants.

  • Reschedule Appointment:

    This method enables you to reschedule an existing appointment, potentially modifying date, time, or other relevant details.

  • Cancel Appointment:

    This method allows you to cancel an existing appointment, removing it from the schedule.

By leveraging this API, you can streamline the appointment management process, ensuring efficient scheduling and access to appointment information.

Generate available Slots

get
Query parameters
timezonestringOptional
staffIdstringOptional
datestringOptional
locationIdstringOptional
nextThreeDaysstringOptional
serviceIdstringOptional
Header parameters
x-api-keystringRequired
Responses
200
200 response
application/json
get
GET /v1/appointments/slots HTTP/1.1
Host: <YOUR HOST>
x-api-key: text
Accept: */*
200

200 response

[
  {
    "date": "2025-06-21T15:07:39.751Z",
    "timezone": "text",
    "slots": [
      {
        "startTime": "text",
        "endTime": "text"
      }
    ]
  }
]

Search or Retrieve Appointments

get
Query parameters
limitstringOptional
staffIdstringOptional
clientIdstringOptional
endDatestringOptional
locationIdstringOptional
pagestringOptional
startDatestringOptional
Header parameters
x-api-keystringRequired
Responses
200
200 response
application/json
get
GET /v1/appointments HTTP/1.1
Host: <YOUR HOST>
x-api-key: text
Accept: */*
200

200 response

[
  {
    "id": "text",
    "location": {
      "id": "text",
      "title": "text"
    },
    "client": {
      "id": "text",
      "fullName": "text"
    },
    "staff": {
      "id": "text",
      "name": "text"
    },
    "date": "2025-06-21",
    "time": "text",
    "timezone": "text",
    "startTimeUTC": "2025-06-21T15:07:39.751Z",
    "startTime": "2025-06-21T15:07:39.751Z",
    "endTimeUTC": "2025-06-21T15:07:39.751Z",
    "endTime": "2025-06-21T15:07:39.751Z",
    "service": {
      "id": "text",
      "name": "text",
      "durationMinutes": 1,
      "sellingPrice": 1
    },
    "addOnServices": [
      {
        "id": "text",
        "name": "text",
        "durationMinutes": 1,
        "sellingPrice": 1
      }
    ],
    "bookedFrom": "text",
    "status": "text",
    "appointmentType": "text",
    "paymentStatus": "text"
  }
]

Get Individual Appointment By Id

get
Path parameters
appointmentIdstringRequired
Header parameters
x-api-keystringRequired
Responses
200
200 response
application/json
get
GET /v1/appointments/{appointmentId} HTTP/1.1
Host: <YOUR HOST>
x-api-key: text
Accept: */*
200

200 response

{
  "id": "text",
  "location": {
    "id": "text",
    "title": "text"
  },
  "client": {
    "id": "text",
    "fullName": "text"
  },
  "staff": {
    "id": "text",
    "name": "text"
  },
  "date": "2025-06-21",
  "time": "text",
  "timezone": "text",
  "startTimeUTC": "2025-06-21T15:07:39.751Z",
  "startTime": "2025-06-21T15:07:39.751Z",
  "endTimeUTC": "2025-06-21T15:07:39.751Z",
  "endTime": "2025-06-21T15:07:39.751Z",
  "service": {
    "id": "text",
    "name": "text",
    "durationMinutes": 1,
    "sellingPrice": 1
  },
  "addOnServices": [
    {
      "id": "text",
      "name": "text",
      "durationMinutes": 1,
      "sellingPrice": 1
    }
  ],
  "bookedFrom": "text",
  "status": "text",
  "appointmentType": "text",
  "paymentStatus": "text"
}

Book Appointment

post
Header parameters
x-api-keystringRequired
Body
datestring · dateRequired
timestringRequired
overrideTimeSlotValidationbooleanOptional
timezonestringOptional
notesstringOptional
Responses
200
200 response
application/json
post
POST /v1/appointments HTTP/1.1
Host: <YOUR HOST>
x-api-key: text
Content-Type: application/json
Accept: */*
Content-Length: 282

{
  "client": {
    "id": "text",
    "fullName": "text",
    "countryCode": "text",
    "phone": "text"
  },
  "location": {
    "id": "text"
  },
  "service": {
    "id": "text"
  },
  "date": "2025-06-21",
  "time": "text",
  "overrideTimeSlotValidation": true,
  "staff": {
    "id": "text"
  },
  "timezone": "text",
  "notes": "text",
  "addOnServices": [
    {
      "id": "text"
    }
  ]
}
200

200 response

{
  "id": "text",
  "location": {
    "id": "text",
    "title": "text"
  },
  "client": {
    "id": "text",
    "fullName": "text"
  },
  "staff": {
    "id": "text",
    "name": "text"
  },
  "date": "2025-06-21",
  "time": "text",
  "timezone": "text",
  "startTimeUTC": "2025-06-21T15:07:39.751Z",
  "startTime": "2025-06-21T15:07:39.751Z",
  "endTimeUTC": "2025-06-21T15:07:39.751Z",
  "endTime": "2025-06-21T15:07:39.751Z",
  "service": {
    "id": "text",
    "name": "text",
    "durationMinutes": 1,
    "sellingPrice": 1
  },
  "addOnServices": [
    {
      "id": "text",
      "name": "text",
      "durationMinutes": 1,
      "sellingPrice": 1
    }
  ],
  "bookedFrom": "text",
  "status": "text",
  "appointmentType": "text",
  "paymentStatus": "text"
}

Reschedule Appointment

post
Header parameters
x-api-keystringRequired
Body
appointmentIdstringRequired
datestring · dateRequired
timestringRequired
timezonestringOptional
Responses
200
200 response
application/json
post
POST /v1/appointments/reschedule HTTP/1.1
Host: <YOUR HOST>
x-api-key: text
Content-Type: application/json
Accept: */*
Content-Length: 101

{
  "appointmentId": "text",
  "location": {
    "id": "text"
  },
  "date": "2025-06-21",
  "time": "text",
  "timezone": "text"
}
200

200 response

{
  "id": "text",
  "location": {
    "id": "text",
    "title": "text"
  },
  "client": {
    "id": "text",
    "fullName": "text"
  },
  "staff": {
    "id": "text",
    "name": "text"
  },
  "date": "2025-06-21",
  "time": "text",
  "timezone": "text",
  "startTimeUTC": "2025-06-21T15:07:39.751Z",
  "startTime": "2025-06-21T15:07:39.751Z",
  "endTimeUTC": "2025-06-21T15:07:39.751Z",
  "endTime": "2025-06-21T15:07:39.751Z",
  "service": {
    "id": "text",
    "name": "text",
    "durationMinutes": 1,
    "sellingPrice": 1
  },
  "addOnServices": [
    {
      "id": "text",
      "name": "text",
      "durationMinutes": 1,
      "sellingPrice": 1
    }
  ],
  "bookedFrom": "text",
  "status": "text",
  "appointmentType": "text",
  "paymentStatus": "text"
}

Cancel Appointment

post
Header parameters
x-api-keystringRequired
Body
appointmentIdstringRequired
cancellationReasonstringOptional
Responses
200
200 response
application/json
Responseobject · EmptySchema
post
POST /v1/appointments/cancel HTTP/1.1
Host: <YOUR HOST>
x-api-key: text
Content-Type: application/json
Accept: */*
Content-Length: 77

{
  "appointmentId": "text",
  "location": {
    "id": "text"
  },
  "cancellationReason": "text"
}
200

200 response

{}

Last updated