Skip to main content
images/boulevard.svg

Events

Triggering Webhook Types

The following event types are associated with the Appointment event payload from Boulevard.
  • Boulevard Appointment Active
  • Boulevard Appointment Arrived
  • Boulevard Appointment Cancelled
  • Boulevard Appointment Completed
  • Boulevard Appointment Confirmed
  • Boulevard Appointment Created
  • Boulevard Appointment Rescheduled
  • Boulevard Appointment Updated
{
  "appointment_datetime": "2024-03-15T10:00:00Z",
  "appointment_ends_at_datetime": "2024-03-15T11:00:00Z",
  "appointment_id": "urn:blvd:Appointment:12345",
  "appointment_location": {
    "address": {
      "city": "San Francisco",
      "country": "US",
      "line1": "1 Acacia Ave.",
      "line2": "Apt 3a.",
      "province": "Alberta",
      "state": "CA",
      "zip_code": "94117"
    },
    "external_id": "LOC001",
    "id": "urn:blvd:Location:loc123",
    "is_remote": false,
    "name": "Downtown Spa",
    "timezone": "America/New_York"
  },
  "appointment_notes": "Client requested quiet room",
  "appointment_services": [
    {
      "duration_minutes": 60,
      "end_at": "2024-03-15T11:00:00Z",
      "id": "urn:blvd:AppointmentService:abc123",
      "price_cents": 15000,
      "service": {
        "category_name": "Massage Therapy",
        "name": "Deep Tissue Massage"
      },
      "staff": {
        "email_address": "sarah.johnson@spa.com",
        "first_name": "Sarah",
        "id": "urn:blvd:Staff:staff123",
        "last_name": "Johnson",
        "phone_number": "+15551234567",
        "role_name": "Massage Therapist"
      },
      "staff_requested": true,
      "start_at": "2024-03-15T10:00:00Z"
    }
  ],
  "appointment_status": "APPOINTMENT_STATE_BOOKED",
  "calendar_links": {
    "google_calendar": "https://calendar.google.com/calendar/event?action=TEMPLATE&tmeid=abc123",
    "ics_download": "https://boulevard.com/calendar/appointment.ics",
    "microsoft_office": "https://outlook.live.com/calendar/0/deeplink/compose?subject=Appointment",
    "microsoft_outlook": "https://outlook.office.com/calendar/0/deeplink/compose?subject=Appointment",
    "yahoo_calendar": "https://calendar.yahoo.com/?v=60&view=d&type=20&title=Appointment"
  },
  "client": {
    "email_address": "jane.smith@email.com",
    "first_name": "Jane",
    "id": "urn:blvd:Client:client123",
    "last_name": "Smith",
    "phone_number": "+15551234567"
  },
  "client_message": "Looking forward to my appointment!",
  "created_at": "2024-03-01T09:00:00Z",
  "duration_minutes": 60,
  "is_grouped_appointment": false,
  "is_recurring": false,
  "is_remote": false,
  "manage_url": "https://book.boulevard.com/manage/abc123",
  "order_id": "urn:blvd:Order:67890"
}
{
  "appointment_datetime": "Start time for the appointment.",
  "appointment_ends_at_datetime": "End time for the appointment.",
  "appointment_id": "Unique identifier for the appointment in the Boulevard system.",
  "appointment_location": {
    "address": {
      "city": "City of the Address",
      "country": "Country for the Address.",
      "line1": "Line 1 of the Address",
      "line2": "Line 2 of the Address",
      "province": "Province of the Address.",
      "state": "State of the Address.",
      "zip_code": "Zip (postal) code for the Address."
    },
    "external_id": "External identifier for the location.",
    "id": "Unique identifier for the location.",
    "is_remote": "Indicates that the location is a remote location, and that appointments for this location are carried out remotely.",
    "name": "Name of the location.",
    "timezone": "Timezone associated with the location."
  },
  "appointment_notes": "Internal notes on the appointment.",
  "appointment_services": {
    "duration_minutes": "Duration for the service in minutes (including options).",
    "end_at": "The ISO time at which the appointment service is completely finished.",
    "id": "Unique identifier for the appointment service.",
    "price_cents": "Price of the service in cents, before any discounts or taxes are applied (including options).",
    "service": {
      "category_name": "Name of the Service Category",
      "name": "Name of the service."
    },
    "staff": {
      "email_address": "Email address of the staff member.",
      "first_name": "First name of the staff member.",
      "id": "Unique identifier for the staff member.",
      "last_name": "Last name of the staff member.",
      "phone_number": "Mobile phone number of the staff member.",
      "role_name": "Name of the staff member's role."
    },
    "staff_requested": "A boolean indicating whether the staff was specifically requested by the client.",
    "start_at": "The ISO time at which the appointment service begins."
  },
  "appointment_status": "The state of the appointment.",
  "calendar_links": {
    "google_calendar": "A deep link to add the appointment directly to Google Calendar.",
    "ics_download": "A downloadable ICS file to use for native calendar applications.",
    "microsoft_office": "A deep link to add the appointment directly to Microsoft Office 365.",
    "microsoft_outlook": "A deep link to add the appointment directly to Microsoft Outlook Online.",
    "yahoo_calendar": "A deep link to add the appointment directly to Yahoo Calendar."
  },
  "client": {
    "email_address": "Client's email address.",
    "first_name": "Client's first name.",
    "id": "Unique identifier for the client in the Boulevard system.",
    "last_name": "Client's last name.",
    "phone_number": "Client's mobile phone number."
  },
  "client_message": "Message provided by the client.",
  "created_at": "When the appointment was created (in Etc/UTC).",
  "duration_minutes": "The duration of the appointment in minutes.",
  "is_grouped_appointment": "Indicates whether the appointment is part of a group appointment.",
  "is_recurring": "Indicates if the appointment belongs to a recurring series.",
  "is_remote": "Indicates that the appointment is due to be carried out remotely.",
  "manage_url": "The URL at which a client can manage their own booking.",
  "order_id": "The id of the order that the appointment was checked out with."
}

Payload Field Details

Appointment
Event Payload