Start your free 14-day trial
Product Job Scheduling & RotasInvoicing & BACSHealth & SafetyStaff Mobile AppAnalytics & Reporting
Solutions Commercial CleaningDomestic CleaningEnd of TenancyFacilities ManagementWindow Cleaning
Free tools Cleaning Quote CalculatorPrice Per m² CalculatorUK VAT CalculatorProfit Margin CalculatorTrue Cost of a CleanerHoliday Entitlement CalculatorContract Tender CalculatorClient Lifetime Value All 14 free tools →
Learn How to start a cleaning businessHow to price cleaning jobsHow to win cleaning contractsHealth & safety for cleaners CleanFlo vs JobberCleanFlo vs ZenMaid
Browse all guides

Repeating a job

Most cleaning revenue is the same job over and over: a weekly office, a fortnightly house, a monthly deep clean on a contract. Repeat books the whole run in one go.

In the app: Schedule Open CleanFlo
On this page

Repeat sits in the Add Job drawer, between When and Services, under a heading with a small looping arrow on it. It is only offered on a new job. Open an existing job to edit it and the section is not there at all, which is the first clue to how the feature works.

What Repeat actually does

CleanFlo does not store "every Monday at nine until further notice" and draw it onto the calendar. It works out every date the pattern lands on and writes a real job for each one, there and then, at the moment you press save. Book a weekly clean twelve times and you get twelve rows in the database, twelve chips on the calendar, twelve entries in the cleaner's app.

That is a deliberate trade. It costs you a little when the arrangement changes, because there is no single rule to edit. It buys you a great deal the rest of the time: every job in a series can be moved, repriced, reassigned, cancelled or invoiced entirely on its own without disturbing the ones either side of it. A client who wants their Monday moved to a Tuesday for one week in October is a two-field edit, not an exception rule.

Picking a frequency

Four chips, one selected at a time. It starts on No repeat, and while that is selected the rest of the section stays hidden.

No repeatWeeklyFortnightlyMonthly
The frequency chips. Selecting anything other than No repeat reveals the end-mode chips and the summary line beneath them.
ChipSteps bySummary line says
WeeklySeven daysevery week
FortnightlyFourteen daysevery 2 weeks
MonthlyOne calendar monthevery month

Weekly and fortnightly step in whole days, so a job booked on a Monday stays on a Monday all the way through, including across the October clock change. Monthly steps by calendar month and keeps the date number, so the 3rd becomes the 3rd. Where the date does not exist in the next month it moves back to the last day that does: a job booked on the 31st of January repeats on the 28th of February, then the 31st of March.

Telling it when to stop

Once a frequency is chosen, two more chips appear: Number of occurrences and Until date. They are the same question asked two ways, and which one you use is usually decided by how the client's contract is written.

Number of occurrences
The default. Reveals a field labelled Occurrences, pre-filled with 12, minimum 2. Use it when the arrangement is counted: eight visits, a term, a season.
Until date
Reveals a field labelled Until, a date picker that will not let you choose anything earlier than the job's own first date. Use it when the contract has an end date on it.
Add Job
Schedule a new cleaning job
18/08/2026
18:30
Duration (mins) 90
No repeatWeeklyFortnightlyMonthly
Number of occurrencesUntil date
Occurrences 12

Creates 12 jobs · every week · starting 18 Aug 2026 · ending 3 Nov 2026

CancelAdd 12 Recurring Jobs
The Repeat section set to weekly, twelve times, starting on 18 August. The Courier line at the bottom is the drawer telling you exactly what pressing save will produce.

Switching to Until date swaps the count for a calendar. The pattern then runs to the last date on or before the one you chose, so a weekly clean from 18 August 2026 set to run until 31 December 2026 produces twenty jobs and finishes on 29 December: the last Monday that fits, not the date you typed.

No repeatWeeklyFortnightlyMonthly
Number of occurrencesUntil date
Until 31/12/2026

Creates 20 jobs · every week · starting 18 Aug 2026 · ending 29 Dec 2026

The same section in Until date mode. The Until field will not accept a date before the job's own first date, so an end date cannot land in front of the start.

Reading the summary line

Under the fields, in small Courier print, the drawer states what it is about to do:

  • Creates 12 jobs is the real count, not an estimate. It is the same number the save button uses.
  • every week restates the frequency in words, so a mis-clicked chip is obvious.
  • starting 18 Aug 2026 is the first date in the When section.
  • ending 3 Nov 2026 is the last date the pattern actually lands on.

The save button changes to match: Add 12 Recurring Jobs, then Creating 12 jobs… while it writes them, then a toast reading 12 recurring jobs created. Read the summary line before you press it. It is the only chance to notice that a stray keystroke turned 12 into 120.

Creates 12 jobs · every week · starting 18 Aug 2026 · ending 3 Nov 2026

Cancel Add 12 Recurring Jobs
Summary line and save button, which always agree with each other. Both are recalculated on every keystroke in the Repeat section.

Using it for contract work

This is what Repeat is for. A contract cleaning round is the same visit, at the same site, at the same time, for months at a stretch, and typing it out by hand is where scheduling mistakes come from.

The practical shape of it: build the job once with the right services, the right duration and the right checklist, save it as a template so next year's renewal takes a single click, then use Repeat to lay the whole term onto the calendar. From there the contract is just work on the grid like everything else. It counts towards the summary strip, it feeds the reports, and each visit can be invoiced on its own or rolled up.

Mon
Tue
Wed
Thu
Fri
Sat
Sun
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
1
2
3
4
5
September in month view with two weekly contracts running through it. Every dot is its own job record: nothing on this screen knows or cares that they were booked in one go.

Assign the cleaner while you are booking the series and CleanFlo checks every single date for a clash before it creates anything. If any of them overlap work that person already has, nothing is written and you get the dates listed back: Marek Kowalski has conflicting jobs on: 2026-09-15, 2026-10-06. Either move those two jobs first or book the series unassigned and put people against it afterwards.

Changing or ending a series

Because the jobs are real and separate, there is no "edit this series" control and no "this and all following" prompt. Opening one job and changing it changes that job. The other jobs in the run are untouched.

What that means in practice:

One visit moves
Open it, change the date or time, save. Nothing else in the run notices. This is the case Repeat handles best.
The price changes from January
You will have to edit each remaining job, or delete the rest of the run and re-book it at the new price. Deleting and re-booking is usually quicker past about six jobs.
The contract ends early
Use Select in the Schedule header, click every remaining job in the run, then Cancel on the bulk bar. They stay on the calendar as cancelled, and the cleaner is emailed and pushed about each one.
The contract was booked in error
Same selection, but Delete. That removes the jobs entirely and cannot be undone.

Selection mode is the tool for all of this. Turn it on, work through the weeks with the arrows selecting as you go, and the bulk bar at the foot of the screen keeps a running 14 jobs selected while you do it.

Common questions

Can I add a repeat to a job I have already created?
No. The Repeat section only appears on a new job. To turn a one-off into a regular, open it, use Duplicate from the Job Details drawer, and set the repeat on the copy. The original stays where it is.
What happens to a recurring job when a bank holiday lands on it?
Nothing. CleanFlo has no holiday calendar and will happily book Christmas Day. Book the series, then find the dates you do not want and cancel or delete them individually.
How many jobs can one repeat create?
Up to 260 in a single save. That is the hard cap, and it applies whether you asked for a count or an end date. Five years of weekly cleans hits it exactly.
Do all the jobs in a series share anything?
They are tagged with the same series identifier and the frequency they were created at, which is how the data knows they belong together. Nothing in the interface exposes it yet, so treat them as separate jobs.