Harry's Clean Team
The grid reads the standing roster underneath it and any dated exception on top. Click a square to mark someone sick, on leave, or available for a one-off. Nothing here blocks an assignment — the scheduling board warns you and makes you confirm, because reality overrides a roster often enough that a hard block would just teach you to stop keeping it current.
The week
Loading…
Loading…
Demand is job length × crew size for every clean booked that day. Supply is what the roster says exists, capped at each person's daily maximum. A red day cannot be crewed from the roster on file no matter who you assign — that is a hiring or a re-booking problem, not a scheduling one.
Rostered on At or over their daily cap Rostered off Exception (sick, leave, holiday) No roster on file
Standing roster
The normal week for each cleaner. Tick the days they work, set the window they are contactable within, and cap their day. A cleaner can hold more than one pattern now — Mon–Fri 09:00–17:00 and Sat 09:00–13:00 — so long as two patterns do not claim the same day at the same time. This table edits their main one; use Apply to several above to set the same week across a group.
Apply one pattern to several people
Cleaner Days From To Max h/day Notes
Loading…
Fill the week
One button proposes a crew for every uncrewed job in the range, ranked by who usually cleans that property, who is freshest, and who has hours left in the day. Nothing is saved until you press Commit. Change anyone you disagree with first — this is a suggestion, not a decision. The draft is internally consistent: nobody is proposed for two jobs at once, and hours drafted here count towards their daily cap.
Open shifts
Jobs put in front of the whole team over WhatsApp. First person to tap Accept gets it and everyone else is told it has gone. A job needing two people stays open until both slots are taken, so the first acceptance does not close it. Anyone with no WhatsApp link still needs a phone call.
Job When Status Closes Responses
Loading…
Crew the unassigned jobs
Every scheduled clean with nobody on it. Pick one and the right-hand side ranks all eight cleaners against it — rostered, free, under their cap, not already somewhere else — worst last, with the reason spelled out.
Unassigned
Loading…
Pick a job on the left
Nothing selected.
Same-Day Turnovers
Tap to view bookings
Check-outs Today
Properties to clean
Check-ins Today
Must be ready
Cleans Done
Submitted today
Currently occupied
Loading…
Checklist due
Across all properties
Checklist overdue
Missed period
Consumables tracked
Across configured properties
Today's Priority Operations
Loading…
Guest stay
Owner block
+N more
Check-out
Scheduled clean
Unassigned
Clean done
Linen
Crew gaps
Slots still to fill, soonest first
Loading…
Select a day
Click any day to see its events and actions.
Notifications
Last 7 days · bookings & changes
Loading…
Revenue This Month
Across all properties
Active Now
Currently occupied
Upcoming 30 Days
Confirmed check-ins
Avg Nightly Rate
Blended across OTAs
All Bookings
Loading…
Shortage Alerts
Check-in within 7 days
With Service
Sets out for cleaning
At Properties
Sets in place
Total Sets Tracked
Across all properties
Linen Status by Property
Loading…
Service Log
Loading…
Loading…

Cleaners raise flags from the Supply Check on the clean form. The shopping-list generator on the Consumables tab builds from open flags.

Clients

Contact & billing details per client, and the email address the daily cleaning-report draft is sent to. Full new-client onboarding (with properties & calendar) is in the new-client wizard.

Loading…
Submitted Clean Reports
Loading…
Upcoming Schedule
Loading…
Pay per clean: $
Cleans by Cleaner
Loading…
Audit Log
Audit log
Activity audit log will surface here when the audit module ships.
Properties

Click a property to manage its amenities, photos, and guest access info. Hero photos appear as card thumbnails.

Loading…
Property Checklists
Create and edit cleaning checklists for each property
Loading…
Service Tiers

Three tiers define what’s included and how HCT bills each property. Read-only — tier configuration is managed in service_tiers.

Loading…
Owner Statements
Loading…
Generate Statement

Defaults to previous calendar month if period is blank. Requires co_host or full_service tier and an active owner link.

Guest Inbox

Open threads for co-host and full-service properties. Reply via the OTA's UI, then log the message here. Threads are created automatically when a confirmed booking is added.

Loading…
Open Work Orders

Non-completed work orders ordered by priority then age. Click any row to view detail, update status, or complete the job.

Loading…