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.
| Attribute | Type | Description |
|---|---|---|
| status | string | Status 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"] |
| type | string | Type of appointment. Possible values: ["in_person", "virtual"] |
| description | string | Description of the appointment. |
| title | string | Title of the appointment. |
| location.uid | string | Podium unique identifier for location. |
| uid | string | Podium unique identifier for appointment. |
| createdAt | string | When the appointment was created. |
| updatedAt | string | When the appointment was updated. |
| contact.uid | string | Podium unique identifier for contact. |
| confirmation.status | string | Possible values: ["confirmed", "declined"] |
| confirmation.updatedAt | string | When the confirmation response was recorded. |
| aiGenerated | boolean | Whether Podium's AI scheduled the appointment. |
| appointmentType | string | The appointment type as CRM Core records it, e.g. service. |
| assignedUser.uid | string | Podium unique identifier for user. |
| contactName | string | Name of the contact. |
| contactPhoneNumber | string | Phone number of the contact. |
| customFields | array | Custom 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[].name | string | The custom field's key. |
| customFields[].value | The custom field's value: a string, number, boolean, or list of strings. | |
| datetime | string | Date and time of the appointment. |
| durationMin | integer | How many miuntes long the appointment is. |
| endAt | string | When the appointment ends. |
| externalId | string | The integration's own identifier for the appointment. |
| externalStatus | string | The integration's own status, e.g. Scheduled. |
| integrationUid | string | Podium unique identifier for integration that synced the appointment. |
| note | string | Note that is attached to the appointment. |
| startAt | string | When 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"
}