Skip to main content
Appointments are treated as scheduled tickets, so the appointment ID and ticket ID are the same. Once an appointment is checked in, it is handled like a regular ticket. Checking in an appointment triggers a regular ticket_created webhook event. Appointment events include the same Ticket structure in data as Ticket events, with an additional nested data.appointment property containing the following fields: Timestamps use RFC 3339 format in UTC, with millisecond precision, for example: 2026-07-14T16:19:01.085Z.

Appointment created

This HTTP request is sent to the registered URL every time an Appointment was created in Qminder. This includes appointments created via Visitor Website and in Qminder Dashboard. You can use data.source field to detect the origin of the appointment:
  • MICROSITE for Visitor Website
  • MANUAL for Qminder Dashboard
This HTTP request includes the following data fields in its request body:

Appointment changed

This HTTP request is sent to the registered URL every time an Appointment was changed in Qminder.
This HTTP request includes the following data fields in its request body:

Appointment cancelled

This HTTP request is sent to the registered URL every time an Appointment was cancelled in Qminder. If appointment was cancelled by visitor via Visitor Website, then
  • data.status is SCHEDULING_CANCELLED_BY_VISITOR
  • data.canceller is null
If appointment was cancelled by user, then
  • data.status is SCHEDULING_CANCELLED
  • data.canceller is set to the user id who cancelled the appointment
This HTTP request includes the following data fields in its request body:

Appointment marked as no-show

This HTTP request is sent to the registered URL every time an Appointment was marked as no-show in Qminder Dashboard.
This HTTP request includes the following data fields in its request body: