When any detail of an existing appointment changes — such as the time, status, assigned user, or notes — HoopAI sends an AppointmentUpdate event to all configured webhook endpoints. This event is useful for keeping downstream systems in sync when appointments are rescheduled, confirmed, or marked as a no-show.
Payload
| Field | Type | Description |
|---|
type | string | Always "AppointmentUpdate" |
locationId | string | Account ID the appointment belongs to |
appointment.id | string | Unique ID of the updated appointment |
appointment.address | string | Meeting location or URL (e.g., a video conference link) |
appointment.title | string | Display name of the appointment |
appointment.calendarId | string | ID of the calendar this appointment is booked on |
appointment.contactId | string | ID of the contact associated with the appointment |
appointment.groupId | string | ID of the calendar group, if the calendar belongs to one |
appointment.appointmentStatus | string | Updated status of the appointment (e.g., confirmed, cancelled, showed, noshow) |
appointment.assignedUserId | string | ID of the team member the appointment is assigned to |
appointment.users | array | List of user IDs associated with the appointment |
appointment.notes | string | Internal notes attached to the appointment |
appointment.source | string | How the appointment was originally created (e.g., booking_widget, manual) |
appointment.startTime | string | ISO 8601 start date and time of the appointment |
appointment.endTime | string | ISO 8601 end date and time of the appointment |
appointment.dateAdded | string | ISO 8601 timestamp when the appointment record was created |
appointment.dateUpdated | string | ISO 8601 timestamp when the appointment was last updated |
Example payload
{
"type": "AppointmentUpdate",
"locationId": "0007BWpSzSwfiuSl0tR2",
"appointment": {
"id": "0007BWpSzSwfiuSl0tR2",
"address": "https://example.com/meeting",
"title": "Appointment with Hoop Dev team",
"calendarId": "BqTwX8QFwXzpegMve9EQ",
"contactId": "9NkT25Vor1v4aQatFsv2",
"groupId": "9NkT25Vor1v4aQatFsv2",
"appointmentStatus": "confirmed",
"assignedUserId": "YlWd2wuCAZQzh2cH1fVZ",
"users": ["YlWd2wuCAZQzh2cH1fVZ", "9NkT25Vor1v4aQatFsv2"],
"notes": "Some dummy note",
"source": "booking_widget",
"startTime": "2023-09-25T16:00:00+05:30",
"endTime": "2023-09-25T16:00:00+05:30",
"dateAdded": "2023-09-25T16:00:00+05:30",
"dateUpdated": "2023-09-25T16:00:00+05:30"
}
}
Last modified on March 5, 2026