Plan appointment booking calls with availability lookup, confirmation, rescheduling, time-zone handling, fallback and Fish Audio TTS boundaries.
An AI voice agent for appointment booking turns a phone conversation into a confirmed calendar event without inventing availability. Fish Audio supplies the speech layer — transcription for the caller, streaming text to speech for the agent, a consistent voice and API access. Your scheduling system supplies availability, holds, confirmations, rescheduling and reminders. There is no native Fish Audio calendar integration, and the agent must never confirm an appointment until your calendar API has committed it.
The hard part is not conversation. It is the contract between speech and state: a slot that exists, a time zone that is explicit and a confirmation the caller can act on.
A safe booking flow has seven steps:
The AI voice agent architecture guide explains how dialogue, tools and speech streaming fit together. For calls that are still qualifying a lead, see AI voice agents for lead qualification.
The minimum data contract is:
Keep the API surface narrow. The agent should call dedicated endpoints such as availability.search, appointment.hold, appointment.create and appointment.cancel, not a general-purpose database query.
Agent: Thanks for calling Riverside Dental. Are you booking a cleaning, a consultation or something urgent?
Caller: A cleaning, ideally next week.
Agent: I have Tuesday, November 10 at 9:30 a.m. or Thursday, November 12 at 2:15 p.m. Eastern. Which is easier?
Caller: Thursday works.
Agent: Thursday, November 12 at 2:15 p.m. Eastern with Dr. Lee. I'll hold it now — can I confirm your full name and date of birth?
Caller: Dana Ruiz, March 4, 1991.
Agent: The slot is confirmed. I'm sending a text with the address and a link to reschedule. Please arrive ten minutes early.
Notice the explicit time zone, the concrete options and the separation between "hold" and "confirmed." The agent does not say "you're all set" before the event ID exists.
Store the appointment in UTC and keep the location's time zone as a separate field. When speaking, name the zone and read the date in full: "Thursday, November 12 at 2:15 p.m. Eastern." Avoid "next Thursday" and bare numbers that can be misheard.
If the caller's time zone differs from the location, confirm both: "That's 2:15 p.m. in New York, which is 11:15 a.m. in Los Angeles." Send the same values in the written confirmation so the caller has a record.
Ambiguous requests need one clarifying question, not a guess. "The 12th at 2" could mean 2 a.m. or 2 p.m.; ask.
Treat rescheduling as a new booking plus a cancellation, in that order. First find and hold the new slot, then cancel the old one only after the new appointment is committed. If the new slot fails, the caller keeps the original appointment.
Read the cancellation policy before offering a move. If a fee applies, say the amount and the reason, and transfer to a human when the caller disputes it.
Send a new confirmation after every change and include the old and new times so the record is unambiguous. The voice agent TTS fallback guide covers what to do when a downstream scheduling call fails mid-conversation.
| Failure | Safe fallback |
|---|---|
| Calendar API times out | Do not confirm; offer a callback or take a message |
| Slot disappears during the call | Re-query and offer alternatives; never force the old slot |
| Caller gives conflicting details | Repeat the details and ask for confirmation once, then hand off |
| Time zone is unclear | Ask which city or zone the caller means |
| Service needs clinical or legal screening | Transfer to a human before booking |
| Caller asks for a slot the system cannot see | Explain the limit and offer the nearest alternatives |
| Event created but confirmation message fails | Keep the event, tell the caller the booking is confirmed and escalate the notification failure |
Every failure should be logged with the tool response. A booking agent that silently retries can create duplicate appointments.
| Metric | What it tells you |
|---|---|
| Booking completion rate | Whether the conversation converts to a committed event |
| Double-booking rate | Whether holds and commits are correct |
| Reschedule rate | Whether the offered slots match demand |
| No-show rate | Whether reminders and confirmation copy work |
| p95 time to first audio | Whether the agent feels responsive |
| Tool error rate | Whether the calendar integration is production-ready |
| Human transfer rate | Whether policy boundaries are working |
Track no-shows by appointment type and lead time. A booking that is technically correct but frequently missed is a product problem, not a speech problem.
Natural speech is roughly 150 words per minute, close to 900 characters. One Fish Audio credit covers about 1,000 characters, so agent speech starts near one credit per minute before retries, holds or longer explanations.
| Pack | Price | Credits | Approximate agent speech |
|---|---|---|---|
| Starter | $9 | 1,000 | About 16 hours |
| Creator | $29 | 4,000 | About 66 hours, plus commercial rights |
| Studio | $99 | 15,000 | About 250 hours, plus API access |
Calendar software, telephony, SMS reminders, transcription and staff time remain separate. The TTS API pricing guide converts characters into a complete budget.
No. Fish Audio provides the speech layer. The agent must call your calendar, scheduling or CRM API to read availability and create, move or cancel an appointment; Fish Audio has no native calendar integration.
Query a narrow availability endpoint for a bounded date range, filter by location, service and staff skills, then offer at most two or three concrete slots. Never invent a slot or confirm before the calendar API returns success.
Store every appointment in UTC and keep the location time zone separately. Say the zone explicitly when confirming, repeat the local date and time back to the caller, and send the same value in the written confirmation.
Do not confirm. Tell the caller the calendar is temporarily unavailable, offer a human callback or a message, and record the request. A delayed confirmation is better than a double-booked slot.
At roughly 150 words per minute, one minute of agent speech is about one Fish Audio credit. Calendar APIs, telephony, SMS, reminders and no-show handling are separate costs.