Scheduling maintenance contracts without call rounds
Let your customers pick their own slot for the yearly service, instead of having someone ring round every one of them.
Maintenance contracts are work you have already won. Each contract is one visit a year, and that visit still has to land somewhere in the calendar. With a handful of them you just ring round. From a few hundred, ringing round is a job.
And it is a thankless one: half of them do not pick up, some ask you to call back, and whoever you miss today is on tomorrow's list again. Meanwhile the contracts do not spread themselves evenly over the year, so they arrive in waves as well.
This page describes the other way: you record each contract once, and from then on Schedulinq invites your customer every year to pick a slot themselves. The only people you call are the ones who do not respond.
How it works
You record the contract once
Per customer you create a subscription: this appointment type, every year, starting on this date.
Schedulinq keeps track of the dates
Once a day it checks which subscriptions are due.
The customer gets an invitation
On that day an e-mail goes out with a link. Not a date you picked — a link into your calendar.
The customer picks their own slot
They open the link, see what you have free and book. Only then is it in your calendar.
You only look at the exceptions
Whoever does not book stays visible in the invitations overview. That is your call list — not your whole book, but the part of it that did not pick this up themselves.
The gain is not in the sending, it is in who does the work. A phone call costs both you and your customer time, and has to land at a moment that suits you both. A link costs your customer two minutes at a moment they choose, and costs you nothing.
What to set up first
Four things have to be right before the first invitation goes out. Miss one and the e-mail still goes, and your customer sees an empty calendar.
An appointment type for the service visit
RequiredWith a realistic duration, and staff assigned to it who also have working hours. See Create an appointment type.
This is the step that goes wrong most often. An invitation offers the same slots as your ordinary booking page: with nobody assigned or no schedule filled in, there is nothing to choose. Your customer gets an invitation leading nowhere, and you find out when they ring.
Your customers in Schedulinq
RequiredA subscription hangs off a customer, so they have to exist first. Your whole book goes in at once from Excel or your CRM. See Import customers.
Custom fields for what you need on site
RecommendedThe make and serial number of the boiler, a pass number, the arrangement about keys. Record it on the customer and it is still there next year. See Add your own fields.
Do this before the import. Existing customers get a new field added empty — nothing is filled in retroactively — so otherwise you are re-typing, customer by customer, values that were already in your old system.
The messages around an invitation
RecommendedThe invitation itself, one or two reminders, and the message when it expires. They live in the Invitation flow under Communication → Steps. See How communication works.
The reminders do most of the work here. Someone who ignores an e-mail on Monday often acts on it a week later — and every customer who books after a reminder is a call you do not have to make.
Creating the contracts
Here is the honest part: subscriptions are created one at a time. There is no import and no button to create them in bulk. Your customers go in at once; their contracts do not.
What that means when setting up:
| Importing customers | Once, one file |
| Creating subscriptions | One short form per contract |
| After that, every year | Nothing, apart from the exceptions |
On a large book that is days of entry. Set it against the comparison: that work happens once, against a calling round that comes back every year.
How to create one, and what every field does, is in Recurring appointments.
Invoicing without waiting for the visit
On a yearly contract your customer pays for the year, not for the visit. So you do not want to wait until the engineer has been.
In the subscription, under Invoicing, choose On a fixed date. Schedulinq then creates a draft invoice on that date, whether the visit has happened or not. The first invoice date is independent of the subscription's start date, so you can invoice in January for a service carried out in March.
Keeping track of what does not happen by itself
Two overviews, and you are up to date.
Appointments → Subscriptions
What is coming. The next invitation column tells you when a contract is due; sort on it and you see your year. The status filter sits on Active by default, so paused contracts stay out of sight until you change it.
Appointments → Invitations
What is outstanding. This is your work list:
- Pending — sent, not yet booked. No need to ring these people; the reminders are still running.
- Expired — Schedulinq has stopped reminding. These are the customers who need a call.
- Used — booked, in your calendar. Done.
The work shifts from calling everybody to checking who is left over. At an ordinary response rate you are left chasing a fraction of your book — and you know exactly which customers that is.
Frequently asked questions
Can I create all the subscriptions in one go? No. Customers import in one go; subscriptions are created one by one. It is one-off work, but it is work.
My customer says there are no times to choose. Then nobody is assigned to the appointment type, the assigned staff member has no working hours, or preparation time pushes every available day past the end of the booking window. No times available walks through the causes.
Can I invite someone early? Yes. Open the subscription and choose Actions → Send invitation now. The series carries on as before.
What if a customer cancels their contract? Pause or cancel the subscription. No further invitations go out, and the appointments it already produced stay as they are.
Does this work for twice a year, or quarterly? Yes. The recurrence is yours to set; yearly is simply the most common case.