runbookify
← All plans
Field Service & Dispatch / Customer Notifications

Appointment Confirmation & Reminder Sender

Build an internal tool that turns your day's scheduled jobs into confirmation and reminder messages, drafts them per customer, and sends them through Resend only after a dispatcher approves the batch - then captures each customer's confirm-or-reschedule reply and surfaces the unconfirmed jobs your office needs to chase. No more chasing tomorrow's appointments by hand.

BeginnerAn afternoonBuilds onNext.js (App Router) on VercelSupabase (Postgres, Storage, Auth + RLS)Resend (confirmation + reminder emails)
What you'll build

A login-protected reminder tool: import the day's appointments, let the agent build a reminder schedule (e.g. a confirmation plus 24h and 1h reminders), review and approve the outbound batch in one screen, send via Resend only after approval, capture each customer's confirm-or-reschedule response, and surface a live list of still-unconfirmed jobs for the office to chase - with quiet-hours and consent guards, one message per stage, and a dedupe so the same reminder can never go twice.

Gated download

Enter your email — the plan downloads instantly and a copy lands in your inbox.

By submitting your email you'll also receive the weekly runbookify newsletter. You can unsubscribe at any time.

Before you start

  • A free Vercel account
  • A free Supabase account
  • A free Resend account (and a sender address you can use)
  • A scheduled-appointments CSV (customer, contact, date, arrival window)
  • Your reminder timing rules (e.g. confirm now, remind 24h + 1h before)

The problem this kills

Every no-show is a half-day of a tech's time and a truck-roll you can't get back. So someone in the office spends the back half of every afternoon confirming tomorrow's jobs by hand - pulling up the schedule, finding each customer's number or email, typing "Hi, just confirming your window tomorrow between 8 and 10," and hoping for a reply. Then they have to remember who answered, who didn't, who asked to move to Thursday, and who they already pinged this morning so they don't double-message them at dinner.

It falls apart in the predictable ways. A customer gets reminded twice and gets annoyed. Another gets reminded at 9pm because nobody was watching the clock. Someone replied "can we do afternoon instead?" three days ago and it's buried in a sent folder, so the tech still rolls up at 8am to an empty driveway. And when the schedule is full, the confirming simply doesn't get done - so you find out it's a no-show when the tech is already parked outside.

This tool turns that scramble into a clean, repeatable, approve-then-send routine - the right message goes to the right customer at the right time, nobody gets spammed or pinged at midnight, every confirm-or-reschedule reply is captured against the job, and the office gets one live list of who still hasn't confirmed.

What you'll build

A small internal web app, just for your team, that:

  • Imports the day's (or week's) scheduled appointments from a CSV - customer, contact, job type, date, and arrival window.
  • Builds a reminder schedule per appointment from your own timing rules - for example a confirmation now, then a reminder 24 hours before and one hour before the window.
  • Drafts a personalized message for each send, in your wording, with the customer's name, the date, the arrival window, and a one-click confirm / reschedule link.
  • Assembles the day's outbound messages into a single batch and shows it to a dispatcher in one review screen - who's getting what, and when.
  • Sends every approved message through Resend - and only after the dispatcher clicks approve.
  • Honors contact consent and quiet hours (no messages outside the window you set), sends one message per stage (no spam), and dedupes on appointment + reminder stage so the same reminder can never go twice.
  • Captures each customer's confirm or reschedule response and attaches it to the job.
  • Surfaces a live unconfirmed list - jobs that still haven't confirmed - so the office knows exactly who to call.
  • Exports the whole send + response log as a CSV.

What's inside the Implementation Plan

The plan is a single markdown file you paste into Claude Code (a free AI coding agent). It walks the agent through building the whole tool, step by step, each step ending with a ready-to-paste prompt.

The most important part: the plan opens by interviewing you about your business. Before it writes a single line, the agent asks how you confirm appointments today, where your schedule lives (a dispatch board, a field-service app, a spreadsheet), the exact column names in your export, how your arrival windows are written, your reminder timing rules and quiet hours, how you capture a "yes" or a reschedule, and your messiest edge cases - same-day jobs, all-day windows, multi-stop routes, customers with no email. It reads a short tailored spec back to you, you confirm it, and only then does it build - so you get a tool shaped to how your dispatch actually runs, not a generic template you have to wrestle into place.

Inside you'll find:

  • The discovery interview and how the agent turns your answers into the data model and your reminder schedule.
  • The full build: database, login, CSV import with duplicate guards, the reminder-schedule engine, the message drafting, the batch review-and-approve screen, the Resend send, the confirm/reschedule capture, and the unconfirmed worklist.
  • The hard human approval gate, quiet-hours and consent guards, one-message-per-stage, and the dedupe on appointment + stage.
  • Verification steps so you can prove it works, and the CSV-export fallback so the tool is fully usable today even before you connect it to your scheduling system.

The governance it includes (this is the point)

This isn't a toy. The plan builds in the controls a dispatch office actually needs:

  • Login so only your team can see or touch anything.
  • Row-level security so people only ever see the appointments, customers, and messages that belong to your organization.
  • A complete audit trail - every draft, approval, send, skip, and reply logged with who and when.
  • A hard human-in-the-loop gate - the AI drafts the day's outbound batch, but a real dispatcher reviews and approves it (and approves any template change); nothing is ever emailed automatically.
  • Consent and quiet-hours guards plus one-message-per-stage so customers never get spammed or messaged at a bad hour.
  • Duplicate guards - dedupe on appointment + reminder stage so the identical reminder can never be sent twice.

Who it's for

CSRs, dispatchers, schedulers, and ops/BPM folks at field-service shops - HVAC, plumbing, electrical, pest control, garage doors, cleaning, appliance repair - who confirm tomorrow's jobs by hand and want a real, auditable reminder cadence that cuts no-shows, without hiring a developer or buying a heavyweight scheduling platform. You don't need to write code. You need your appointments CSV, your reminder timing rules, and an afternoon.

You've got this - paste the first prompt and let the agent interview you.

Gated download

Enter your email — the plan downloads instantly and a copy lands in your inbox.

By submitting your email you'll also receive the weekly runbookify newsletter. You can unsubscribe at any time.