> ## Documentation Index
> Fetch the complete documentation index at: https://klipy.ai/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# booking.created

> Outbound webhook when a booking is confirmed and created.

# `booking.created`

## What this event means

`booking.created` is emitted when a booking is confirmed via the Klipy scheduling link. This indicates a meeting has been booked by an external participant.

## Webhook `type`

`booking.created`

## Internal source mapping

| Internal event    | Trigger path                                                                                            |
| ----------------- | ------------------------------------------------------------------------------------------------------- |
| `booking.created` | Nylas booking lifecycle webhook `booking.created` type is received and the booking record is confirmed. |

## Payload example

```json theme={null}
{
  "type": "booking.created",
  "object": "event",
  "data": {
    "id": "jx7abc123def456",
    "title": "30 min intro call",
    "description": "Let's connect and discuss your needs.",
    "status": "booked",
    "start_time": 1748736000000,
    "end_time": 1748737800000,
    "timezone": "America/New_York",
    "organizer": {
      "name": "Jane Smith",
      "email": "jane@yourcompany.com"
    },
    "attendee": {
      "name": "Alex Johnson",
      "email": "alex@prospect.com"
    },
    "guests": [],
    "external_id": "bkg_x9y8z7",
    "cancellation_reason": null
  }
}
```

## Delivery and idempotency handling

* Use `data.id` as the primary idempotency key.
* Use `data.external_id` to correlate with Nylas booking records if needed.
* `data.start_time` and `data.end_time` are Unix timestamps in milliseconds.
* Store the booking ID before triggering downstream workflows like CRM updates or notifications.

## Related links

* [Webhook introduction](/docs/webhooks/introduction)
* [Webhook event types](/docs/webhooks/event-types)
