AI voice agents for property-visit scheduling book viewings from live slots. The agent reads the listing's open times inside the seller's showing window and notice period, offers two, reads the address and time back, then writes the booking to your calendar or showing system. Changes and cancellations are written back the same way, after the caller is verified.
Key Takeaways
- Offer only slots the calendar returns, and the same slots to every caller.
- Read the address and the time back before the booking is written.
- Verify the caller before moving or cancelling their viewing.
This post is part of our guide to AI voice agents for real estate. The guide's section on property-visit scheduling calls the calendar the one system the agent writes to during a call. This post follows that booking from the first lookup to the reminder, built in Dograh, an open-source, self-hostable voice agent platform.
What the agent reads before it offers a time
Before the agent offers any time, it asks your showing system which slots are actually open. A viewing has more rules than a free hour in an agent's diary. The seller sets a showing window, such as weekdays from 10 to 6, and a notice period, such as 24 hours. A tenanted home may need longer notice, and some sellers approve each viewing themselves.
The safest design keeps all of that in the system that already holds it. During the call, an HTTP API tool sends the listing reference to your calendar or showing platform and gets back the slots that are free for the listing agent and already inside the window and notice period. The response can also carry a flag that says whether the seller must approve the booking. The agent never works out the rules itself, and showing hours never sit in an uploaded document, where they go stale the day a seller changes them.
Reading the calendar live also protects the agency under fair housing law. This part is general information, not legal advice. Section 3604 of the Fair Housing Act makes it unlawful to tell any person, because of a protected characteristic, "that any dwelling is not available for inspection, sale, or rental when such dwelling is in fact so available". An agent that offers whatever the calendar returns generally gives every caller the same open times, so availability never depends on who is asking.
The same rule covers the rest of the call. The agent never suggests which homes suit a family and never tailors a viewing to who the caller is. It books the home the caller asked for. Have fair housing counsel review the script before launch.
Offer two times, then read back the booking
The agent offers two open times, and the caller picks one or asks for another day. Two choices are easy to hold in your head on the phone. A list of eight is not.
A lookup that takes a moment can run without a word, and a longer one needs a short line such as "Let me check the calendar" so the caller is never left in silence. Slots also go while a call is happening, because another caller or an agent may book the same hour. If the booking request comes back with the slot taken, the agent reads the calendar again and offers the next two times.
Before it writes anything, the agent gives a read-back: the street address, then the day and time. Addresses are where speech recognition slips, and a viewing at 14 Elm Street on the wrong day costs a buyer a trip and the seller a tidy house for nothing. Once the caller confirms, a second HTTP API tool writes the booking. For a listing that needs the seller's approval, the agent books it as a request and says the time is confirmed once the seller agrees.

Calls drop and tools retry, so the booking tool carries the workflow_run_id as a Preset Parameter, and your system uses it with the slot to ignore a duplicate. Our post on booking meetings during a call covers the booking request itself, and AI Voice Agents for Patient Appointment Scheduling applies the same live-slot pattern to clinics.
Open Source Alternative to Vapi / Retell
Self-hosted voice agent platform — no per-minute fees
dograh-hq/dograh
Star on GitHub
Moving or cancelling a viewing
A change touches a client's own booking, so the agent confirms who is calling before it names the viewing. Dograh's Pre-Call Data Fetch, at the bottom of the Start Call node and set to "Inbound calls only", sends the caller's number to your system once the call connects. That finds the booking. It does not prove who is calling.
So the call runs greet, verify, disclose. The Greeting Text names the agency and nothing else. The agent asks for the caller's name plus the property address or the email on file, and only when both match does it mention Saturday at 11. A caller who cannot give them can still book a new viewing, but the existing booking stays as it is, and a callback request goes to the agent.
Moving a viewing is a fresh lookup: the agent reads the open slots again, offers two, reads the new time back and writes the change. A cancellation is written straight back, which frees the slot for the next caller. Either way the calendar holds the only record of the booking, and the agent keeps no copy.
Some changes come from the other side. A seller who cancels a viewing, or a listing that goes under offer, is a job for the listing agent. The voice agent never calls a buyer to cancel on the seller's behalf.
What stays with the showing platform and the agent
Booking the slot is the voice agent's whole job. The jobs around it stay where they already are. Telling the seller about a new viewing is done by your showing platform or the listing agent. So are access instructions. The agent never reads a lockbox code or an alarm code on a call, because anyone can ring the line and give a name.
A few requests go to a person every time. A buyer who wants a viewing inside the notice period, such as this afternoon, is asking for an exception only the listing agent can grant. A caller who mixes in a question about an offer or the price is past booking. For both, the agent writes the details to your system through an HTTP API tool, then uses Transfer Call, which works on Twilio only and passes no summary by default. If nobody answers within 30 seconds (the default), the caller stays with the agent, which writes a callback request.
The agent also does not ask about budget or financing here. If your agency wants those answers before a viewing, that is the qualification step in AI voice agents for real estate lead qualification, run before the booking.
Join the Dograh Community
Dograh is an OSS alternative to Vapi. Join our Slack community for queries, releases, best practices & community interactions.
Confirmations and reminders
The confirmation is usually a text, and Dograh has no SMS tool. The text comes from your showing platform or messaging system, or from an HTTP API tool that calls your messaging endpoint during the call, so your provider sends it. Either way, the address and time go out in writing within seconds of the booking.
A reminder call is a different matter, because it is an outbound call with an artificial voice. The Federal Communications Commission's (FCC) rules at 47 CFR 64.1200 bar artificial-voice calls to mobile numbers unless they are made "with the prior express consent of the called party", and an AI voice generally counts as artificial. A reminder about a viewing the person booked themselves is generally informational, but a reminder to a mobile number still needs that consent, so ask for it on the booking. This is general information, not legal advice; confirm with counsel. A reminder call verifies the person the same way before it names the viewing. Campaigns sets retries and calling hours by weekday, but it has no per-person call cap, so your own list makes sure each viewing gets one reminder call and no more.
Self-hosting Dograh keeps the booking calls on your own servers, and the caller's audio stays inside your infrastructure only when the speech and language models run there too. Self-hosted Dograh has no per-minute platform fee (servers, model keys and phone minutes still cost); Dograh Cloud has a 1¢-a-minute platform fee.
The call after the viewing, asking what the buyer thought, is its own call, covered in AI voice agents for buyer and seller follow-up.
Glossary
- Showing window
- The days and hours a seller allows viewings, such as weekdays from 10 to 6. A scheduling agent offers only slots inside it, read live from the calendar.
- Notice period
- How much warning a seller or tenant needs before a viewing, such as 24 hours. A request inside it is an exception for the listing agent, never the voice agent.
- Pre-Call Data Fetch
- A setting at the bottom of Dograh's Start Call node that sends the caller and called numbers to your system once the call connects. It finds a booking; it never proves who is calling.
- Read-back
- The agent repeating the address and the time to the caller before writing the booking, so a misheard street or day is caught on the call.

