A booking agent that respects every constraint — not just open slots.
Calendar-aware booking agent that respects every constraint you have — travel time, service duration, technician skill match, service-area boundaries. Off-the-shelf schedulers see 'free time' on a calendar and book it. A real booking agent knows your tech can't be in two zip codes 20 minutes apart, your $1,200 install needs a 4-hour block, and your Saturday morning is…
The problem, precisely
Every service business that adopts a calendar-link product (Calendly, Cal.com, Acuity, Square Appointments) hits the same three problems within 30 days. First, the link books slots without context — a customer needing a 3-hour repair gets dropped into a 30-minute slot because the form let them. Second, it double-books across multiple resources (tech, room, vehicle, equipment) because the link only knows about one calendar. Third, and worst, it ignores travel time — your tech finishes a job in Mesa at 2:00pm and is booked in Surprise at 2:15pm, a logistical impossibility. The workaround everyone adopts is brittle: layer rule after rule into the booking form, block buffer time everywhere, manually move appointments after they're booked.
How we build it
The booking agent runs as a dedicated reasoning loop on Anthropic's API (Claude 3.5 Sonnet for the reasoner, Haiku for the fast pre-checks) with structured tools: read_calendar(date, resource_id), check_travel_time(from_address, to_address, eta), match_technician(job_type, skills), validate_service_area(zip), lookup_customer(phone_or_email), and book_appointment(start, end, resource, customer, job_type). Every booking request — whether it comes from the voice agent, the web chat widget, a Twilio SMS, or an embedded form — flows through this loop. The agent doesn't see the customer's request as 'book a slot,' it sees it as 'figure out the best available slot that satisfies all of: customer's preferred window, technician availability, technician skill match, travel time, service area, and any business rules I'm given (Saturday is owner-only, no installs after 3pm Friday, etc.).' The calendar source of truth stays in whatever you already use — Jobber, Housecall Pro, ServiceTitan, Google Calendar, Acuity. We integrate via the official API for each, with webhook callbacks so a booking made elsewhere updates our cache within 2 seconds.
What you get
Booking reasoning agent (Claude 3.5 Sonnet) wired to your real calendar of record
Travel-time validation via Google Distance Matrix — no impossible back-to-backs
Technician/resource skill matching — a $1,200 install doesn't get booked to a tech who only does diagnostics
Service-area zip-code boundary enforcement (with optional 'we'll travel for jobs >$X' override rule)
Customer dedup + history lookup (catches 'this is the third time they've called for the same broken thing')
Tentative-hold pattern with 90-second confirm window — prevents double-booking on concurrent requests
Two-way sync with Jobber, Housecall Pro, ServiceTitan, Acuity, Cal.com, Google Calendar (webhook-driven)
Industry-average wasted truck-roll rate from bad booking logic: 8–12% of total dispatches
Cost per wasted truck-roll: $120–$240 (fuel, labor, opportunity cost on the slot)
Customer no-show reduction from automated reminders: 35–50%
Recovered revenue from no-show recovery + correct skill matching: $1,800–$3,400/mo for a 4-tech operation
A worked example
A 4-tech plumbing shop in Austin cut wasted truck-rolls from 9% to 1.8% in the first 30 days. Net savings: $4,400/mo on truck-roll costs alone, before counting the additional jobs the freed-up tech capacity absorbed.
Cost and timeline
Starts at $4,000 build. Ongoing: $399/mo + API pass-through (~$80/mo for typical 4-tech shop). Ships in 21 days. Delivered as Intelligent Booking Software, available across United States, Canada, UK.
Does it work with my existing calendar?
If your calendar has an API, yes. Production integrations: Jobber, Housecall Pro, ServiceTitan, FieldEdge, Acuity, Cal.com, Google Calendar, Microsoft 365 Calendar, Salesforce, HubSpot. Anything else we wire via n8n in 1–2 days. We do not replace your calendar — your calendar stays the source of truth.
How does the travel-time check actually work?
We call Google Distance Matrix at booking time with the previous appointment's address and the candidate appointment's address, using time-of-day-aware traffic estimates. If the gap is insufficient (with your configured buffer — default 15 min), the slot is rejected and the next viable one is offered. The check adds ~400ms to the booking flow, which is invisible inside a 30-second conversation.
What if I want a human to approve bookings before they go live?
Optional approval gate — agent stages the booking as a 'pending' hold with a 4-hour timeout, sends you the details by SMS, you reply Y/N. Useful for high-ticket installs ($2K+). Default mode for routine repairs is auto-book, because the latency kills your conversion rate otherwise.