# Appointment confirmation board built on WhatsApp replies

> Open one board each morning to see today's and tomorrow's bookings, who confirmed on WhatsApp, who never answered, and who asked to move.

- Workflow type: app
- Services: Kapso, Google Calendar
- Categories: Operations
- Published: 2026-08-31

## What it does

- Puts today's and tomorrow's bookings from your Google Calendar on one screen, showing the customer, the appointment time, and where they stand.
- Works out a confirmation status from each customer's WhatsApp replies, so you can see at a glance who confirmed, who went quiet, and who asked to reschedule.
- Expand any row to read the whole WhatsApp conversation, resend the reminder, send a quick nudge, or mark someone confirmed yourself when their reply was unclear.
- A chase the unconfirmed button sends a background assistant through every unanswered booking to follow up, then hands you a short list of who still needs a phone call.

## What you'll need

- A Google Calendar account holding the bookings you want to track
- A Kapso account connected to your WhatsApp Business number
- At least one approved WhatsApp reminder template, needed for messages sent outside the 24 hour reply window
- Customer phone numbers saved on the calendar bookings so they can be matched to WhatsApp conversations

## Prompt

Build me an appointment confirmation board that my front desk staff open every morning. The main screen is a single list of bookings for today and tomorrow, grouped by day and sorted by start time, where every row shows the customer name, the appointment time, and a confirmation status worked out from their WhatsApp replies. The whole point of the surface is that at a glance I can see who confirmed, who never answered, and who asked to move.

Load the schedule from Google Calendar. Use List Calendars so I can choose which calendars actually hold customer bookings, and remember that selection between visits. Then use List Events scoped to today and tomorrow, with recurring events expanded into individual instances so a weekly slot shows up as a real booking. Take the customer name and phone number from the event attendees, description, or title, depending on how the booking was made.

Match each booking to its WhatsApp conversation in Kapso using List Conversations and List Messages. Match on a normalized phone number, and do the normalizing on both sides before comparing: strip spaces, dashes, brackets and plus signs, drop leading zeros, resolve to E.164 using a configurable default country code, and fall back to comparing the last eight or nine digits. Calendar invites and WhatsApp profiles almost never agree on formatting, so this matching step is the part most worth getting right. When a booking cannot be matched to any conversation, show the row as unmatched rather than guessing at the wrong customer.

From the customer's most recent inbound message in that thread, work out a confirmation status for the row: confirmed, no reply, asked to reschedule, or needs review when the reply is too ambiguous to call. Show it as a colored badge and let me filter the list by status, since the unanswered ones are what the front desk is really hunting for. A human override must always win: when a staff member marks someone confirmed by hand, that sticks and is never recalculated on the next refresh. Staff will not trust an automatic reading of a reply blindly, so make the manual override obvious and easy.

Each row expands in place to show the WhatsApp thread, most recent messages last, with inbound and outbound messages visually distinct. Give me three actions on an expanded row. First, resend the reminder, which uses List Message Templates to pick an approved reminder template and Send a Message to deliver it. Second, send a quick free form nudge, which is only allowed inside the 24 hour window that opens from the customer's last inbound message, so check whether that window is still open: offer the free form box when it is, and when it has closed, disable it and fall back to the approved template path instead. Third, mark confirmed by hand, for when a reply was real but ambiguous.

Whenever a row's status changes, stamp it back onto the Google Calendar booking using Patch Event so the rest of the team sees it without opening this app. Use the partial update rather than a full replace, so attendees, description and timing are never cleared. Write the status where a person will actually see it in the calendar, for example prefixing the event title with the status or appending a line to the description recording the status and when it was set.

Add a chase the unconfirmed button that kicks off a background agent across every row that is not yet confirmed. For each one, the agent reads the WhatsApp thread and judges whether a short reply like ok, sure, or a thumbs up really counts as a confirmation, and marks the ones that clearly do. For the ones still silent it sends the right kind of follow up: a free form message inside the open 24 hour window, or an approved reminder template outside it. It leaves genuinely ambiguous cases alone for a human to read. When the run finishes it writes a summary back into the app, listing who is now confirmed, who was chased, and who needs a phone call, with a timestamp, so the front desk reads the outcome instead of watching the run.

Keep the board refreshable on demand and show when it last pulled from the calendar and from WhatsApp. Several front desk staff share this screen through the day, so any status change or manual confirmation one person makes should be visible to the others on their next refresh.

## How to customize

- Choose which calendars the board reads, and whether it covers today and tomorrow or a longer stretch of days
- Pick which approved reminder template the resend button uses, and set the wording of the quick nudge
- Adjust how generously a short reply like ok or a thumbs up gets counted as a confirmation before a human is asked to look

## FAQ

### How does the board know who confirmed?

It finds the WhatsApp conversation that belongs to each booking's phone number and reads the customer's most recent reply, then sorts each row into confirmed, no reply, asked to reschedule, or needs review. Anything a staff member marks by hand always beats the automatic reading.

### What happens when a reply is ambiguous, like a thumbs up or just ok?

Those land in a needs review state rather than being silently counted as confirmations. You can open the thread, see exactly what was said, and mark the person confirmed yourself. The chase button also asks a background assistant to judge these cases and leaves the genuinely unclear ones for a person.

### Can I send a free text message to anyone on the board?

Only inside the 24 hour window that opens when a customer messages you. That is a WhatsApp rule, not a limit of this board. When the window has closed, the quick nudge is switched off and the board falls back to sending an approved reminder template instead.

### Will the rest of the team see the confirmation status?

Yes. Every status change is written back onto the calendar booking itself, so anyone looking at the shared calendar sees who has confirmed without opening this app.

### What if the phone number on the booking is written differently from the one on WhatsApp?

Calendar invites and WhatsApp profiles rarely agree on formatting, so numbers are tidied up on both sides before they are compared. When a booking still cannot be matched to a conversation, the row says so plainly rather than guessing at the wrong customer.

Use this prompt in General Input: https://www.generalinput.com/prompts/appointment-confirmation-board-built-on-whatsapp-replies