# Reschedule or cancel a Fresha team member's appointments when they are out

> A stylist calls in sick: your agent blocks their Fresha calendar, hands each client to a colleague or a new day, and cancels only what cannot move.

Source: https://cotlet.dev/integrations/fresha-api-mcp-server/reschedule-appointments-in-bulk

A stylist texts at 7 am that they are ill, and their Fresha column is full for the day. Before the first client arrives, someone has to block the time, then go through every appointment and decide: same time with a colleague, another day, or a cancellation with the right reason.

Cotlet does it in your own Fresha account with list\_team\_members, list\_appointments, find\_available\_slots, add\_blocked\_time, reschedule\_appointment and cancel\_appointment, called by your AI agent, an n8n workflow or a script.

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

Hosted · nothing to install or maintain

Official options

## Can Fresha do this on its own?

Fresha has no public API for rescheduling or cancelling (checked 12 Oct 2026). Fresha's Dynamic Reassignment, announced in May 2026, moves online bookings made without a preferred professional to another suitable team member so in-demand slots can be sold; Fresha describes it for filling demand, not for covering an absence, and it never moves a booking where the client chose the team member.

By hand

## How you do it in Fresha today

1. Record the absence in Fresha under Team > Scheduled shifts: click Add, select Time off, choose the team member and Type of absence, set the dates, tick Approved and Save.
2. Open Calendar in Day view, press and hold each of the absent team member's appointments and drag it to a colleague's column or a new time, then confirm in the window that shows schedule conflicts and client notification options.
3. For a move to another day, open the appointment, select Actions (three dots) > Reschedule, browse the calendar for a slot and confirm.
4. For clients who cannot be moved, open the appointment, choose Cancel from the Appointment status menu, pick a Cancellation reason, check the Payment policies, decide on the Notification and click Cancel appointment.
5. The Fresha time off article does not say that adding time off touches the bookings already in the calendar, so every appointment is handled one by one, and a missed one is a client at the door with nobody to serve them.

With an agent

## How to reschedule or cancel a Fresha team member's appointments when they are out

Prompt

```
Sam is sick tomorrow. Block his day, move his clients to another stylist at the same time where someone offers the service, and list the ones you could not place before cancelling anything.
```

1. 01  
### Close the gap first  
The agent finds Sam with list\_team\_members and blocks his hours with add\_blocked\_time, titled with your absence type, so no new client books into the day while the agent works. Recording it as Time off under Team > Scheduled shifts stays a step for you in Fresha.
2. 02  
### Build the list of affected visits  
list\_appointments for Sam and tomorrow returns the day. Appointments already Cancelled or marked No-show are skipped. Each remaining one is sorted by whether the services can go to a colleague at the same location, because Fresha cannot move an appointment to another location.
3. 03  
### Same time with a colleague, else another day  
For each client the agent runs find\_available\_slots for the same services without a team member filter and prefers a start at the original time. A same-time handover changes only the team member. If no colleague is free, it looks at Sam's next working days instead.
4. 04  
### One plan, then one OK per change  
Before any write the agent shows the full plan: who moves where, who goes to a later day, who cannot be placed. reschedule\_appointment then runs per client after your OK, and a slot taken in the meantime sends the agent back to find\_available\_slots rather than retrying the same time.
5. 05  
### Cancel last, with your reason  
Only the clients you choose to cancel go to cancel\_appointment, with a reason from your own Cancellation reasons list and notify\_client on. For a repeating series the agent cancels this occurrence only unless you say otherwise.

### What you get back

Example data

```
Blocked: Sam, Thu 15 Oct, 09:00 to 18:00 ("Sick leave")
8 appointments affected
Same time, new stylist: Anna Smith 10:00 Haircut to Priya, Leo Grant 11:30 Beard trim to Tom, Ruth Diaz 15:00 Blow dry to Priya
Moved to Sam, Sat 17 Oct (asked for Sam only): Ivy Chen 10:00 Colour, Omar Haddad 13:00 Haircut
Cancelled after your OK, reason "Team member unwell", client notified: Dan Mills 17:00 Balayage (no 3 h slot this week)
Not touched: Mark Ellis 12:00, already cancelled by the client
```

### Other ways to ask

- Priya is on holiday from 20 to 24 October. Move her bookings to Tom where he offers the service and give me the rest as a list.
- We close at 3 pm today for a staff meeting. Move every appointment after 3 pm to tomorrow, same team member.
- Sam is out Thursday. Do not change anything yet, just tell me which of his clients could go to a colleague at the same time.
- Cancel all of Sam's appointments on Thursday with the reason "Team member unwell" and notify the clients.

Before you automate it

## What Fresha allows, and what to know first

- Fresha sends no client notification when a reschedule leaves the start date and time unchanged, so a same-time handover to a colleague reaches the client silently unless you tell them.
- Fresha cannot move an appointment to a different location; the help center says to cancel it and book again at the new location.
- Fresha keeps the payment policy attached to a rescheduled appointment, so a client who paid upfront does not pay again, while cancelling an upfront-paid appointment asks you whether to refund or keep the deposit.
- Fresha cancels only appointments dated today or later, and a past visit can only be marked as a no-show, which keeps its reports accurate.
- Fresha does not let a client cancel an upfront-paid appointment online, so that client has to contact you, while a card-confirmed client can cancel online and pay any applicable fee.

reschedule\_appointment and cancel\_appointment ask for your OK by default. To run it on a schedule without you, switch confirmation off for those tools in your dashboard.

Sources: [Fresha Help Center: Reschedule appointments](https://www.fresha.com/help-center/knowledge-base/calendar/263-reschedule-appointments) · [Fresha Help Center: Cancel appointments](https://www.fresha.com/help-center/knowledge-base/calendar/286-cancel-appointments) · [Fresha Help Center: Manage time off for your team](https://www.fresha.com/help-center/knowledge-base/calendar/21-manage-time-off-for-your-team-1) · [Fresha: AI-powered Intelligent Scheduling (Dynamic Reassignment)](https://www.fresha.com/blog/fresha-ai-powered-intelligent-scheduling-beauty-wellness)

REST

## Call reschedule\_appointment from a script

curl

```
curl https://cotlet.dev/api/v1/fresha/reschedule_appointment \
  -H "Authorization: Bearer $COTLET_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"appointment_id":"ap_90311301","start_at":"2026-10-15T10:00:00+01:00","team_member_id":"tm_5530"}'
```

Example response

```
{
"appointment_id": "ap_90311301",
"status": "Booked",
"start_at": "2026-10-16T10:00:00+01:00",
"end_at": "2026-10-16T10:45:00+01:00",
"team_member": "Sam"
}
```

MCP: add https://cotlet.dev/mcp/v1 with the same key; the tool is fresha\_reschedule\_appointment. Example data.

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

Tools

## Fresha tools this automation uses

__Cotlet Fresha tools used to reschedule or cancel a Fresha team member's appointments when they are out__
| Tool | Parameters |
| ----------------------- | -------------------------------------------------------------------- |
| list\_team\_members | location\_id |
| list\_appointments | from, to, status, team\_member\_id, client\_id, location\_id, cursor |
| find\_available\_slots | service\_ids, date, team\_member\_id, location\_id |
| add\_blocked\_time | team\_member\_id, start\_at, end\_at, title, description |
| reschedule\_appointment | appointment\_id, start\_at, team\_member\_id |
| cancel\_appointment | appointment\_id, reason, notify\_client, scope |

[All 14 Fresha tools with descriptions](https://cotlet.dev/integrations/fresha-api-mcp-server#tools)

## Frequently asked questions

### Does Fresha warn me when a new time is outside a colleague's working hours?

Yes. Fresha shows a warning when the new time falls outside the team member's availability or a resource is already in use, and staff can override it. The agent treats that warning as a reason to ask you first.

## More Fresha automations

- [Book Fresha appointments from client messages with an AI agent](https://cotlet.dev/integrations/fresha-api-mcp-server/book-appointments-with-ai)
- [Get a daily Fresha sales summary every morning](https://cotlet.dev/integrations/fresha-api-mcp-server/daily-sales-summary)
- [Fresha API and MCP server: every tool](https://cotlet.dev/integrations/fresha-api-mcp-server)
- [All use cases](https://cotlet.dev/use-cases)

## Give your agent access to Fresha.

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

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