Hotel Housekeeping Schedules: Allocate Rooms by Arrival Time With AI

Coding Liquids tutorial cover featuring Sagnik Bhattacharya for Hotel Housekeeping Schedules: Allocate Rooms by Arrival Time With AI.
Coding Liquids tutorial cover featuring Sagnik Bhattacharya for Hotel Housekeeping Schedules: Allocate Rooms by Arrival Time With AI.

Give the AI four inputs: today's arrival list with expected times, each departing guest's checkout time, your minutes per room type, and each attendant's hours. Ask for a room-by-room plan that cleans the earliest arrivals first, keeps each attendant to one floor and shows every total, then check those totals in a spreadsheet before you print it.

Assistants are good at ordering and weak at arithmetic, and a plan that looks tidy can put one attendant over their hours or schedule a room before its guest has left. In the 32-room illustration below, the first draft did both, which is why every plan goes through a spreadsheet check before anyone prints it.

Follow me on Instagram@sagnikteaches

A full-house Tuesday in a 32-room hotel

The hotel has three floors: eight rooms on the first (101 to 108) and twelve each on the second and third. Last night 30 rooms were occupied. Today 24 guests leave and 6 stay on, and rooms 106 and 312 are vacant and already clean. Tonight the hotel is full, with 26 arrivals. Five of those guests have confirmed early check-in, at 12:30, 13:00, 13:30, 13:30 and 14:30; everyone else is promised a room from 15:00, or from their stated arrival time if that is later. Two departing guests have arranged late checkouts, at 12:00 and 13:00. Three attendants work from 08:00 to 16:00, and a supervisor inspects.

Connect on LinkedInSagnik Bhattacharya

Run as the paper sheet most hotels use, written by floor in room-number order with attendants skipping rooms still occupied, the day goes badly in a way nobody planned. The first-floor attendant has 220 minutes of work and is finished by 12:25. The second-floor attendant has 418 minutes and finishes at 16:13, after the end of the shift. Three rooms are handed over late: suite 207, an early arrival due at 12:30, is ready at 13:48; family room 211, due at 13:30, at 15:18; and suite 212, due at 15:00, at 16:13. Giving the busiest floor to one person and working in room-number order produces exactly this.

Subscribe on YouTube@sagnikteaches

The inputs the assistant needs, and where each comes from

InputWhat it must showUsual source
DeparturesRoom, room type, the time the guest is expected to leave, late-checkout flagsThe departures report, plus the desk's notes on late checkouts
ArrivalsRoom, expected arrival time, confirmed early check-in, special set-ups (cot, extra bed, connecting rooms, accessible room)The arrivals report and your pre-arrival form
StayoversRoom, type, do-not-disturb flagLast night's housekeeping status list
MinutesCheckout clean and stayover refresh by room typeYour own timing (next section)
PeopleAttendants as A, B and C, start and end time, break lengthThe rota
Floor mapWhich rooms sit on which floorYour own list

Take guest names out of every list before pasting. The plan needs room, type and times, and nothing else about the guests.

Minutes per room: time your team before you trust any figure

For a week, have the supervisor time about ten cleans of each room type with a phone, and take the middle value rather than the average, because one slow room distorts an average. Count walking and restocking inside the room figure. A supervisor's inspection is separate, so leave it out. These are the figures used below, and they are illustrations, not norms:

Room typeCodeCheckout cleanStayover refresh
Standard doubleSD30 minutes15 minutes
TwinTW34 minutes17 minutes
Family room (sleeps four)FM45 minutes24 minutes
SuiteST55 minutes28 minutes
Accessible doubleAD36 minutes18 minutes

Two more numbers frame each day. Attendants start at 08:15 after a 15-minute cart set-up and take a 30-minute break, so an 08:00 to 16:00 shift holds about 435 minutes of working time. Plan each person to no more than 400 minutes of room time, which leaves a margin for the unexpected.

Priority rules written so a machine can follow them

A rule such as "do the urgent rooms first" is useless to an assistant. Give it a ready-by time for every checkout room: the confirmed early check-in time if there is one, otherwise 15:00 or the guest's stated arrival time, whichever is later. Then order the rules by importance, so the assistant knows what to give up when they collide.

  1. Never start a checkout room before its guest has left. The most common error in a first draft.
  2. Every room must be finished by its ready-by time. If one cannot be, the assistant says which and why instead of quietly missing it.
  3. Earliest ready-by first, then the room that frees up soonest.
  4. One floor per attendant where possible. The rule may bend, for rooms with a ready-by of 15:00 or later, to balance minutes.
  5. Stayovers fill the gaps. Do-not-disturb rooms wait until after 14:00.
  6. Balance the finish. No attendant should finish more than 30 minutes after another.

The ready-by rule is easy to misapply, so here are four rooms from the day's list and how each gets its time:

RoomThe guest's situationReady byWhy
207Confirmed early check-in at 12:3012:30A confirmed time always wins.
202Stated arrival 16:00, no early request16:00The stated time is later than 15:00, so it holds.
108Stated arrival 14:00, no early request15:00Nobody is promised a room before 15:00 unless early check-in is confirmed.
212Standard arrival; departing guest stays until 12:00 by arrangement15:00A late checkout moves the earliest start, not the deadline.

The prompt, and the day's list it works from

You are building today's housekeeping plan for a 32-room hotel. Plan three
attendants (A, B, C) working 08:15 to 16:00, each with one 30-minute break taken
between 11:30 and 13:30. No attendant gets more than 400 minutes of room time.

MINUTES: checkout clean SD 30, TW 34, FM 45, ST 55, AD 36. Stayover refresh SD 15,
TW 17, FM 24, ST 28, AD 18. Walking and restocking are included.

RULES, in order of importance:
1. Never start a checkout room before guest_out.
2. Every checkout room must be finished by ready_by. If one cannot be, say which
   and why. Do not break this rule quietly.
3. Earliest ready_by first, then rooms that free up earliest.
4. Keep each attendant to one floor where possible (A floor 1, B floor 2, C floor
   3). Another floor is allowed only to balance minutes, and only for rooms with a
   ready_by of 15:00 or later.
5. Stayovers fill gaps. Rooms marked DND are visited after 14:00.
6. No attendant finishes more than 30 minutes after another.

RETURN: for each attendant a table with order, room, type, task, start, finish,
minutes and ready_by, then total minutes and finish time. Then list any room that
finishes within 30 minutes of its ready_by.

DATA (room, type, task, guest_out, ready_by):
101,SD,checkout,09:00,15:00   103,TW,checkout,10:00,15:00
104,AD,checkout,09:30,14:30   105,SD,checkout,10:30,17:00
107,SD,checkout,11:00,18:00   108,FM,checkout,10:00,15:00
201,SD,checkout,08:30,15:00   202,SD,checkout,09:00,16:00
203,TW,checkout,10:30,15:00   204,FM,checkout,10:30,13:00
206,SD,checkout,11:00,17:00   207,ST,checkout,10:30,12:30
208,TW,checkout,10:00,15:00   210,SD,checkout,10:30,19:00
211,FM,checkout,10:30,13:30   212,ST,checkout,12:00,15:00
301,SD,checkout,09:00,13:30   302,SD,checkout,10:00,15:00
304,SD,checkout,10:30,16:00   305,FM,checkout,09:30,15:00
306,SD,checkout,11:00,20:00   308,ST,checkout,13:00,15:00
309,SD,checkout,10:00,17:30   311,TW,checkout,09:00,15:00
102,SD,stayover   205,SD,stayover DND   209,SD,stayover
303,TW,stayover   307,TW,stayover   310,SD,stayover DND

The guest-out column is the part most owners skip, and it is the one that makes the plan honest. The front desk fills it from the departures report and from what guests said at breakfast, and corrects it on the day.

Save everything above the DATA line as a saved prompt, or as the instructions of a Project in ChatGPT or Claude, so the daily job shrinks to pasting the day's list and reading the result. The rules and minutes change rarely; the data changes every morning.

The allocation, and what changed against the paper sheet

This is the plan that survived checking (the first draft's errors come after). The first-floor attendant takes the afternoon rooms nobody else can reach in time, which bends the one-floor rule exactly where rule 4 allows it.

AttendantRooms, in orderMinutesFinishes
A (floor 1, then three on floor 2)102 stayover, 101, 104, 103, 108, 105, break, 107, 203, 210, 20631414:29
B (floor 2)209 stayover, 201, 202, 208, 207, 204, 211, break, 212, 205 stayover (DND)32414:39
C (floor 3)303 and 307 stayovers, 301, 311, 305, 302, 309, break, 304, 306, 308, 310 stayover (DND)33314:29

Two lists bend rule 3 on purpose. A clears floor 1 before crossing to floor 2, so rooms 105 and 107 come before 203, and 210 before 206, despite later ready-by times; C takes 309 before 304. Every room that waits as a result still finishes at least 90 minutes inside its ready-by, so the supervisor kept the order to save trips between floors. To let the assistant make that call itself, add a line to rule 3: a room that will still finish 90 minutes or more inside its ready-by may be moved to save walking.

Here is attendant B's own sheet, which is what B would be handed. The margin column is the gap between finishing and the ready-by time.

RoomTypeTaskGuest outStartFinishMinReady byMargin
209SDStayovern/a08:1508:3015n/an/a
201SDCheckout08:3008:3009:003015:00360
202SDCheckout09:0009:0009:303016:00390
208TWCheckout10:0010:0010:343415:00266
207STCheckout10:3010:3411:295512:3061
204FMCheckout10:3011:2912:144513:0046
211FMCheckout10:3012:1412:594513:3031
Break12:5913:2930
212STCheckout12:0013:2914:245515:0036
205SDStayover (DND)after 14:0014:2414:3915n/an/a

Look at how the middle of the list is ordered. The three early arrivals come in ready-by order (207, 204, 211), not room-number order, and the break waits until the last of them is done. Room 212 cannot start until its late-checkout guest has gone at 12:00, so it fills the early afternoon. B has a gap from 09:30 to 10:00 because no floor-2 guest has yet left, which is realistic and not an error. Set against the paper sheet, the day looks like this:

MeasurePaper sheet, by floorChecked AI plan
Room minutes for A, B, C220, 418, 333314, 324, 333
Last room finished, A, B, C12:25, 16:13, 14:2914:29, 14:39, 14:29
Rooms handed over late3 (207 by 78 minutes, 211 by 108, 212 by 73)0
Smallest margin before a ready-by timeNone; three were missed31 minutes (room 211)

The plan is not magic. It has the same people doing the same rooms in the same minutes. It simply stops one attendant carrying 43% of the day's work and puts the early arrivals ahead of the room numbers.

What the first draft got wrong, and the checks that catch it

The table above came after two rounds of correction. A typical first draft carries slips like these (illustrative, but all common):

  • A room started before its guest had left. Suite 207 was scheduled for 09:00, though its guest does not leave until 10:30. An attendant following that sheet would knock on an occupied room.
  • A footer that disagrees with its rows. The draft said "B: 298 minutes" while B's rows added up to 324. Assistants state totals with confidence and sometimes get them wrong.
  • A do-not-disturb room in the morning. Room 205 appeared at 09:45, against rule 5.
  • A late checkout handled as a normal one. Suite 212 was listed for 10:45, although its guest was staying until 12:00.
  • A missing break. Attendant C had no break anywhere, which would have pushed the real finish well past 16:00.

The fixes are structural. Rule 1 and the guest-out column exist because of the first slip, and a footer is never trusted. Paste the plan into a sheet and let formulas do the checking, whatever the assistant says about its own work:

Minutes per attendant   =SUMIF(A:A, "B", H:H)           A = attendant, H = minutes
Started too early       =IF(F2<E2, "TOO EARLY", "ok")    F = start, E = guest out
Late for arrival        =IF(G2>I2, "LATE", "ok")         G = finish, I = ready by
Over the cap            =IF(SUMIF(A:A, "B", H:H)>400, "OVER", "ok")

Adapt the column letters to your own sheet, and format the time columns as times so the comparisons work. Leave the guest-out cell empty on stayover rows rather than typing n/a, because a spreadsheet ranks any text above a time and the too-early check would flag every stayover. Keep the break row's 30 minutes out of the minutes column too, or the SUMIF totals will count it. If any cell says TOO EARLY, LATE or OVER, go back to the assistant with that exact line: "Room 207 starts at 09:00 but guest_out is 10:30. Fix it and re-check every other room against rule 1."

At 12:30, with one attendant gone home

Plans break during the day, and re-planning is where an assistant pays for itself. At 12:30 attendant A goes home sick, having finished 102, 101, 104, 103, 108 and 105. Room 107, begun at 12:25, is treated as not started.

It is now 12:30. Attendant A has gone home sick. A has finished 102, 101, 104, 103,
108 and 105. Treat 107 as not started. B is in 211 and C is in 304; both carry on.
Re-plan the remaining rooms for B and C only: 203, 206, 210 and 107 now belong to
them. Keep the same rules. Show each remaining room with start, finish and margin,
and flag anything finishing within 30 minutes of its ready_by.

The first answer appended room 203 to the end of B's list, after 205, finishing it at 15:13. That is 13 minutes after its 15:00 ready-by, and the flagging instruction is what exposed it. Asked for more margin, the assistant moved 203 to C straight after room 304, and the rest fell into place:

AttendantRooms picked upNew minutesNew finishTightest margin
B206, 210 (after 205)38415:3931 minutes (room 211)
C203 (after 304), 107 (last)39715:3312 minutes (suite 308)

Nothing is late, but C is now at 397 of a 400-minute cap and 12 minutes from missing suite 308. That is the moment to ask the supervisor to take a room, or to call in cover, rather than to trust a plan with no slack left. The assistant reports the arithmetic; deciding how much risk the day can take stays with a person.

Handing the plan to the team

A plan only works if the people holding it believe the times. Print one page per attendant, showing each room with its type, task and ready-by time, and give the front desk the short list of early arrivals (here 207, 204, 211, 301 and 104) with the time each room will be ready. The property system stays the record of room status: attendants and the supervisor still mark rooms clean and inspected as they go, so the desk sees real progress and not the plan's promise.

Invite corrections in the first week. If an attendant says suite 207 takes 70 minutes, time it and change the standard; a plan built on wrong minutes teaches the team to ignore it. If some attendants read more easily in another language, ask the assistant to translate their page, keep room numbers and times untouched, and have a fluent colleague check the result once. And be clear about what the plan is for: it spreads work and orders rooms, and it is not a league table of people. The wider question of how many attendants a shift needs sits in hotel staff scheduling for the front desk, housekeeping and breakfast.

What stays with the supervisor

The plan covers cleaning minutes and deadlines. It knows nothing about the rest of the building, so several decisions stay with a person.

  • Inspection order. The supervisor inspects the early arrivals and the accessible room first, which is why those rooms carry margin in the plan. Add the inspection to the ready-by thinking: a room finished at 12:29 and inspected at 12:45 is not ready for a 12:30 arrival.
  • Connecting rooms. When one family books two rooms, treat them as one job on one attendant with one ready-by time. Tell the assistant so, because it will not guess.
  • Rooms blocked for repair. A room that is out of order must not appear on the list at all. A maintenance request log with a room-out-of-order tracker gives the desk the up-to-date list to subtract.
  • Set-ups. Cots, extra beds and special requests add minutes. Add a "set-up" line with its own time to the room list, or the plan will run optimistic on family days.
  • Guests who do not leave when expected. The desk knows who is lingering over breakfast. A call to the supervisor at 10:45 is worth more than any re-plan.

The same prompt on a quiet Sunday

A day with few arrivals shows the other side of the method. On the example Sunday, 21 guests leave (12 standard doubles, 4 twins, 3 family rooms, a suite and an accessible room), 4 stay on (two standard doubles and two twins) and only 7 rooms are re-sold that night. Routine work comes to 722 minutes of checkout cleans plus 64 of stayovers, so 786 minutes against 1,200 of capacity across three attendants.

Fourteen of the departing rooms have no arrival today, so their ready-by time is "none". The assistant can sequence the seven re-sold rooms first and use the slack. The spare 414 minutes cover nine 45-minute deep cleans (405 minutes in all) on rooms with no arrival: mattress turning, curtains, carpet treatment. Without a ready-by column, nobody can see which nine rooms are safe to take that work. Only the ready-by and room list changed. The prompt, rules and checks stayed the same.

Two weeks later: what to measure

Before you judge the method, record three things for a fortnight on each side of the change. First, rooms handed over after their ready-by time, counted by the front desk and not by the plan. Second, overtime minutes across the team. Third, how long the supervisor spends building the day's sheet. Illustrative figures for the same hotel look like this:

MeasureFortnight beforeFortnight after
Rooms handed over late, across four full-house days91
Overtime across the team190 minutes35 minutes
Supervisor's planning time each morning40 minutes15 minutes

Keep a note of every day the plan needed a manual change and why. If the same cause keeps appearing, such as guests leaving later than the departures report says, adjust the guest-out times you feed in. And watch the guests' side as well: comments about waiting for a room are the best independent check, and turning post-stay survey comments into a ranked fix list shows how to count them month by month.

Smaller hotels, bigger hotels and no arrival times

  • Twelve rooms and one or two attendants. There is little to balance, so the value is in the ready-by ordering and the guest-out rule. The sheet is a short list, and a spreadsheet check takes a minute.
  • Eighty rooms or more. Plan by section, with one supervisor and one prompt per section, because a long list invites more errors. Check whether your property system already has a housekeeping module that does some of this, and use the assistant for the exceptions.
  • No expected arrival times in the system. Ask for them: a line in the pre-arrival email or an online check-in step does it, and check-in apps can capture times at the same moment. Until you have them, set every ready-by to 15:00 and give priority only to confirmed early check-ins.
  • Late checkouts sold as an extra. Every one adds a constraint, so enter them on the departures list before the plan is built. Upselling late checkout is worth doing, provided the housekeeping plan hears about it by the morning.

Once the standing prompt is saved, the daily job takes a supervisor about 15 minutes: paste the list, read the flags, run the checks, print. What keeps it honest is the data going in. Every rule above leans on the guest-out and ready-by columns being true, so spend the effort there and not on polishing the prompt.

Questions about planning housekeeping with AI

What if we only assign rooms to guests at check-in?

Plan by room type instead of room number. Assign rooms the evening before only for confirmed early check-ins, connecting rooms and special requests, and give the rest a ready-by of 15:00. Then ask the assistant to have enough clean rooms of each type ready by each hour to cover the expected arrivals, and let the desk allocate from the clean list as guests arrive.

Can the AI pull the arrival list from my booking system by itself?

It depends on your system. Most can print or export arrival and departure reports, and pasting those into the assistant is a fine start. Direct connections vary by vendor, so ask yours before paying for one. Remove guest names first, because the plan needs only room, type and times.

What if a guest has not left when the attendant reaches the room?

The plan is a guide and the supervisor adjusts it. That is why the first rule is never to start a checkout room before the guest has gone. The attendant skips ahead, the room goes to the back of that person's list, and the next re-plan takes the delay into account.

Is it fair to use AI to plan my team's work?

It can be, if the plan comes from room data and not from watching people. Share the rules with the team, let attendants flag times that look wrong, and use the allocation to spread work evenly. Do not feed in names or performance notes. Check hours and breaks against your local employment rules.

Further reads

Sources: the room list, minutes per room type, shift pattern and results are an illustration built for this tutorial; time your own team and check your own property system's reports.

Want your housekeeping plan built from the arrival list?

On a 1:1 call we'll look at which reports your booking system can export, set time standards and priority rules for your rooms, and build a daily plan your supervisor can check in five minutes.

Book a 1:1 call with me