Pronto.
Pronto.

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.

28.6 sBooked mid-call
Pronto Calendar Queen City HVAC · Today
Synced
9:00 AM
Maintenance visit28212 · done
11:30 AM
Estimate — roof28205 · on the way
2:00 PM
NEWAC repair — emergency28217 · $2,500 est. · web_voice
4:30 PM
Openoffered as a slot
ConfirmedEmail verified · no phone asked
3time slots offered at once — never twenty
60smaximum cache for live availability
28.6sinto the call when the appointment is written
$0variable cost for calendar and booking usage

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.

Book a repair — Queen City HVAC

Every step below is the exact product behavior: the slot labels, the single email field, the tentative hold, and the signed confirmation link.

free-slots · live
Step 1 · Anonymous — zero friction
When should the tech come?

No login, no form, no phone number. The conversation offers at most three options.

≤3slots per offer · availability cached ≤ 60 s
Step 2 · The only gate
Where should we send your confirmation?

Chosen slot:

We’ll email your appointment details. No spam, no phone calls unless you ask for one.

Step 3 · Tentative — the email is out
Reserved. Now the customer confirms.

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 appointment — action neededhello@mail.gopronto.app

Your visit is reserved for . Tap below to confirm it — the link is signed and lives 24 hours.

Done · Confirmed
Solid on the calendar.

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

Second 28.6 of a 47-second call.

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 landing
LIVE CALL — 47.0 s0.0s
0s28.6s47s
Appointment booked — today 3:30 PMsynced with the calendar · 18.4 s of call still ahead

004 Three slots, never twenty

Availability is read live from the contractor’s calendar and shaped into something a human can actually answer.

≤3

Never more than three options at a time.

“A list of 20 time slots in voice is unusable — and in chat it overwhelms.”

60s

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.”

Multilingual by design

Every slot ships with its label in the customer's language — written by the tool, not improvised by the model mid-conversation.

label_enlabel_estimezonestart_iso

005 The only moment of friction

Most implementations ruin conversion right here. Pronto protects the moment of highest intent with three deliberate phases.

Phase 1 · Anonymous

Zero friction

Ask about services, prices and slots with nothing requested back. No login, no registration, no captcha, no form.

session_id · httpOnly
Phase 2 · The gate

One field, one button

Only 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.”
Phase 3 · Verified

No codes, no cuts

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 · 24h

006 Tentative until confirmed

Pronto separates reserved from real — without asking the customer for anything else.

Reserved — tentative

The appointment is created instantly with a tentative status. The slot is held; the record exists; nothing is faked as firm.

appointmentStatus: "new"

One click confirms

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/confirm

Or it releases itself

No 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 → release

007 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.

A contractor's morning — the day already scheduled before the first coffee
7:02 AM — the day is already booked
Google · Outlook · iCalsynced in real time
Business hours respectedno Tuesday 7 PM if you close at 5

Live availability

Free slots are read from the connected calendar at the moment of the conversation — not from yesterday’s export.

free-slots · cache ≤ 60s

Hours and holidays

Regular hours by weekday, a 24/7 emergency flag, and closed holidays — the agent can’t offer what the business doesn’t work.

get_business_hours

Blocks that fit the job

Each service carries its typical duration — a water-heater swap doesn’t reserve the same block as a filter change.

typical_duration_min

Charlotte, June–August

“The weeks that make the year’s margin are exactly the weeks the phone goes unanswered.”
HVAC runs at 3–5× base volume in July — 18 days over 90 °F

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.

×1.4–1.8Emergency

Right-now urgency carries the widest multiplier.

×1.25After hours

Evenings past the regular schedule.

×1.15Weekend

Saturday and Sunday visits.

+feePermit required

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.

01 Idempotent by key

A double click or a model retry cannot create two appointments. One key, one booking.

idempotency_key UNIQUE
02 Partial failure, repaired

“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 · jsonb
03 The confirm link is sacred

The 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/confirm
04 Windows, not promises

Never promise an arrival time narrower than the booked window. The tech gets room to work; the customer gets the truth.

05 Voice double-checks

Before booking by voice, address and email are confirmed back letter by letter — transcription gets them wrong constantly.

06 Emergencies outrank bookings

Fire, gas or shock: the agent stops everything and points to 911. Nothing gets scheduled during an active emergency.

010 Compliance

A booking confirmation is not marketing.

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.

N.C.G.S. § 75-104 · the framework still applies, and Pronto keeps it: AI voice counts as artificial voice under the TCPA, calls stay inside allowed hours, recording is announced, and consent is stored with its timestamp.
Calls only 8:00–21:00 local — the platform is stricter: 8:00–20:00 consent_text + consent_at stored on the record Do-Not-Disturb propagates to every channel

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.

Pronto Presence

Build your digital presence.

$1 one-time
No calendar 1 user · 1 location 25 prospects/month Directory profile
Get it for $1
Pronto Answer

Your AI employee for everyday conversations.

$249 /month
Calendar and auto-booking 24/7 multilingual AI receptionist, in your customer's language 300 voice minutes included, then $0.15/min 2 users · 1 location
Get Answer
Pronto Engine

Your brand, your app, and people behind it.

$849 /month
Everything in Pipeline, plus your own branded app 24/7 human backup answering in your company's name Open API · 2,500 minutes, then $0.10/min Unlimited users · 5 locations · a landing page per location
Get Engine

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.

Straight with you The scheduling tools, the idempotent reservation, and the email confirmation flow are specified and tested in the design. Member calendars are still being connected — the pilot starts with one contractor, not seven. We would rather tell you that now than oversell it later.