# Reassign a ZenMaid cleaner's appointments when they call in sick

> A cleaner calls in sick: your agent finds their ZenMaid jobs, proposes who covers each one, reassigns them and tells the customers.

Source: https://cotlet.dev/integrations/zenmaid-api-mcp-server/reassign-cleaner-appointments

A cleaner texts at 6:30 am that she is sick, and her row in the Dispatch View is full until 4 pm. Before the first door opens, someone has to hand each job to a colleague, fix the work orders and warn customers that a new face is coming.

Cotlet does it in your own ZenMaid account with list\_appointments, list\_cleaners, get\_appointment, assign\_cleaners and send\_message, called by your AI agent, an n8n workflow or a script.

[Request access](https://cotlet.dev/app/signup?app=zenmaid) [All ZenMaid tools](https://cotlet.dev/integrations/zenmaid-api-mcp-server)

Hosted · nothing to install or maintain

Official options

## Can ZenMaid do this on its own?

ZenMaid has no API for changing who is assigned to a job (checked 12 Oct 2026), and its Zapier integration has triggers only, no actions. The closest native tool, Actions > Replace on a cleaner profile, is built for someone who leaves: ZenMaid deactivates that cleaner and unassigns them from all future appointments, which is wrong for a one-day absence.

By hand

## How you do it in ZenMaid today

1. Hover the Scheduling icon and open Dispatch View - Horizontal for the day; ZenMaid lists cleaners down the left side with the hours across the top, so the absent cleaner's jobs and everyone else's open time sit in one screen.
2. Click each of the absent cleaner's appointments, go to the Cleaners section of the side panel, click Assign, pick a replacement and click Assign Cleaners. On a recurring job, leave "Assign selected cleaners to all future appointments in this recurring service?" unchecked, or the swap becomes permanent.
3. If the cleaner is out for several days on the Pro Max plan, open Cleaners > Cleaners availability > Edit Time Off and mark the days; ZenMaid's help does not say that this moves appointments already booked.
4. For each customer, open the appointment, click Actions > Send Text/Email, pick a template from Type of communication and rewrite it to name the new cleaner.
5. Repeat for every job. The usual misses are a recurring job swapped for all future dates by one wrong tick, a customer who was never told, and an empty slot discovered when the replacement is already across town.

With an agent

## How to reassign a ZenMaid cleaner's appointments when they call in sick

Prompt

```
Ana called in sick for Thursday. Find every ZenMaid appointment she has that day, suggest a free cleaner for each one, and after I approve, reassign them and text the customers who is coming instead.
```

1. 01  
### Pull the absent cleaner's day  
The agent searches list\_appointments for the cleaner's name over the absence dates and drops cancelled visits. A job with two cleaners stays on the list, because one remaining cleaner may still cover a short visit alone, and the agent asks you about those.
2. 02  
### Read each job before choosing  
get\_appointment gives the address, service type and start time. A deep clean or a move-out needs someone who does that service, and a key-access note means the replacement must see the property notes on the work order.
3. 03  
### Find who can take it  
list\_cleaners gives the active staff, and the same day's schedule shows each person's gaps. The agent prefers a cleaner with a free block around the start time and a nearby previous job. Teams count as one unit, so it never splits a team to fill a single slot.
4. 04  
### Show the plan, then swap one visit at a time  
You see every job with the proposed cleaner and the ones nobody can take. After your OK the agent changes only that date's visit, so a recurring customer gets their usual cleaner back next week. A job that is already reassigned, for example by a colleague in the office, is skipped and reported.
5. 05  
### Tell the customers, and only them  
Each customer gets one message naming the new cleaner. Customers without an email or phone on file are listed for a call, since ZenMaid cannot reach them. Nothing is sent before the reassignment succeeds.

### What you get back

Example data

```
Ana, Thu 16 Oct: 5 appointments
To Maria: Patel household 08:30 Standard Clean, Gomez 13:00 Standard Clean
To Team Two: Whitfield 10:00 Deep Clean (3 h)
To Joy: Okafor 15:30 Standard Clean (recurring, this visit only)
Not covered: Brennan 11:00 Move-out Clean, nobody free before 14:00. Call +1 512 555 0187
Texts sent: 4 customers. No phone or email on file: none
```

### Other ways to ask

- Every evening at 6 pm, list tomorrow's ZenMaid appointments with no cleaner and suggest who has time for each.
- Maria is on vacation 20 to 24 October. Move her one-off jobs to Joy and tell me which recurring customers want to wait for Maria.
- Ana is out this afternoon only. Reassign her jobs after 12:00 and leave the morning alone.
- Show me who could cover Ana's Thursday, but do not change anything yet.

Before you automate it

## What ZenMaid allows, and what to know first

- ZenMaid's Replace action under Cleaners > All Cleaners deactivates the cleaner and unassigns them from every future appointment, so it fits a resignation, not a sick day.
- ZenMaid Cleaner Availability, where time off is entered, is a Pro Max plan feature, and cleaners and contractors cannot enter their own time off there.
- ZenMaid text messages are one-way, so a customer who replies to the reassignment text does not reach your office through ZenMaid.
- ZenMaid sends work orders to cleaners automatically at the time set under Settings > Features > Email & SMS communications, for example the day before at 6 pm, and caps SMS work orders at 156 characters.

send\_message asks for your OK by default. To run it on a schedule without you, switch confirmation off for that tool in your dashboard.

Sources: [ZenMaid help: How to Replace a Cleaner on All Appointments](https://zenmaid.com/answers/en/articles/3283464-how-to-replace-a-cleaner-on-all-appointments) · [ZenMaid help: How to Change the Default Cleaner or Team in a Recurring Service](https://zenmaid.com/answers/en/articles/1768786-how-to-change-the-default-cleaner-or-team-in-a-recurring-service) · [ZenMaid help: Cleaner Availability Feature](https://zenmaid.com/answers/en/articles/10909953-cleaner-availability-feature) · [ZenMaid help: How to Automatically Send Work Orders by Text and Email](https://zenmaid.com/answers/en/articles/371035-how-to-automatically-send-work-orders-by-text-and-email) · [ZenMaid help: Can Customers and Cleaners Respond to ZenMaid SMS Notifications?](https://zenmaid.com/answers/en/articles/3462240-can-customers-and-cleaners-respond-to-zenmaid-sms-notifications)

REST

## Call assign\_cleaners from a script

curl

```
curl https://cotlet.dev/api/v1/zenmaid/assign_cleaners \
  -H "Authorization: Bearer $COTLET_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"appointment_id":"a_993102","cleaner_ids":["cl_1344"]}'
```

Example response

```
{
"appointment_id": "a_993102",
"cleaners": [
"Cleaner B"
]
}
```

MCP: add https://cotlet.dev/mcp/v1 with the same key; the tool is zenmaid\_assign\_cleaners. Example data.

[Schedule it in n8n, Make, Zapier or cron](https://cotlet.dev/integrations/zenmaid-api-mcp-server#automations)

Tools

## ZenMaid tools this automation uses

__Cotlet ZenMaid tools used to reassign a ZenMaid cleaner's appointments when they call in sick__
| Tool | Parameters |
| ------------------ | -------------------------------------------------------- |
| list\_appointments | from, to, query, paid, include\_cancelled, limit, cursor |
| list\_cleaners | include\_inactive |
| get\_appointment | appointment\_id |
| assign\_cleaners | appointment\_id, cleaner\_ids |
| send\_message | appointment\_id, contact\_id, template, channels, body |

[All 13 ZenMaid tools with descriptions](https://cotlet.dev/integrations/zenmaid-api-mcp-server#tools)

## Frequently asked questions

### Will the replacement cleaner get the work order?

ZenMaid sends work orders automatically at the time you set in Settings, for example the day before. ZenMaid's help does not say whether a work order goes out again after a same-day reassignment, so the agent reports which replacements were made after that send time and you can send the work order by hand.

## More ZenMaid automations

- [Reschedule or cancel a day of ZenMaid appointments in bulk](https://cotlet.dev/integrations/zenmaid-api-mcp-server/reschedule-appointments)
- [Mark ZenMaid appointments paid and chase unpaid balances](https://cotlet.dev/integrations/zenmaid-api-mcp-server/mark-appointments-paid)
- [ZenMaid API and MCP server: every tool](https://cotlet.dev/integrations/zenmaid-api-mcp-server)
- [All use cases](https://cotlet.dev/use-cases)

## Give your agent access to ZenMaid.

Free 7-day trial with 5,000 credits, no card needed. Cotlet is independent and not affiliated with ZenMaid.

[Request access](https://cotlet.dev/app/signup?app=zenmaid)
