Docs/Studio/Templates
All templates

Cleaning Rota Board

Drag-and-drop weekly board that assigns cleaners to every checkout.

What this template does

Every checkout is a cleaning. The Cleaning Rota Board pulls upcoming check-outs from the Repull SDK and lays them out as a matrix of listings × days. Drag a cleaner from the sidebar onto a cell to assign them, flip the status pill to mark a cleaning todo, in-progress, or done, and leave a per-cleaning note.

Designed for the property manager (or VA) who currently runs the rota in a Google Sheet. One screen replaces the sheet, the team chat, and the back-and-forth about who is cleaning what tomorrow morning.

What ships with it

  • Date-range filter (default: next 7 days)
  • Listings × days matrix with one card per checkout
  • Drag cleaners from the sidebar onto cells to assign
  • Status pill: todo (slate) → in_progress (amber) → done (emerald)
  • Per-cleaning notes popover for special instructions

What you can customize

Studio is a chat. Paste any of these into the chat panel and the template will be modified in place.

  • Highlight back-to-back same-day turnovers in red so they cannot be missed
  • Add an SMS notification one hour before each cleaning ETA
  • Filter the board to a single cleaner — useful for the cleaner-facing view
  • Add a photo-upload field that the cleaner attaches when they mark a cleaning done
  • Switch the layout from listings × days to cleaners × days for payroll runs

Data this app uses

ReservationsListingsTasks

Checkouts come from `repull.reservations.list({ checkOutFrom, checkOutTo })`. The pure `lib/checkouts.ts` reduces those reservations into one event per (reservationId, listingId, checkOutDate). Cleaning assignments and notes start in an in-memory store; swap to `repull.tasks.create` / `repull.tasks.update` to persist them.

Sample prompts

Five prompts you can paste into the Studio chat to extend this template. Each one is a single self-contained ask — paste, send, review the diff, ship.

  1. 1

    Add a "back-to-back" indicator that highlights any cell where the same listing has both a checkout and a check-in on the same day.

  2. 2

    Add a totals row at the bottom of the board showing how many cleanings each cleaner is assigned to in the visible date range.

  3. 3

    Add a mobile-only cleaner view that lists only the cleanings assigned to the logged-in cleaner, sorted by ETA.

  4. 4

    Send a daily 6 AM SMS to each cleaner with their cleanings for the day, using my Twilio API key.

  5. 5

    Add a "block this slot" button so I can mark a cleaner as unavailable on a given day and have the assignment auto-rebalance.

Starter prompt

Paste this into Studio to scaffold the template from scratch.

Build a cleaning rota. For every reservation checking out, create a task assigned to a cleaner with an ETA. Show today, tomorrow, this week. Cleaners can mark tasks done with a photo. Highlight same-day turnovers in red.

Live demo

cleaning-rota.studio.repull.dev

Source code

Fork or browse the template on GitHub.

Build cleaning rota board in Studio

Open Studio, paste the starter prompt above, and iterate from the live preview.

Open Studio
AI