The appointment object

An appointment.

Read endpoints return appointments known to CRM Core (integration-synced and AI-scheduled). Appointments created through POST /v4/appointments are managed by a separate scheduler and are not returned by the read endpoints.

AttributeTypeDescription
statusstringStatus of the appointment. On the read endpoints this is only the customer's confirmation response through Podium: confirmed, cancelled when declined, and null when Podium holds no confirmation for the appointment; the integration's own status is externalStatus. completed, no_show and unconfirmed occur only on appointments created through this API. Possible values: ["cancelled", "completed", "confirmed", "no_show", "unconfirmed"]
typestringType of appointment. Possible values: ["in_person", "virtual"]
descriptionstringDescription of the appointment.
titlestringTitle of the appointment.
location.uidstringPodium unique identifier for location.
uidstringPodium unique identifier for appointment.
createdAtstringWhen the appointment was created.
updatedAtstringWhen the appointment was updated.
contact.uidstringPodium unique identifier for contact.
confirmation.statusstringPossible values: ["confirmed", "declined"]
confirmation.updatedAtstringWhen the confirmation response was recorded.
aiGeneratedbooleanWhether Podium's AI scheduled the appointment.
appointmentTypestringThe appointment type as CRM Core records it, e.g. service.
assignedUser.uidstringPodium unique identifier for user.
contactNamestringName of the contact.
contactPhoneNumberstringPhone number of the contact.
customFieldsarrayCustom fields on the appointment as name/value pairs, sorted by name. Names are the integration's own keys, returned verbatim. The read endpoints return an empty list when the appointment carries no custom fields, while the create response returns null. The Podium-written podium_appointment_confirmation_status and podium_appointment_confirmation_updated_at keys appear here as pairs and are also surfaced structured in confirmation.
customFields[].namestringThe custom field's key.
customFields[].valueThe custom field's value: a string, number, boolean, or list of strings.
datetimestringDate and time of the appointment.
durationMinintegerHow many miuntes long the appointment is.
endAtstringWhen the appointment ends.
externalIdstringThe integration's own identifier for the appointment.
externalStatusstringThe integration's own status, e.g. Scheduled.
integrationUidstringPodium unique identifier for integration that synced the appointment.
notestringNote that is attached to the appointment.
startAtstringWhen the appointment starts.
{
  "status": "cancelled",
  "type": "in_person",
  "description": "",
  "title": "",
  "location": {
    "uid": "00000000-0000-0000-0000-000000000000"
  },
  "uid": "00000000-0000-0000-0000-000000000000",
  "createdAt": "2015-01-23T23:50:07Z",
  "updatedAt": "2015-01-23T23:50:07Z",
  "contact": {
    "uid": "00000000-0000-0000-0000-000000000000"
  },
  "confirmation": {
    "status": "confirmed",
    "updatedAt": "2015-01-23T23:50:07Z"
  },
  "aiGenerated": false,
  "appointmentType": "",
  "assignedUser": {
    "uid": "00000000-0000-0000-0000-000000000000"
  },
  "contactName": "",
  "contactPhoneNumber": "",
  "customFields": [
    {
      "name": "",
      "value": null
    }
  ],
  "datetime": "2015-01-23T23:50:07Z",
  "durationMin": 0,
  "endAt": "2015-01-23T23:50:07Z",
  "externalId": "",
  "externalStatus": "",
  "integrationUid": "00000000-0000-0000-0000-000000000000",
  "note": "",
  "startAt": "2015-01-23T23:50:07Z"
}