Customer service & automation
How to build an appointment tracker and follow-up system in Google Sheets or Excel
Build an appointment tracker and follow-up list in Google Sheets or Excel step by step: the right columns, fixed statuses, drop-down lists, one formula for what needs to be done today and a ten-minute daily routine.
Claudia Academy · Bits PleasePublished October 16, 2026 10 min read
A customer asks on WhatsApp whether she can come in on Thursday. Another calls for a price and wants to be called back “next week.” If all that is scattered across a notebook, your memory and three chats, sooner or later something goes wrong: a double booking, a forgotten promise or a customer who never got a confirmation. In this article you build a simple appointment and follow-up list in Google Sheets or Excel that your whole team can use. You'll learn which columns you need, how to set up drop-down lists, how one formula shows you what needs to happen today, and how to keep it all up to date in ten minutes a day.
From message to booked appointment
Step 1: Request
What, when and for whom
Step 2: Check availability
In the shared calendar or list
Step 3: Confirm
Date, time and place in writing
Step 4: Remind
Only with permission, once
Step 5: Follow up
After the appointment or if there is no reply
Why you need a list alongside your calendar
Your calendar shows when something happens. But many requests are not an appointment yet: someone is waiting for a price, needs to be called back or didn't show up. None of those are on the calendar, and they are exactly the ones that get lost.
A follow-up list solves that. Each request gets one row, with a status, a person responsible and a date on which someone looks at it again. The rule of thumb: the calendar is the schedule, the list is the memory. You need both.
Step 1: Set up the columns
Open a new, blank spreadsheet and name the first tab Appointments. In row 1, type these thirteen headings, from column A to column M. Keep this order, because the formulas later on depend on it.
| Column | What to fill in | Example |
|---|---|---|
| A · Request date | The day the request came in | 10/14/2026 |
| B · Source | How the customer got in touch (drop-down list) | |
| C · Customer | The name the customer gives | Anita (example) |
| D · Contact | Number or email address you can reply to | +597 7xx xxxx |
| E · Service / question | What the customer wants, in a few words | Haircut and blowout |
| F · Requested time | What the customer suggested | Thursday afternoon after 3:00 PM |
| G · Confirmed time | What has been agreed; empty until something is agreed | Thu, Oct 15, 3:30 PM |
| H · Status | Where the request stands (drop-down list) | Confirmed |
| I · Responsible | Who takes the next step | Sharda |
| J · Follow-up date | When someone looks at it again | 10/15/2026 |
| K · Consent to contact? | Can you send a confirmation or reminder? (Yes/No) | Yes |
| L · Next action | The next concrete step | Send a reminder on Wednesday |
| M · Notes | Only what is needed for the appointment | Wants the same stylist |
Step 2: Agree on fixed statuses
A status says in one word where a request stands. Use only these seven, so everyone means the same thing and you can filter.
| Status | Meaning | Next step |
|---|---|---|
| New | Received, not yet answered or scheduled | Reply the same day |
| Waiting for customer | You made a suggestion and are waiting for a reply | Set a follow-up date, for example in two days |
| Confirmed | Date and time are set and on the calendar | Update the status after the appointment |
| Rescheduled | The appointment has been moved to another time | Record the new time in the list and on the calendar |
| Canceled | The appointment is not happening | Free up the calendar; done |
| No-show | The customer didn't show up | Offer a new time once, then close the row |
| Completed | The appointment has taken place | Done |
Step 3: Freeze the header row and create drop-down lists
Drop-down lists keep one person from typing “confirmed,” another “ok” and a third “all set.” First create a second tab called Lists. In row 1, type the headings Status, Source and Consent. Below them, starting in row 2, put the seven statuses in column A, the five sources (Phone, WhatsApp, Website/email, Walk-in, Other) in column B and the words Yes and No in column C.
In Google Sheets
Freeze the header row
Click in row 1 and choose View → Freeze → 1 row. The headings now stay in place when you scroll down.
Drop-down list for the status
Select H2 to H500 and choose Data → Data validation → Add rule. Under the criteria, choose a drop-down list from a range (“Dropdown (from a range)”) and enter
Lists!A2:A8.Reject invalid input
In the advanced options, set invalid input to be rejected, and click Done.
Repeat for Source and Consent
Do the same for B2:B500 with
Lists!B2:B6and for K2:K500 withLists!C2:C3.Date columns
Select columns A and J and choose Format → Number → Date.
In Excel
Freeze the header row
Choose View → Freeze Panes → Freeze Top Row. In some versions the button has a slightly different name.
Drop-down list for the status
Select H2 to H500 and choose Data → Data Validation. On the Settings tab, under Allow, choose List, and under Source enter
=Lists!$A$2:$A$8.Repeat for Source and Consent
Do the same for B2:B500 with
=Lists!$B$2:$B$6and for K2:K500 with=Lists!$C$2:$C$3.Date columns
Select columns A and J, right-click, choose Format Cells and then Date.
Step 4: See at a glance what needs to be done today
The simplest way is a filter. In Google Sheets choose Data → Create a filter, in Excel Data → Filter. In the filter for column H, uncheck the statuses Completed and Canceled, and sort column J from oldest to newest. What has been waiting longest is now at the top.
If you also want a counter, put this formula in cell O1 (leave column N empty, so it falls outside the filter). It counts the open rows with a follow-up date of today or earlier.
Number of requests that needed follow-up today (or earlier) — Google Sheets and English-language Excel
=COUNTIFS(J2:J500,"<="&TODAY(),H2:H500,"<>Completed",H2:H500,"<>Canceled")
In a Dutch-language Excel the functions are called AANTALLEN.ALS and VANDAAG: =AANTALLEN.ALS(J2:J500;"<="&VANDAAG();H2:H500;"<>Completed";H2:H500;"<>Canceled"). If one name doesn't work, try the other. If you get an error message about the formula, replace the commas with semicolons.
A color makes it even clearer. Select A2:M500. In Google Sheets, choose Format → Conditional formatting and pick “Custom formula is” as the rule. In Excel, choose Home → Conditional Formatting → New Rule and pick “Use a formula to determine which cells to format” as the rule type. Enter the formula below and choose, for example, a light orange fill.
Color the row when follow-up is needed
=AND($J2<>"",$J2<=TODAY(),$H2<>"Completed",$H2<>"Canceled")
Dutch function names: =EN($J2<>"";$J2<=VANDAAG();$H2<>"Completed";$H2<>"Canceled"). If you get an error message, replace the commas with semicolons. Which character you need depends on your spreadsheet's locale setting.
Step 5: Share the list safely with your team
- Google Sheets: click Share and add coworkers using their own email address. Give whoever makes appointments the Editor role, and whoever only needs to look the Viewer role. Leave General access set to “Restricted,” not “Anyone with the link.”
- Excel: put the file in OneDrive or SharePoint (with Microsoft 365) and share it with specific people using Share. Without online storage, keep the list on one computer, for example at the front desk.
- Don't email copies around: then nobody knows which version is right.
- Give each coworker their own access instead of one shared password. If someone leaves, you only remove their access.
- Agree on how long you keep completed rows, and delete them after that.
Step 6: Link the list to your calendar and prevent double bookings
Use one shared calendar for everything that can be booked, for example in Google Calendar or the Outlook calendar. If you have several chairs, treatment rooms or mechanics, create a separate calendar for each chair, room or staff member. Then these rules apply:
- Check first, then commit. Nobody gives a customer a time without first checking the calendar.
- Record it right away. Put the appointment on the calendar immediately. Only then fill in Confirmed time and set the status to Confirmed.
- Holds are temporary. If you want to hold a time for a while, put “HOLD – [first name]” on the calendar and a follow-up date in the list. If the customer doesn't confirm in time, remove the hold.
- Build in some slack. Leave time between appointments for running over, cleaning up or travel.
- Rescheduling means changing two things. Change the calendar and the list: status Rescheduled, new Confirmed time.
- Keep the calendar minimal. Put only the first name and the service in the calendar entry. Calendars are often shared more widely than the list.
Step 7: The ten-minute daily routine
A list only works if someone looks at it every day. Agree on who does that and when, for example right after opening.
Enter new requests (2 minutes)
Put everything since yesterday in the list: WhatsApp, voicemail, notes on paper, walk-ins. Each request gets a row with the status New.
Follow up what is due today (4 minutes)
Look at the counter or the filter. Carry out the next action for each row, and update the status, next action and follow-up date.
Wrap up yesterday (2 minutes)
Set yesterday's appointments to Completed or No-show.
Prepare for tomorrow (2 minutes)
Compare tomorrow's calendar with the list. Only send a reminder where Consent to contact is set to Yes.
Confirmations and reminders: only with consent
A confirmation and a reminder prevent misunderstandings and empty slots on the calendar. First ask whether the customer wants them, and note the answer in column K. If it says No, you don't send reminders or offers. You then only get in touch when it is needed for the appointment itself, for example if you have to reschedule.
Asking for consent, confirming and reminding
Adapt the wording to your business. Fill in the text in brackets for each customer.
Asking for consent: “May we send you a reminder on WhatsApp the day before?”
Confirmation: “Good afternoon, [name]. Your appointment for [service] at [business name] is confirmed for [day and date] at [time]. Our address is [address]. If you can't make it after all, please let us know ahead of time, and we'll find another time together.”
Reminder (only with consent): “Good morning, [name]. Just a quick reminder about your appointment tomorrow at [time] at [business name]. Would you like to reschedule? Just send us a message.”
Follow-up for Waiting for customer: “Good afternoon, [name]. You asked about [service]. Does [suggested time] still work for you? Then I'll book it for you.”
Example: a morning at a hair salon
Worked example
Example: hair salon in Zorg en Hoop (fictional)
It is Tuesday, October 20, 8:30 AM. Sharda opens the list. Cell O1 shows the number 4. These are the open rows (example data, fictional):
| Customer | Status | Follow-up date | Consent | Next action |
|---|---|---|---|---|
| Anita (example) | Waiting for customer | 10/19/2026 | Yes | Ask whether Friday at 10:00 AM works for her |
| Ravi (example) | Confirmed | 10/20/2026 | Yes | Send a reminder for Wednesday at 2:00 PM |
| Melissa (example) | No-show | 10/20/2026 | Yes | Offer a new time once |
| Priya (example) | New | 10/20/2026 | Yes | Call back about the price of coloring |
| Kenneth (example) | Confirmed | 10/21/2026 | No | No reminder; update the status on Wednesday |
Kenneth doesn't count: his follow-up date is tomorrow. Sharda works through the other four:
- Anita gets the follow-up message. Her follow-up date becomes Thursday, October 22.
- Ravi gets the reminder. Next action: update the status after the appointment; follow-up date Wednesday.
- Melissa gets one message with two possible times. Her follow-up date becomes Friday, October 23; if there is no reply by then, Sharda sets her row to Canceled.
- Priya is called back and chooses Saturday at 11:00 AM. Sharda first puts it on the calendar and then sets it to Confirmed.
After seven minutes the counter is at 0 and every open row has a follow-up date again.
Checklist and next step
- Appointments tab with the thirteen columns in the right order
- Header row frozen
- Drop-down lists for Status, Source and Consent to contact
- Date columns set up and tested by sorting
- Counter or color rule for today's follow-up
- Shared with the right people, with individual access for each person
- Rules for the calendar, holds and rescheduling written down
- One person and one fixed time for the daily routine
Would you rather not start with a blank spreadsheet? Download the ready-made list with drop-down lists and example rows. In lesson 4 of the free course you'll learn how to roll out this system with your team and how to handle rescheduling, cancellations and no-shows.
Appointments and follow-up list (spreadsheet)
Every request, appointment and follow-up in one place, with status, person responsible and follow-up date. The overview counts what needs following up today or earlier.
Would you like to hand over part of this work later? Bits Please can set up Claudia to take over suitable, recurring tasks, such as recording requests or scheduling appointments, depending on the package and the supported integrations. Everything in this article also works without it.
Frequently asked questions
Is Google Sheets or Excel better for an appointment list?
Both work. Google Sheets is free with a Google account and easy to share and use on your phone. Excel is the obvious choice if you already use Microsoft 365 and OneDrive. Choose what your team already knows.
Do I still need a calendar in addition to the spreadsheet?
Yes. The calendar shows which times are taken; the list keeps track of what needs to happen with each request, even when there is no appointment yet. An appointment is only Confirmed once it is on the calendar.
How do I keep two coworkers from booking the same time?
Use one shared calendar per chair, room or staff member, always check the calendar before you give a time, and add the appointment right away. To hold a time temporarily, use a visible hold that you remove if the customer doesn't confirm.
Can I send customers a reminder on WhatsApp?
Only do so if the customer has agreed to it, and note that in the Consent to contact column. Which rules apply to you depends on your situation; when in doubt, get advice.
What should and shouldn't go in the notes?
Only what is needed for the appointment to go smoothly, such as a preference for a particular staff member. No medical information, payment details or other sensitive information.
Free downloads for this article
Appointments and follow-up list (spreadsheet)
Every request, appointment and follow-up in one place, with status, person responsible and follow-up date. The overview counts what needs following up today or earlier.