BookingIntent

A booking intent that tracks the lifecycle of a booking attempt.

A booking intent that tracks the lifecycle of a booking attempt.

Example

{  "abandoned_at": null,  "appointment": null,  "booking_policy": {    "hold": {      "duration": "PT10M",      "enabled": true    }  },  "client": null,  "client_data": {    "email": "jane@example.com",    "fields": {      "age": 30    },    "first_name": "Jane",    "last_name": "Doe",    "locale": "en",    "phone": "+15551234567",    "reference_id": "ext_123",    "time_zone": "America/New_York"  },  "completed_at": null,  "created_at": "2026-02-22T10:00:00Z",  "end_at": {    "local": "2026-02-23T10:30:00-05:00",    "object": "zoned_date_time",    "time_zone": "America/New_York",    "unix_ts": 1771947000,    "utc": "2026-02-23T15:30:00Z"  },  "errors": null,  "hold_until": "2026-02-22T10:10:00Z",  "id": "bi_abc123def456abc123def456",  "locked_fields": [    "provider_id",    "slot"  ],  "metadata": {    "source": "web"  },  "object": "booking_intent",  "provider": {    "created_at": "2017-09-12T12:34:55Z",    "display_name": "John Smith",    "email": "john@example.com",    "first_name": "John",    "id": "prov_d025a96ac0c6",    "last_name": "Smith",    "metadata": {      "external_id": "123"    },    "object": "provider",    "time_zone": "America/New_York",    "updated_at": "2017-09-13T10:11:12Z"  },  "requirements": {    "booking": {      "complete": true    },    "info": {      "complete": false    },    "submissions": [      {        "complete": false,        "form_id": "frm_abc123def456"      }    ]  },  "service": {    "appointment_type": "in_person",    "booking_policy": {      "advance_notice": {        "enabled": true,        "minimum_duration": "PT1H"      },      "allow_booking": true,      "disabled_message": "Booking is disabled for this service.",      "hold": {        "duration": "PT10M",        "enabled": true      },      "maximize_utilization": {        "enabled": true      }    },    "buffer_policy": {      "after_duration": "PT1H",      "before_duration": "PT15M",      "enabled": true    },    "cancellation_policy": {      "advance_notice": {        "enabled": true,        "minimum_duration": "PT1H"      },      "allow_cancellation": true,      "disabled_message": "Cancellation is disabled for this service."    },    "change_policy_text": "Appointments within 48 hours cannot be canceled or rescheduled online. Please call our office.",    "created_at": "2025-02-17T17:49:19Z",    "duration": "PT1H30M",    "forms": [      {        "created_at": "2025-02-17T17:49:19Z",        "form_id": "frm_d025a96ac0c6",        "form_name": "Intake Form",        "id": "sf_d025a96ac0c6",        "object": "service_form",        "sort_order": 1,        "updated_at": "2025-02-17T17:49:19Z"      }    ],    "id": "srv_d025a96ac0c6",    "internal_name": null,    "metadata": {      "external_id": "123"    },    "name": "Initial Consult",    "object": "service",    "provider_notifications": {      "additional_recipients": [        "admin@example.com"      ],      "notify_provider": true,      "types": [        {          "type": "new_appointment"        }      ]    },    "rescheduling_policy": {      "advance_notice": {        "enabled": true,        "minimum_duration": "PT1H"      },      "allow_rescheduling": true,      "disabled_message": "Rescheduling is disabled for this service."    },    "slot_rules": [      {        "recurrence_rule": {          "byday": [            "mo",            "we",            "fr"          ],          "freq": "weekly"        },        "start_times": [          "09:00",          "10:00"        ]      }    ],    "updated_at": "2025-02-17T17:49:19Z"  },  "start_at": {    "local": "2026-02-23T10:00:00-05:00",    "object": "zoned_date_time",    "time_zone": "America/New_York",    "unix_ts": 1771945200,    "utc": "2026-02-23T15:00:00Z"  },  "status": "slot_selected",  "submissions": [],  "updated_at": "2026-02-22T10:00:00Z",  "workflow": {    "available_steps": [      "booking",      "info",      "form:frm_abc123def456"    ],    "can_change_slot": true,    "can_complete": false,    "defunct_reason": null,    "is_defunct": false,    "resume_step": "info"  }}