Appointment Window Booker: Offer Arrival Windows Only When the Zone Can Actually Cover Them
Give CSRs a booking screen that offers customers real arrival windows (8–10, 12–2) only when there's genuine capacity in their zone, holds the slot, and drafts a confirmation the dispatcher releases — so you stop overbooking a route and breaking promises.
A logged-in booking tool where a CSR picks a site and job type, the tool offers only the arrival windows a zone can genuinely cover, holds the chosen slot for a few minutes, the dispatcher confirms it (or proposes an alternative), a confirmation email goes out via Resend, and confirmed bookings export as a clean CSV.
Before you start
- A Supabase account (free)
- A Vercel account (free)
- A Resend account (free)
- Your capacity-by-zone-and-day numbers (CSV or sheet is fine)
- A job-duration-by-type list and a customer/site list (CSV is fine)
- Claude Code or any AI coding agent
The problem this kills
The fastest way to make a field-service customer angry is to promise an arrival window you can't keep. It usually happens at the booking desk: a CSR is looking at a wall calendar or a shared spreadsheet, the customer wants "Thursday morning," and there's no fast way to know the truck covering that zone is already full on Thursday morning. So the slot gets promised anyway. Then the route is overbooked, the tech runs two hours late, the dispatcher spends the afternoon apologizing and reshuffling, and the customer leaves a one-star review about the window nobody honored.
The root problem is that the booking screen and the capacity reality are two different things living in two different places. The person taking the call can't see whether a zone window is genuinely open, and nothing stops two CSRs from booking the same last opening at the same time. "Arrival window" turns into "sometime today, we hope."
This kills that. The booking screen only ever offers a window when the customer's zone has real capacity left for that day and job type — and it puts a dispatcher between "held" and "booked" so a human confirms the route before any promise reaches the customer.
What you'll build
A simple internal web app for your booking and dispatch team. A CSR picks a customer/site (which carries its zone), picks the job type (which carries how long the job takes), and the tool shows only the arrival windows that the zone can actually cover on the days you offer — 8–10, 10–12, 12–2, and so on. No fake availability.
When the CSR picks a window, the tool holds the slot for a few minutes so nobody else can grab it, and drafts a confirmation. A dispatcher then reviews the held slot against the route, and either confirms it or proposes an alternative window. Only on confirmation does the booking become real, the customer confirmation email goes out via Resend, and the slot is committed against the zone's capacity. Holds that nobody confirms simply expire and free the capacity back up. Confirmed bookings export as a clean CSV in the columns your dispatch system or route planner expects.
What's inside the Implementation Plan
The downloadable plan is a step-by-step file you paste into an AI coding agent. It opens by interviewing you about your business — how your zones are drawn, what your real capacity is per zone per day, how long each job type actually takes, the exact windows you offer, how your site and customer list is shaped, and the messy exceptions (all-day jobs, two-tech jobs, drive time between zones, VIP accounts that jump the line). It reads a short tailored spec back to you and waits for your thumbs-up before building anything — so the tool matches how your routes actually work, not a generic template.
From there it walks the agent through the data model, the capacity-by-zone engine, the "offer only real windows" logic, the slot-hold-and-expire mechanism, the dispatcher confirm/propose-alternative gate, the Resend confirmation email, and the CSV export. Every step ends with a ready-to-copy prompt. There's a full "No API yet?" path that uses Google Sheet / CSV imports for capacity, job types, and your site list, and produces a clean CSV of confirmed bookings — so you can build and run the whole thing this weekend even with no connection to your existing scheduling system.
The governance it includes (this is the point)
Booking is a promise to a customer, so the controls aren't optional. The plan builds in login so only your team can book, row-level security so each branch or franchise sees only its own zones and bookings, a complete audit trail of who held, confirmed, or rescheduled every slot and when, a hard human-confirmation gate so a dispatcher signs off on the route before any window is committed and any customer email is sent, and duplicate guards so the same site can't be booked twice for the same date and window. Holds that go unconfirmed expire automatically, so capacity never silently leaks.
Who it's for
CSRs, schedulers, and dispatchers at any field-service operation that runs zoned routes and gives customers arrival windows — HVAC, plumbing, electrical, pest control, appliance repair, installs, inspections, home services. If you can explain how your zones are drawn and how much each truck can do in a day, you can build this.
You've got this — start with the plan, paste the first prompt, and answer the interview. You'll be offering windows your routes can actually keep before the weekend's out.