# Appointments

Show a calendar of the times a campaign can take right now, then book the visitor's pick on their lead. Bookings go through the same atomic check DialEcho's AI uses when it books on a call, so your site and the AI never double-book a team member.

Bookable hours come from the campaign's Appointment availability settings in DialEcho; a campaign with availability off or no hours answers `409 availability_not_configured`.

## Endpoints

### [List open times](/api/appointments/list-slots)

`GET /v1/campaigns/{campaign_id}/appointment-slots`

Lists the appointment start times that can be booked in a campaign right now.

### [Book or reschedule](/api/appointments/book)

`PUT /v1/leads/{lead_id}/appointment`

Books the lead's appointment at an open time, or moves its existing appointment there.
