# Appointments

The example shows the **Appointment Booked**, however, the payload format is similar for other updates such as **Waitlisted, Visited, Resechduled, No-Show** and **Cancelled.**

## Appointment Updates

**(i) Payload Format:** This is an example of the **Appointment Booked** Payload data format and content that Whautomate will transmit to the configured endpoint. All other appointment updates follow similar payload format.

```json
{
  "event": {
    "id": "{{event.id}}",
    "type": "{{event.type}}",
    "timeStamp": "{{event.timeStamp}}",
    "key": "{{event.key}}"
  },
  "appointment": {
    "id": "{{appointment.id}}",
    "location": {
      "id": "{{appointment.location.id}}",
      "title": "{{appointment.location.title}}"
    },
    "client": {
      "id": "{{appointment.client.id}}",
      "fullName": "{{appointment.client.fullName}}",
      "countryCode": "{{appointment.client.countryCode}}",
      "phone": "{{appointment.client.phone}}",
      "email": "{{appointment.client.email}}"
    },
    "staff": {
      "id": "{{appointment.staff.id}}",
      "name": "{{appointment.staff.name}}"
    },
    "timezone": "{{appointment.timezone}}",
    "overrideTimeSlotValidation": "{{appointment.overrideTimeSlotValidation}}",
    "date": "{{appointment.date}}",
    "time": "{{appointment.time}}",
    "startTimeUTC": "{{appointment.startTimeUTC}}",
    "startTime": "{{appointment.startTime}}",
    "endTimeUTC": "{{appointment.endTimeUTC}}",
    "endTime": "{{appointment.endTime}}",
    "service": {
      "id": "{{appointment.service.id}}",
      "name": "{{appointment.service.name}}",
      "durationMinutes": "{{appointment.service.durationMinutes}}",
      "sellingPrice": "{{appointment.service.sellingPrice}}"
    },
    "addOnServices": "{{appointment.addOnServices}}",
    "bookedFrom": "{{appointment.bookedFrom}}",
    "status": "{{appointment.status}}",
    "appointmentType": "{{appointment.appointmentType}}",
    "notes": "{{appointment.notes}}",
    "paymentStatus": "{{appointment.paymentStatus}}",
    "meeting": {
      "hostUrl": "{{appointment.meeting.hostUrl}}",
      "guestUrl": "{{appointment.meeting.guestUrl}}",
      "password": "{{appointment.meeting.password}}"
    },
    "createdAt": "{{appointment.createdAt}}",
    "updatedAt": "{{appointment.updatedAt}}"
  }
}
```

(ii) Appointment Booked test Payload data 👇

```json
{
  "event": {
    "id": "ecKyX3x8IY",
    "type": "appointment_updates",
    "timeStamp": "2024-03-28T10:00:00Z",
    "key": "AZEa1bTPqE"
  },
  "appointment": {
    "id": "AZEa1bTPqE",
    "location": {
      "id": "YFoWQBDuAu",
      "title": "Whautomate"
    },
    "client": {
      "id": "XpSCitpwse",
      "fullName": "John Doe",
      "countryCode": "+65",
      "phone": "98765432",
      "email": "test@example.com"
    },
    "staff": {
      "id": "DCaR2sMN1o",
      "name": "John Doe"
    },
    "timezone": "Asia/Singapore",
    "date": "2024-03-25",
    "time": "01:00 PM",
    "startTimeUTC": "2024-03-30T05:00:00.000Z",
    "startTime": "2024-03-30T13:00:00.000Z",
    "endTimeUTC": "2024-03-30T05:15:00.000Z",
    "endTime": "2024-03-30T13:15:00.000Z",
    "service": {
      "id": "A8q4P2WibC",
      "name": "Demo Service",
      "durationMinutes": 15,
      "sellingPrice": 50
    },
    "addOnServices": [
      {
        "id": "X8r4I2WibC",
        "name": "Demo Add-On",
        "sellingPrice": 25
      }
    ],
    "bookedFrom": "API",
    "status": "Cancelled",
    "appointmentType": "LOCATION_VISIT",
    "paymentStatus": "",
    "notes": "Appointment Notes",
    "createdAt": "2024-03-28T10:00:00Z",
    "updatedAt": "2024-03-28T11:45:00Z"
  }
}
```
