DM scripts for rescheduled bookings: paste-ready replies for solo beauty pros
Reschedules are the second-most-asked operator question after no-show recovery, and they're trickier because the client already paid the deposit. The script has to do three things at once: keep the deposit attached to the new appointment, keep the policy consistent (so a reschedule doesn't quietly become a free re-booking), and keep the client feeling like a human rather than a policy violator. This post is the six paste-ready Instagram DMs for the reschedule moments solo barbers, stylists, nail techs, lash artists, and mobile groomers actually run into: the operator-initiated reschedule (your fault), the client >48h reschedule, the client <48h reschedule, the day-of "running late, can we move it?", the multi-reschedule cap, and the rescheduled-then-no-show recovery. Copy them into your Saved Replies and stop re-typing the same paragraph for the eighth time this month.
The four reschedule moments solo pros actually have
Every reschedule conversation is one of four moments. Picking the right one before you reply is half the work, because the script that closes the >48h reschedule will lose a <48h client, and the script that handles the day-of-running-late client will sound cold for the operator-initiated case. The four moments:
- Operator-initiated — you have to move the appointment (sick kid, power outage, you double-booked yourself). The deposit follows the client, no questions asked, and the apology is the script.
- Client >48h — they're inside your reschedule-friendly window. The deposit rolls to the new slot. This is the easy script.
- Client <48h — they're inside the deposit-holds-the-slot window. The script has to deliver the policy without sounding punitive. This is the hard one.
- Day-of / running late — they're not rescheduling so much as asking if the slot can shift 90 minutes. Different problem, different reply.
The scripts below are tagged by moment, plus two extras for the multi-reschedule cap (the client who reschedules three times in a row) and the rescheduled-then-no-show case (they rebooked after >48h, then ghosted the replacement slot). The refund policy post covers the policy text these scripts assume; the no-show recovery scripts post picks up where Script 6 leaves off if the rescheduled appointment also lapses.
Script 1 — Operator-initiated reschedule (your fault)
The most expensive reschedule mistake a solo pro makes is the apologetic-but-vague DM that doesn't immediately offer the new time. The client reads "I have to move Saturday" and then sits in ambiguity for six hours while you figure out a replacement slot. Half of them cancel during the wait. The right script offers a concrete replacement in the same message, makes the deposit explicitly portable, and includes a goodwill add-on for the inconvenience.
Hey — really sorry, I have to move your Saturday 2pm. My next available is Sunday 11am or Monday 4pm — does either work? Your $25 deposit comes with you to the new slot, and I'll throw in a complimentary [scalp massage / brow touch-up / 10% off the service] on the day for the trouble. Let me know which works and I'll send the new confirmation.
Five things this script is doing on purpose: the apology lands first, the alternatives are concrete (not "when works for you?"), the deposit-portability is explicit (so the client doesn't worry they have to pay again), the goodwill add-on is small but specific (a vague "I'll make it up to you" reads as a brush-off), and the close-out is one decision the client has to make. Don't offer more than two alternative slots — three or more turns the DM into a calendar negotiation. The client communication templates post has the email and SMS equivalents if the original confirmation went through those channels too.
Script 2 — Client-initiated reschedule, >48h out
This is the easy one. The client is inside your reschedule-friendly window, the deposit rolls to the new slot, and the script just needs to confirm the move without re-litigating the policy. Short, warm, no friction.
No worries! Since we're more than 48 hours out, your deposit rolls to the new appointment — just grab a slot here that works: chairhold.com/yourname. I'll see the new booking on my end and you'll get a fresh confirmation. (You don't pay another deposit — same one follows you over.)
The phrase "same one follows you over" is the load-bearing line — about one in four clients who reschedule don't realize they aren't paying a second deposit, and the ambiguity is enough to make some of them ghost. State it explicitly. The deposit-amount post covers why the deposit is sized to be psychologically portable, not punishing. If your booking link auto-handles reschedules (most modern booking platforms do), trim the message — a paragraph that the link could've handled is wasted DM real estate.
Script 3 — Client-initiated reschedule, <48h out
This is the script that earns its place in your Saved Replies. The client is asking to move an appointment that's already inside the deposit-holds-the-slot window. If you cave and let them roll for free, the policy is cosmetic and you've trained them to ignore it. If you deliver the policy badly, you lose the relationship. The right script delivers the policy in two specific moves: name the policy without apologizing for it, and offer a concrete path forward that doesn't require the client to absorb the loss in silence.
Totally understand! Quick heads-up — since we're inside 48 hours, the deposit holds Saturday's slot rather than rolling. I can hold it for you for a Sunday or Monday slot if you can do this weekend (deposit applies to the new one), or refund 50% if neither works. Which do you want me to do?
What this script is doing: name the policy ("since we're inside 48 hours"), name the consequence without flinching ("the deposit holds Saturday's slot rather than rolling" — <em>not</em> "unfortunately I can't refund"), then immediately offer a face-saving path (a same-week reschedule that does rescue the deposit) and a partial-refund fallback. The 50% partial refund is optional; some operators don't offer it and that's fine, but having it in the script gives the client a non-zero option if the same-week reschedule won't work, which keeps a third of these conversations from becoming Yelp reviews. Whichever path you pick, write the policy line once and don't apologize it away. Apologetic policy delivery is what trains clients to negotiate.
Script 4 — Day-of "I'm running late, can we move it?"
This is the reschedule-shaped DM that isn't actually a reschedule. The client is asking if the slot can shift by 30-90 minutes the day-of. Treating it like a <48h reschedule loses the client; treating it like operator flexibility erodes your buffer. The right script asks one diagnostic question and replies based on the answer.
No problem — how late are we talking? If it's under 30 minutes, I can usually shift the timing without rebooking. More than that and we'd need to move you to the next opening (Tuesday 11am or 4pm) — your deposit follows you. Let me know.
The 30-minute threshold is the load-bearing number. Most solo schedules have a 15-minute pre-appointment buffer and a 15-minute post-appointment buffer, so a 30-minute slip is absorbable; a 60-minute slip eats the next client's slot, which is when "running late" becomes a rebook. State the threshold up front so the client knows whether they're asking for a small favor or a hard reschedule. The no-show-rate post covers why "running 90 minutes late, then ghosting" is one of the most common no-show modes — better to rebook explicitly than to wait it out.
Script 5 — The multi-reschedule cap (3rd reschedule = forfeit)
About one in twenty clients will reschedule three or more times before showing up. Most solo pros tolerate it the first two times then quietly stop replying on the third, which leaves the deposit in limbo and the calendar blocked. The right move is to set the cap explicitly in your policy (covered in the refund policy post) and then enforce it with this script the moment the third reschedule request comes in.
Happy to move it once more — heads up that this is the third reschedule, so per the booking policy this is the last move I can hold the deposit for. If something comes up before [new date], the deposit forfeits and you'd start fresh on a new booking. Want to lock in [new date] or wait a week and rebook from scratch?
The two specifics: name which reschedule this is ("this is the third reschedule") so the client knows you're tracking, and name the consequence in the future-conditional, not the past-punitive ("if something comes up", not "since you've rescheduled three times"). The future-conditional framing reads as a policy reminder; the past-punitive reading reads as a scolding. Same outcome, very different retention.
Script 6 — The rescheduled-then-no-show recovery
The client rescheduled cleanly >48h out (Script 2 fired, deposit rolled). The replacement slot then no-shows. This is a different conversation than a fresh no-show because the deposit has already moved once — it's both the client's "second strike" and the most expensive single slot you've held in the past two weeks. The script needs to be short, name the deposit forfeit (because policy says it does after a no-show on a rescheduled slot), and leave one door open if the client wants to rebook from scratch.
Hey — sorry I missed you Tuesday. Per the booking policy, the deposit applied to that slot since it was the rescheduled appointment. If you'd still like to come in, you'd start with a fresh booking through the link: chairhold.com/yourname. Totally understand if life's busy right now — let me know either way.
The "let me know either way" close is what preserves the option of a future relationship without begging. Don't write "I hope everything's okay" or "no worries" — both read as inviting an excuse, which forces the client to manufacture one. Treat it as transactional and let them re-engage on their own terms. The no-show recovery post has three additional scripts depending on whether you actually want this client back.
Reschedule scenario → script decision table
When a reschedule DM comes in, this is the table to scan before you reply. The diagnostic questions are: who initiated the reschedule, how far out is the appointment, and how many times has this client rescheduled before.
| Scenario | Script | Deposit treatment |
|---|---|---|
| You moved the slot | Script 1 | Rolls + goodwill add-on |
| Client, >48h, 1st reschedule | Script 2 | Rolls cleanly |
| Client, >48h, 2nd reschedule | Script 2 + soft-mention "next one's the cap" | Rolls, but flag |
| Client, <48h, 1st reschedule | Script 3 | Holds slot or partial refund |
| Day-of, <30 min late | Script 4 (shift in place) | No reschedule needed |
| Day-of, >30 min late | Script 4 (rebook) | Rolls to next opening |
| Client, 3rd reschedule | Script 5 | Last roll, then forfeit |
| Rescheduled slot no-shows | Script 6 | Forfeit, fresh booking |
What NOT to say in a reschedule DM
A short list of phrases that do measurable damage in reschedule conversations:
- "Just this once" — every "just this once" is a precedent the client will reference the next time. The whole job of the policy is consistency.
- "I usually charge for this but..." — either the policy applies or it doesn't. Naming an exception undermines every future enforcement.
- "I'm so sorry but I have to..." on a client-initiated reschedule. You don't owe an apology for a policy you wrote and disclosed up front. Apologetic policy delivery trains clients to push.
- "It's fine, don't worry about it" when the client is <48h. This is the deposit dissolving in real time. Even if you intend to refund, name the policy first, then choose to refund anyway.
- The full refund policy in one DM — wall of text. Two-line policy summary plus a link to the policy page. Save it as a Saved Reply.
- "When works for you?" with no constraints on Script 1. You're letting the client design your calendar. Offer two specific alternatives.
- Re-asking for the deposit on a reschedule. The deposit travels with the booking. If your platform doesn't auto-handle this, fix the platform before fixing the script.
Saved Replies: the reschedule codes
Instagram's Saved Replies (Settings → Business tools →
Saved replies) is where these scripts earn back their
typing time. Most solo pros use two-letter codes:
r1 for Script 1 (operator-initiated),
r2 for Script 2 (client >48h),
r3 for Script 3 (client <48h),
rl for Script 4 (running late),
rc for Script 5 (cap), and
rn for Script 6 (rescheduled-then-no-show).
Type the code, hit expand, tune the dates, send. The
time saved on a busy reschedule week — when one of these
DMs comes in every couple of hours — adds up fast.
The honest pricing math on reschedules
Reschedules look free, but they aren't. A client who reschedules once costs you ~10 minutes of DM time plus a slot-block that another client could have filled. A client who reschedules twice costs ~20 minutes plus two displaced slot-blocks, and the displacement cost compounds: the slots you offered them are slots you couldn't offer to walk-up DMs at the same time. The pricing-and-deposit math post shows the full slot-revenue calculation, but the rule of thumb is: at solo volume, three reschedules costs you about half a slot's worth of revenue. That's the reason the cap matters and why Script 5 isn't just policy theater. The cap converts infinite-reschedule clients into either committed clients or gracefully-departing clients, and both are better than the third state (clients who reschedule indefinitely and never actually book).
How ChairHold v1 handles reschedules
Honest disclosure: ChairHold's v1 booking page does deposit-portable reschedules natively if the client reschedules through the link (the deposit moves with the booking, no second charge). The Stripe row is re-tagged with the new appointment date, the receipt updates automatically, and the slot in your calendar moves. v1 does not auto-enforce the multi-reschedule cap — that's a v1.1 feature. For now, if a client tries to reschedule a third time through the link, v1 will let them; you'll need to send Script 5 manually before they pick a new slot. v1.1 will add a per-client reschedule counter that triggers a "this is your last roll" notice on the link itself. We're flagging this so the scripts above match the actual v1 behavior, not a roadmap promise.
FAQ
What if my booking platform charges a second deposit on reschedule?
Most modern platforms (ChairHold, Square, Acuity with the right setting) treat the deposit as portable — it's the same row, re-dated. If your platform charges a second deposit on reschedule, switch the setting (or the platform). The reschedule conversation is hard enough without the client being charged twice and thinking you're scamming them. The Booksy alternative post covers the platforms that handle this cleanly.
Can I run Script 3 if my refund policy doesn't allow partial refunds?
Yes — drop the partial refund line and replace it with a same-week reschedule offer instead. The script's logic is "name the policy, offer a face-saving path." The face-saving path doesn't have to be a refund; it can be a held slot, a goodwill add-on, or a referral to a colleague (some operators trade these). Just don't offer a partial refund verbally if your written policy says deposits are non-refundable — the inconsistency is what gets you reviewed.
What if the client argues with my <48h policy?
Restate the policy once, calmly, and link to the policy page. Don't argue the merits ("but my time is valuable") because the client doesn't care about your P&L any more than they did when they pushed back on the deposit itself. The deposit-conversation scripts post has the framing for "why pay upfront"; the same logic applies here. If after one calm restate the client is still arguing, refund and lose them — the lifetime value of an argumentative client is negative.
Should I send these by SMS instead?
If your original confirmation went out via SMS (some platforms default to it), reply via SMS — channel continuity matters more than channel choice. The scripts work verbatim. The only adjustment is the booking link: SMS clients are more likely to click a short link than a long one, so set up a custom short domain if you don't have one.
What about the client who reschedules a fourth time after I've already sent Script 5?
Script 5 named "this is the last move I can hold the deposit for." If the client tries again, the deposit forfeits per the policy — no script needed, just a short DM noting the policy fired. Don't re-engage in negotiation; the cap exists precisely to give you a clean exit on this client's calendar slot. The no-show recovery post has the close-out script for clients who hit the cap — Script 3 of that post is the one that fits.
Can I run these scripts before ChairHold launches?
Yes — the scripts are tool-agnostic. Swap
"chairhold.com/yourname" for whatever
booking-plus-deposit link you're running today (Acuity
+ Stripe, Square Appointments, a Squarespace page, a
Calendly link routed through Stripe Checkout). The
deposit-portability behavior depends on your platform —
verify it before sending Script 2 verbatim. When
ChairHold launches, point the link at your ChairHold
page and the scripts keep working.
Should I post the reschedule policy in my IG bio?
No — same answer as the deposit-conversation post. The bio link goes to a booking page that shows the policy. Putting policy text in the bio itself eats your bio budget and converts no one. The bio copy post has bio formulas that imply the policy without spelling it out.
Ship-state note. This post was written while building ChairHold in public. The scripts above are the ones solo pros in our interview set (~80 operators across barber, stylist, nail, lash, brow, makeup, and mobile grooming) reported running on reschedule DMs that converted into kept appointments rather than silent ghosts. v1.1 will add the multi-reschedule cap as a native feature; v1 ships with the scripts above as the manual workflow. If you'd like the link when ChairHold launches — or just the updated script book as it evolves — drop your email below.
One link. One deposit. Your Stripe.
$9/mo flat. Early access is 90 days free.