A two-crew cleaning company in Columbus ran its calendar the way most do: a Google Sheet the owner rebuilt every Sunday night. Recurring clients got penciled in first — the Hendersons every other Friday, the dental office weekly — then deep cleans and move-outs wedged into whatever remained. Monday would arrive with three texts anyway: one client sick and rescheduling, one wanting to add a fridge clean, one new inquiry asking for "whenever you're free," which meant twenty minutes of scrolling to find out.
The hard part of cleaning scheduling isn't the calendar — it's the constraints. Two crews means at most two jobs at once. The north-side zone is only worth the drive on Tuesdays. A 3,000-square-foot move-out is a different animal from a 1,200-square-foot biweekly maintenance visit. The sheet encoded all of that in the owner's head-math; nothing client-facing did.
Booking platforms for cleaners charge $40–150 a month and mostly assume every job is a one-off. So the owner kept the sheet and had AI build the booking page over it — free, in about the time it takes to clean a bathroom.
Three tabs carry the whole operation:
A row in Jobs:
| Column | Example |
|---|---|
| Client | Henderson family |
| Address / zone | 44 Larkspur Ct — North |
| Service | Biweekly maintenance |
| Frequency | Every other Friday |
| Crew | Crew B |
| Date/time | Fri, 9:00 AM |
| Duration | 2 hrs (1,900 sq ft) |
| Entry notes | Garage keypad 4417, cat stays inside |
If your version tracks square footage in the notes column or defines zones by highway exit, leave it alone — the AI works with the sheet you have, not the sheet a vendor wishes you had.
Create an account at lovespreadsheets.com. Everything in this article happens on the free tier; the paid upgrade is a custom domain and logins for crew leads, neither of which you need on day one.
Select the Website template. Add Twilio credentials (Account SID, Auth Token, phone number) if you want text confirmations and day-before reminders — around a penny per message.
Then spell out how scheduling actually works at your company:
"New clients enter their address and approximate square footage, then choose maintenance, deep clean, or move-out from the Service List — duration and price scale with size. Recurring clients pick weekly or biweekly and the system books the whole series. Never let a crew hold more than three jobs in a day, and only offer North-zone addresses times on Tuesdays and Thursdays. Write every visit into the Jobs tab, text the client a confirmation with a reschedule link, and text the crew lead the night before with the address and entry notes."
The three requests that matter most:
Hit AI Optimize, answer whatever the AI asks about edge cases, and the build takes about 15–20 minutes.
A client taps your link, enters an address and home size, and sees only real openings — days with crew capacity left, inside their zone's windows, long enough for their square footage. A sick-kid Tuesday gets handled through the reschedule link in the confirmation text, and the vacated slot reappears for anyone hunting a deep clean.
On your end, the Sunday-night rebuild is gone. Bookings arrive as rows, series stretch into the future, and when you drag the dental office to Wednesday in the sheet, the page's availability shifts with it instantly.
Capacity math stops living in your head. The per-crew cap is enforced by the booking page itself, so an overbooked Friday becomes structurally impossible instead of something you catch on Sunday.
Recurring revenue looks like a schedule, not a memory. Every weekly and biweekly series exists as future rows — you can see December's committed hours in July.
Entry details reach the right person. Keypad codes and "cat stays inside" notes travel from the row to the crew lead's night-before text without you forwarding anything.
Can a recurring client skip one visit without breaking the series? Yes — the reschedule link moves or skips a single occurrence while the rest of the cadence stays put.
How do prices work if I quote by home size? Put your brackets in the Service List tab — under 1,500, 1,500–2,500, over 2,500 square feet — and the page quotes and blocks time from whichever bracket the client selects.
Can I take a deposit on move-out cleans? Yes — ask for it in your description. Move-outs are the no-show-prone jobs, and requiring payment details at booking filters out the flaky ones.
Your sheet already knows the zones, the caps, and every keypad code. Bring it to lovespreadsheets.com, describe a week at your company in plain English, and let clients book around your real constraints — while Sunday nights go back to being Sunday nights.
The team turning other people's spreadsheets into software they actually trust — one sheet at a time.