Skip to content

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

  1. Step 1: Request

    What, when and for whom

  2. Step 2: Check availability

    In the shared calendar or list

  3. Step 3: Confirm

    Date, time and place in writing

  4. Step 4: Remind

    Only with permission, once

  5. 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.

The thirteen columns of the appointment and follow-up list (example data, fictional)
ColumnWhat to fill inExample
A · Request dateThe day the request came in10/14/2026
B · SourceHow the customer got in touch (drop-down list)WhatsApp
C · CustomerThe name the customer givesAnita (example)
D · ContactNumber or email address you can reply to+597 7xx xxxx
E · Service / questionWhat the customer wants, in a few wordsHaircut and blowout
F · Requested timeWhat the customer suggestedThursday afternoon after 3:00 PM
G · Confirmed timeWhat has been agreed; empty until something is agreedThu, Oct 15, 3:30 PM
H · StatusWhere the request stands (drop-down list)Confirmed
I · ResponsibleWho takes the next stepSharda
J · Follow-up dateWhen someone looks at it again10/15/2026
K · Consent to contact?Can you send a confirmation or reminder? (Yes/No)Yes
L · Next actionThe next concrete stepSend a reminder on Wednesday
M · NotesOnly what is needed for the appointmentWants 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.

The seven statuses and what needs to happen next
StatusMeaningNext step
NewReceived, not yet answered or scheduledReply the same day
Waiting for customerYou made a suggestion and are waiting for a replySet a follow-up date, for example in two days
ConfirmedDate and time are set and on the calendarUpdate the status after the appointment
RescheduledThe appointment has been moved to another timeRecord the new time in the list and on the calendar
CanceledThe appointment is not happeningFree up the calendar; done
No-showThe customer didn't show upOffer a new time once, then close the row
CompletedThe appointment has taken placeDone

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

  1. Freeze the header row

    Click in row 1 and choose View → Freeze → 1 row. The headings now stay in place when you scroll down.

  2. 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.

  3. Reject invalid input

    In the advanced options, set invalid input to be rejected, and click Done.

  4. Repeat for Source and Consent

    Do the same for B2:B500 with Lists!B2:B6 and for K2:K500 with Lists!C2:C3.

  5. Date columns

    Select columns A and J and choose Format → Number → Date.

In Excel

  1. Freeze the header row

    Choose View → Freeze Panes → Freeze Top Row. In some versions the button has a slightly different name.

  2. 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.

  3. Repeat for Source and Consent

    Do the same for B2:B500 with =Lists!$B$2:$B$6 and for K2:K500 with =Lists!$C$2:$C$3.

  4. 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:

  1. Check first, then commit. Nobody gives a customer a time without first checking the calendar.
  2. Record it right away. Put the appointment on the calendar immediately. Only then fill in Confirmed time and set the status to Confirmed.
  3. 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.
  4. Build in some slack. Leave time between appointments for running over, cleaning up or travel.
  5. Rescheduling means changing two things. Change the calendar and the list: status Rescheduled, new Confirmed time.
  6. 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.

  1. 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.

  2. 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.

  3. Wrap up yesterday (2 minutes)

    Set yesterday's appointments to Completed or No-show.

  4. 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):

Open rows on Tuesday morning (example data, fictional)
CustomerStatusFollow-up dateConsentNext action
Anita (example)Waiting for customer10/19/2026YesAsk whether Friday at 10:00 AM works for her
Ravi (example)Confirmed10/20/2026YesSend a reminder for Wednesday at 2:00 PM
Melissa (example)No-show10/20/2026YesOffer a new time once
Priya (example)New10/20/2026YesCall back about the price of coloring
Kenneth (example)Confirmed10/21/2026NoNo 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.