Edit a step
The whole step editor — when a message goes out, over which channel, to whom, and what it says.
A step is one message: a confirmation, a reminder, a notification to your team. The step editor decides when that message goes out, over which channel, to whom and what it says — in every language your company supports. This is the screen where you make those choices, field by field.

You fill in the step on the left and see what the customer receives on the right.
Opening the editor
Go to Communication → Steps
You see your whole message schedule. Click the step you want to change.
The editor opens at its own address
The list stays underneath and the editor gets its own web address, so you can share or bookmark the page, and your browser's back button returns you to the list.
Make your changes and save
Cancel and Save sit at the top right. Deleting the step lives under Actions.

When

When
RequiredThe event this message hangs off. Which options you get depends on the kind of schedule: for appointments, for instance, Immediately when the appointment is created, Before appointment start, After appointment end, On cancellation, On reschedule and On change.
"Before" and "after" are separate entries in the list rather than a direction you set somewhere else. You pick the moment you actually mean, without having to get a plus or minus sign right afterwards.
How long before or after
Only for a timed momentPick a moment that sits around the event and the buttons from 15 min to 7 days appear. If none of them fits, click Custom and type a number with minutes, hours or days.
For an immediate moment — Immediately when the appointment is created — these buttons are absent and the editor simply says the step runs straight away. That is deliberate rather than a limitation: there is nothing to delay about a confirmation.
Channel and recipient

Channel
Email, SMS or WhatsAppHow the message is sent. Email is always available. SMS is not available during the trial and costs money per message. WhatsApp can only be chosen once you have connected your WhatsApp Business number.
SMS and WhatsApp are shorter and more direct; email has room for formatting and attachments. Only email can carry files — the other two channels do not even show that block.
Recipient
Customer, organisation or teamWho receives the message. Customer is the ordinary choice. Organisation sends to your own mailbox, usually for notices like "invitation unanswered". Assigned team sends to the staff performing the appointment — one message per person, in their own language.
The recipient also decides who "you" is in your text. Writing for your team means "your appointment" is the customer's appointment, not the reader's — which is why the editor adds a short note under the title as soon as you pick anything other than Customer.
Languages

Language tabs
One tab per language your company supports. You write a separate subject and body per language, and switching tabs keeps what you had already typed.
A language you leave empty is not saved. That is usually exactly what you want — but it also means you throw an existing translation away by emptying it and saving.
Subject and body

Subject
Email onlyThe subject line of the email. Up to 500 characters, and required in every language that has a body. SMS and WhatsApp have no subject, so the field is not shown for them.
Body
Required in your organisation's languageThe content. For email this is a rich text editor with bold, italics, lists, links and images. For SMS and WhatsApp it is a plain text box.
The body in your organisation's own language is the version customers fall back to, so that one is required. Save stays clickable and checks when you click it: a missing body, or an email language with a body but no subject — which would reach the customer with an empty subject line. Save then opens the first language at fault and shows the reason under the field. A fault on another tab appears under the tabs; click it to open that tab.

Variables
A variable is a piece of text between double braces that is replaced with real data
when the message is sent. {{customerFirstName}} becomes Sarah.

Beside Body, click + Insert merge tag. A window opens with the variables that fit this channel, in groups — Customer, Appointment, Links and buttons, Blocks and your own fields. Every row says what the variable holds, with an example beside it, such as e.g. Jan Jansen. Click a row, or choose one with the arrow keys and press Enter: it lands where your cursor was — in the subject or in the body, depending on where you were last. Esc closes the window without inserting anything. Typing one yourself works just as well.
If you know what you are looking for, type in the search box. What you name comes first: organisation name finds Organisation name before a variable that only mentions the words in its explanation. Enter inserts the top row. The same window opens when you write a message to a customer yourself.
What you can use
For appointments and invitations:
| Variable | What it becomes |
|---|---|
{{customerName}} | The customer's full name |
{{customerFirstName}} | The customer's first name |
{{customerEmail}} | The customer's email address |
{{customerPhone}} | The customer's phone number |
{{recipientName}} | Name of whoever receives the message |
{{recipientFirstName}} | First name of whoever receives the message |
{{organisationName}} | Your company name |
{{appointmentType}} | The booked service |
{{objectName}} | Name of the object the appointment is for, such as Bella; empty when there is none |
{{objectType}} | Type of that object, such as Horse |
{{actionLink}} | Button or link to the action (book, change) |
{{appointmentDetails}} | Card with all appointment details — email only |
Appointments only:
| Variable | What it becomes |
|---|---|
{{appointmentDate}} | Date of the appointment |
{{startTime}} | Start time |
{{arrivalWindow}} | When you arrive: between 10:40 and 11:40 for an appointment at the customer's address if you use an arrival window, otherwise at 11:10 |
{{endTime}} | End time |
{{durationMinutes}} | Duration in minutes |
{{address}} | Address of the appointment |
{{workerName}} | Name of the staff member |
{{workerEmail}} | Email address of the staff member |
{{notes}} | Notes on the appointment |
{{user}} | A block with the appointment's staff member(s) — email only |
{{appointmentChanges}} | A "what changed" list — email only |
{{reviewLink}} | Link to your review page |
{{meetingLink}} | Button to join a video call (in a text or WhatsApp message the link itself). While there is no link yet: the sentence that it will follow. Empty for a visit or a phone call |
Invitations only:
| Variable | What it becomes |
|---|---|
{{expiryDate}} | When the invitation expires |
Invoices:
| Variable | What it becomes |
|---|---|
{{invoiceNumber}} | Invoice number |
{{invoiceDate}} | Invoice date |
{{dueDate}} | Due date |
{{amountDue}} | Outstanding amount |
Your own fields are there too, in the groups Customer fields, Appointment fields
and Object fields: {{cf_customer_<key>}}, {{cf_appointment_<key>}} and
{{cf_object_<key>}}, with the field's key from
Custom fields.
The group Staff fields holds {{cf_user_<key>}}: a field of the staff member,
such as a job title or a licence number.
- On an appointment it holds every different, non-empty value of the appointment's staff members, ordered by their first name and separated by ", ". Schedulinq does not store in which order the staff members were assigned, so it cannot follow that. A message about several appointments at once names each staff member once.
- On an invitation it holds a value only when every staff member chosen for it has the same value. An empty value counts as a value too: if one of them has not filled it in, the tag stays empty.
- It is not available on invoice steps, and, like all your own fields, not in SMS.
Attachments

Attachments
Email onlyMax 5 × 5 MBFiles attached to every email this step sends. PDF, JPG, PNG, DOCX and XLSX are allowed.
Useful for things that never change — directions, terms and conditions, a preparation form. Do not put anything here that differs per customer: everyone who gets this step gets the same file.
Attach calendar invite
Appointment moments onlyAdds an .ics file so the customer can put the appointment in their own calendar.
The switch only appears for moments where that makes sense: creating, rescheduling,
changing and cancelling an appointment.
One exception: if an earlier email about this appointment already carried a calendar invite, the cancellation email carries the cancellation for it even with this switch off. Otherwise the appointment would stay in the calendar it was added to.
Who the step applies to
Questions that stand apart from each other: which kind of customer reads this, where the appointment takes place, and which services it belongs to.

Written for
Only when the recipient is CustomerAll customers sends one version to everybody. Consumers only and Businesses only restrict the step to customers registered as such.
Businesses and consumers often want addressing differently. Pick one of the two and Schedulinq warns you that the other group currently gets nothing — which is allowed, but it should be a choice rather than a surprise. Add a second step for the other group.
Where
Only when your services take place in more than one wayEverywhere (visit or call) is the usual choice. Choose At the customer, At a location, Video call or Phone call to restrict the step to appointments that take place that way — a confirmation with the meeting link, for instance. Under it, it then says For these appointments this step goes before a step written for the service itself.

A step for one way comes before a step for one service: a customer who books a service as a video call gets the video confirmation, even when that service has a confirmation of its own. How to write such messages is covered in Messages for video and phone appointments.

Applies to
Default: all typesClick the Applies to row at the bottom to expand it. All appointment types is dynamic and includes services you create later. Specific types restricts the step to the ones you tick.
A step for specific types sitting at exactly the same moment as a step for all types replaces that general step for those services. The editor says so as soon as the situation arises, so you do not accidentally send two messages where you meant one.

If another step at the same moment — same channel, same recipient — is already written for one of the services you ticked, the editor warns: A step already exists for these appointment types, naming the services and the other step. Replace for these types saves your step and takes those services away from the other one; a step left without any ends up under Orphaned overrides. Edit for the other 2 types keeps your text and narrows your step to the services nobody else covers. Is your step an exact copy of one that exists — same moment, same services — the editor says This step already exists, and Edit existing step opens that one.

Narrow an existing step — untick services, or switch from all types to specific ones — and Save first names the services that drop out: These appointment types will no longer get this message at all. Remove for these types saves the change; Cancel leaves the step as it was. Those services then need a step of their own if they should still get a message.
The live preview

Variables are already replaced with sample data here.
To the right of the form sits a preview that keeps up as you type. It uses the same rendering as a real send — including your branding, logo and buttons — so what you see here is what the customer receives. Hide preview folds it away when you want more room.
Saving

Click Save. For a WhatsApp step your text goes to Meta for approval at that moment. Until it is approved, the step goes out as an SMS if you have switched on the SMS fallback under Communication → Settings → WhatsApp — otherwise the customer gets nothing. WhatsApp never falls back to email.
If you no longer want a step, choose Actions → Delete. Schedulinq asks Delete this item? This action cannot be undone.; confirm with Delete and the step disappears from the timeline. That goes for every step, the booking confirmation and the cancellation too: without one, nothing goes out at that moment — see Every step is optional.
Frequently asked questions
Why can I no longer change the channel? Channel and recipient are fixed at creation. Create a new step with the channel you want and delete the old one.
I emptied a language and now it is gone. Empty languages are not kept on save. Type the text again and save.
My WhatsApp message was rejected. Meta approves each template separately. The reason appears under the text box. It is usually a variable at the very start or end, two variables next to each other, or too little fixed text.
Who exactly gets this message? That is the interplay of Recipient, Written for, Where and Applies to. How the three work together is covered in How communication works.