≤3
Never more than three options at a time.
“A list of 20 time slots in voice is unusable — and in chat it overwhelms.”
001 Pronto Calendar · Auto-Booking Engine
Smart scheduling that books directly from calls and texts. Syncs with Google Calendar, Outlook, and iCal in real time.
✓Calendar included in every Pronto plan — $0 variable cost.
002 The instrument
This is the real flow, simulated: three live slots, one email, and a tentative hold that turns solid when the customer confirms.
Every step below is the exact product behavior: the slot labels, the single email field, the tentative hold, and the signed confirmation link.
No login, no form, no phone number. The conversation offers at most three options.
Chosen slot:
We’ll email your appointment details. No spam, no phone calls unless you ask for one.
No 6-digit codes — a code cuts the customer off at the moment of highest intent. One click in the email does it all.
Your visit is reserved for . Tap below to confirm it — the link is signed and lives 24 hours.
The appointment is confirmed, the email is verified for real, and the contractor knows this one is solid — all without a single extra question.
appointmentStatus: confirmed email-verificado ✓003 Booked inside the conversation
A booking link waits for the customer to open it, look around and choose. Pronto Calendar books inside the conversation that is already happening — the appointment is written while the call is still open, with eighteen seconds of conversation left.
▶Hear that exact call on the ProntoVoice landing004 Three slots, never twenty
Availability is read live from the contractor’s calendar and shaped into something a human can actually answer.
Never more than three options at a time.
“A list of 20 time slots in voice is unusable — and in chat it overwhelms.”
Availability is never cached longer than a minute — a contractor’s day changes while it happens.
“A cached slot is a slot that already got taken.”
Every slot ships with its label in the customer's language — written by the tool, not improvised by the model mid-conversation.
005 The only moment of friction
Most implementations ruin conversion right here. Pronto protects the moment of highest intent with three deliberate phases.
Ask about services, prices and slots with nothing requested back. No login, no registration, no captcha, no form.
session_id · httpOnlyOnly when a slot is chosen does one field appear. Never a phone number. Never a card — Pronto is free for homeowners.
“The email is asked for ONCE, and ONLY at booking time. Not before.”
No 6-digit OTP by default — it cuts the customer off mid-intent. A signed link in the email verifies for real, without interrupting.
JWT · 24h006 Tentative until confirmed
Pronto separates reserved from real — without asking the customer for anything else.
The appointment is created instantly with a tentative status. The slot is held; the record exists; nothing is faked as firm.
appointmentStatus: "new"The confirmation email carries a signed link. One tap and the appointment turns solid — and the email address is verified for real.
GET /api/booking/confirmNo click in 2 hours → a reminder goes out. No click in 24 → the slot returns to the calendar and the team is notified. No ghosts.
2h → reminder · 24h → release007 The sync
Google Calendar, Outlook and iCal stay in step in real time. Availability is read live, business hours are respected, and each service books the block it actually needs.
Free slots are read from the connected calendar at the moment of the conversation — not from yesterday’s export.
free-slots · cache ≤ 60sRegular hours by weekday, a 24/7 emergency flag, and closed holidays — the agent can’t offer what the business doesn’t work.
get_business_hoursEach service carries its typical duration — a water-heater swap doesn’t reserve the same block as a filter change.
typical_duration_minCharlotte, June–August
“The weeks that make the year’s margin are exactly the weeks the phone goes unanswered.”
008 The price depends on the hour
The slot the customer picks changes the range they’re quoted — and the system computes it alone, from modifiers stored in data, not in code.
Right-now urgency carries the widest multiplier.
Evenings past the regular schedule.
Saturday and Sunday visits.
A fixed permit cost joins the range.
And the rule that protects the appointment: a missing price can never kill the booking. If no estimate is available, the agent says “I’d rather not guess — the tech will confirm on site” and books anyway.
009 The guards
The failure modes are designed for before they happen: double clicks, half-finished writes, stale confirmations, and promises no tech can keep.
A double click or a model retry cannot create two appointments. One key, one booking.
idempotency_key UNIQUE“Partial failure is the scenario that hurts most.” Every step logs its ID, and a daily reconciliation job finds and repairs incomplete records.
bookings.steps · jsonbThe service worker never caches /api/ — because the confirmation arrives as a GET from an email, and serving it from cache would break a closed appointment.
/api/booking/confirmNever promise an arrival time narrower than the booked window. The tech gets room to work; the customer gets the truth.
Before booking by voice, address and email are confirmed back letter by letter — transcription gets them wrong constantly.
Fire, gas or shock: the agent stops everything and points to 911. Nothing gets scheduled during an active emergency.
010 Compliance
North Carolina restricts unsolicited automated calls — and its recognized exceptions include existing business relationships, collections, and appointment confirmations. A reminder to a customer who already booked sits inside that exception.
011 Plans
Scheduling, bookings and sync carry zero variable cost on every plan from Answer up. What changes is what happens around the appointment — who calls to confirm it, who reminds, and who fills the slot when it cancels.
Build your digital presence.
Your AI employee for everyday conversations.
Turn conversations into more work.
Your brand, your app, and people behind it.
Setup is $0. Voice minutes come included from Answer up — 300 on Answer, 1,000 on Pipeline, 2,500 on Engine — and anything past that runs $0.15, $0.12 or $0.10 per minute. Pay yearly and two months are included. Pronto never takes a commission on your jobs. Reminders and post-visit follow-up continue in Pronto Automations.
012 Questions
013 Pronto Calendar · Auto-Booking Engine
Three slots, one email, a signed click — and a calendar that fills while you’re on a roof. See how Pronto Calendar fits your operation.