Woman yelling at cat meme: 'You were on Mrs. Lee at 9!' and the cat replies 'It was somewhere in the group text.' Below, one caregiver schedule in Google Sheets and a change message sent only to the caregiver affected. Caregiver schedule template for a home care agency.

Part of: The process that only lives in your head

Article···8 min

EverydayA story, same factsTechnicalThe deeper cut

SOPs

Caregiver schedule template for a home care agency (free, in Google Sheets)

For home care agencies: a three-tab Sheets model with data validation, COUNTIFS overlap detection, weekly hour caps per caregiver and a written-confirmation status flow.

It's Sunday night, and a caregiver texts that she can't make Mrs. R's 7 a.m. visit. You open three places to find who's free: a whiteboard photo, a group chat and last week's spreadsheet. By the time you find a backup, you're not sure anyone told the client's daughter. A caregiver schedule template the whole office runs the same way fixes most of this.

The short answer

Model the caregiver schedule as a visit log, not a weekly grid: one row per visit in a Google Sheet, with Caregivers and Clients as lookup tabs. Every column a formula reads comes from a dropdown, and a visit only counts as confirmed when the caregiver replies. Three custom-formula conditional formatting rules then flag open visits, overlapping visits and changes nobody was told about.

Why caregiver schedules fall apart

A weekly grid (caregivers down the side, days across the top, client names typed into cells) is easy to read but impossible to query. You can't count hours, detect overlaps or filter one client's visits without reading every cell.

The second failure is copies. The owner's memory, the scheduler's sheet, caregivers' screenshots and the group chat all hold a version, and every change has to be applied four times. One gets missed.

A visit log fixes both. Each row is one fact: who, where, when and what state it's in. Formulas can count and compare rows, and the "Notified" column gives you a record of who was told about each change.

Floor vote

Where does your caregiver schedule live today?

One vote per device. Change it any time.

Loading votes…

Step 1: Set up the caregiver schedule template tabs

Create a Google Sheet with three tabs: Caregivers, Clients, Schedule.

Caregivers tab, columns A to E:

  • A, Name: first name plus last initial. This is the key every formula matches on.
  • B, Phone: the number they read texts on.
  • C, Can work: availability in plain words.
  • D, Max hours: a number, used by the overtime rule.
  • E, Hours this week: a formula, added in Step 3.

Clients tab: Client code (like C-014), Area, Usual visits, Family contact. Using a code rather than a name means the Schedule tab and anything you paste into an AI tool carries no client identity on its own. Keep addresses, care plans and diagnoses in your client file.

Schedule tab, row 1, columns A to K:

Week of | Date | Day | Client code | Start | End | Hours | Caregiver | Backup | Status | Notified

Formulas for row 2, copied down:

C2: =TEXT(B2,"ddd")
G2: =IF(OR(E2="",F2=""),"",(F2-E2)*24)

Sheets stores times as fractions of a day, so (End minus Start) times 24 gives hours. An overnight visit that ends after midnight will come out negative; split it into two rows, one per date, so daily views and overlap checks stay correct. Freeze row 1 with View, Freeze, 1 row.

Step 2: Add dropdowns so names are spelled one way

Every formula below matches text exactly enough that "Maria G" and "Maria G " (trailing space) can count as different people. Data validation removes that risk.

Select H2:H500. Click Data, Data validation, Add rule. Under "Criteria", pick Dropdown (from a range) and choose Caregivers!A2:A100. Repeat for I2:I500 (Backup) and for D2:D500 with the Client code range.

For J2:J500, choose Dropdown and add the items:

Scheduled
Confirmed
Changed
Open
Cancelled

Leave the default behavior on, which rejects input that isn't on the list. Under Advanced options you can switch to "Show a warning", but for these columns rejection is the point. For K2:K500, use Insert, Checkbox; an unticked box reads as FALSE in formulas.

Because the dropdown points at a range, adding a caregiver to the Caregivers tab updates every dropdown with no rule edits.

Step 3: Make the caregiver schedule flag its own problems

Select A2:K500 on Schedule. Open Format, Conditional formatting, choose Custom formula is, and add the rules below. The $ before each column letter locks the column so the whole row colors, while the row number stays relative.

Open visits (red):

=$J2="Open"

Overlapping visits for the same caregiver on the same date (orange). Two visits overlap when one starts before the other ends and ends after the other starts. The row always matches itself, so more than one match means a clash:

=AND($H2<>"",COUNTIFS($H$2:$H$500,$H2,$B$2:$B$500,$B2,$E$2:$E$500,"<"&$F2,$F$2:$F$500,">"&$E2)>1)

Changes not yet sent (yellow):

=AND($J2="Changed",$K2=FALSE)

Rules run in list order and the first true rule sets the format, so drag the red rule to the top.

Weekly hours live on the Caregivers tab, because a conditional formatting formula can only reference its own sheet directly (other sheets need INDIRECT). Put the Monday you're checking in G1, then in E2:

=SUMIFS(Schedule!G:G,Schedule!H:H,A2,Schedule!A:A,$G$1)

Select E2:E100 and add the custom formula rule =$E2>$D2 in red.

Step 4: Fill the schedule the same way every week

The weekly caregiver scheduling rhythm

  1. WedCopyCopy this week's rows to next week's dates
  2. ThuFixApply time off, new clients and hospital stays
  3. Thu pmFillRed rows first, then clear every orange overlap
  4. Fri noonSendText each caregiver her week, tick Notified on reply
  5. Daily 3pmCheck tomorrowFilter to tomorrow and look for any color
Same day every week, so gaps surface on Thursday, not Monday morning.
  • Wednesday, copy: filter Week of to this Monday, copy the rows to the bottom, then add 7 to Week of and Date.
  • Thursday, fix: apply time off, new clients and hospital stays; set uncovered rows to Open.
  • Thursday afternoon, fill: clear red first, then every orange overlap.
  • Friday by noon, send: one message per caregiver; tick Notified on reply.
  • Every day at 3 p.m., check tomorrow: filter Date to tomorrow and scan for color.

For a second pass, paste only Date, Client code, Start, End, Caregiver and Status into ChatGPT, Gemini or Claude:

Here is next week's caregiver schedule for a home care agency.
Columns: Date, Client code, Start, End, Caregiver, Status.
1) List any visit with Status "Open".
2) List any caregiver with two visits that overlap on the same date.
3) List any caregiver with less than [TRAVEL MINUTES] minutes
   between visits.
Do not suggest who to assign. Just list the problems.
[PASTE ROWS]

Treat the output as a cross-check of the color rules, not a replacement. Language models can misread times, so verify any item against the sheet. The assignment itself stays with you.

Step 5: Send the shift-change message to caregivers

The state machine is simple: Changed (yellow) → message sent → Notified ticked → caregiver replies → Confirmed.

Hi [CAREGIVER FIRST NAME], a schedule change for you:
[DAY] [DATE], client [CLIENT CODE] in [AREA]
New time: [START]-[END] (was [OLD TIME])
Please reply CONFIRMED so I know you have it.
If you can't make it, reply NO by [DEADLINE] and I'll find cover.
- [YOUR NAME], [AGENCY NAME]

Weekly version:

Hi [CAREGIVER FIRST NAME], here's your week of [MONDAY DATE]:
[DAY] [START]-[END] client [CLIENT CODE], [AREA]
[DAY] [START]-[END] client [CLIENT CODE], [AREA]
Total: [HOURS] hours.
Reply CONFIRMED, or tell me by [DEADLINE] what doesn't work.

The fixed reply word makes replies easy to scan and, later, easy to match automatically. Send from one office number so caregivers know which texts are official. Notify the family contact only after the caregiver confirms, so you never announce a change that falls through.

Example (illustrative): an agency with 25 caregivers

This is a walkthrough, not a client story. A family-owned agency has an owner, one scheduler, about 25 caregivers and 40 clients, so the Schedule tab gains roughly a few hundred rows a week.

The scheduler copies rows forward on Wednesday and filters by Week of to work one week at a time. Older weeks stay in the log, so she can answer "who saw C-014 last month?" with a filter.

At a glance

  • Problem: schedule changes spread across a whiteboard, a group chat and a sheet.
  • What was set up: a visit-log Google Sheet with dropdowns, three color rules and an hours check.
  • Tools it lives in: Google Sheets and the office texting number.
  • Owner still does: assigns cover for hard visits and talks to families.
  • Payoff: not measured here. Count missed or late visits for a month before and after.

Mistakes to avoid

  • Hard-coding ranges too short. If rows pass 500, extend every rule and dropdown range.
  • Typing names over a dropdown. Rejected input is the guardrail; don't switch it to a warning.
  • Counting a sent text as confirmed. Confirmed needs a reply.
  • Letting AI choose cover. It can list conflicts; it can't judge client fit.
  • Clinical details in the schedule. Codes, areas and times only.

Field check

Field check

Three questions. Honest answers. No score sent anywhere but this page.

01 / 03

Is a shift only marked confirmed after the caregiver replies?

If it still doesn't work

If the overlap rule never fires, check that Start and End are real times, not text. Select the column and use Format, Number, Time; text values that won't convert need retyping.

If you outgrow the sheet, look at home care scheduling software. AxisCare lists drag-and-drop reassignment, open shifts sent to selected caregivers by text, email or app, and overtime alerts. AlayaCare lists vacant-visit recommendations and real-time schedule updates to caregiver mobile apps.

Doing this inside the tools you already use

Deeplathe is a team of developers who build custom AI inside the tools a business already uses. For this job, a custom build could watch your Google Sheet for rows marked Changed. It drafts the shift-change text with the right day, time and client code, and holds it for your approval. When the caregiver replies CONFIRMED, it ticks Notified and updates the status.

You still choose who covers each visit and approve each message. See how a custom build works.

FAQ

What should a caregiver schedule template include?

One row per visit: week, date, weekday, client code, start, end, hours, caregiver, backup, status and a Notified checkbox. Keep caregivers and clients on their own tabs so dropdowns and hour totals can reference them. Leave clinical details in the client file.

How do you schedule caregivers for multiple clients?

Log each visit as its own row and sort by caregiver, then date, then start time. A COUNTIFS-based conditional formatting rule flags overlaps on the same date. Leave travel time between visits in different areas, and fill open visits before fine-tuning the rest.

How do you tell caregivers about schedule changes?

Text the day, date, client code, area and new time from one office number, and ask for a fixed reply word like CONFIRMED. Tick Notified when you send, mark the visit Confirmed when they reply, and only then update the family contact.

Is there a free caregiver schedule app?

Google Sheets is free, works on phones, and handles dropdowns, color rules and hour totals. Home care platforms like AxisCare and AlayaCare add caregiver apps, open-shift alerts and visit verification. They mostly quote pricing through demos, so ask each vendor directly.

Keep these

  • One row per visit, one log for the office.
  • Dropdowns on every column a formula reads.
  • Confirmed means the caregiver replied.
  • AI lists conflicts; you assign cover.

Sources

Related reading

Keep these

The working rules

Row-per-visit schema with validated enums, conditional-format rules for open, overlapping and unnotified visits, and SUMIFS hour totals against caps.

Mark

Saved on this device. No account.

Pass along

Comments

Comments

A short note on the job in this piece. Name optional. Saved on this page, not a profile.

Loading comments…