A dentist's diary in February has gaps that the same diary in September did not. The six-month check-ups from August are due, and most of those patients have not been asked.
Each appointment type gets a return interval: check-up six months, hygienist three or four, annual review twelve, a course of physio a check-in at the end. The system reads the last appointment date out of your diary, adds the interval, and on that morning sends a message with a booking link into real free slots.
If they do not book, a second message goes out two weeks later, by email this time. After that it stops and the name goes on a short list you see on a Monday, so nobody gets chased five times.
Patients who have asked not to be contacted are skipped. Patients with a flag on their record wait for your decision.
This is the kind of thing we build. It runs in your own accounts. How many check-ups fell due last month?