Talk to any service business about no-shows and you will hear the same thing. "Customers just do not show up." "People book and forget." "They are flaky." All of these frame the problem as a people problem. It is not. It is a design problem.
No-show rate is a function of three things. How long between booking and appointment. How many reminders and when. How easy it is to reschedule. Fix these three and no-show rate drops, no matter how flaky the customer base is.
The first one is harder to fix. Shorter lead time between booking and appointment almost always reduces no-shows, because the customer's intent is freshest. This is why same-day bookings have the lowest no-show rate and two-weeks-out bookings have the highest. The way to take advantage of this is to make same-day slots visible and easy to grab, not buried.
The second one is the biggest lever. A single reminder 24 hours out is not enough. The best cadence we have found is three: one when the booking is made (the confirmation), one 48 hours before (which includes an easy reschedule link), and one 2 hours before (a short reminder with directions). The 48-hour reminder is the critical one, because that is when the customer realises they cannot make it, and if there is a reschedule link right there, they use it. If there is not, they no-show.
The third one is about friction. If rescheduling is a phone call, the customer will not do it, and they will no-show. If rescheduling is a link in the text message, they will. Make rescheduling one tap. You would rather have a rescheduled appointment than an empty slot.
The businesses we have worked with typically drop no-show rate from 20 to 30 percent down to under 8 percent in the first 60 days. The lever is the reminder cadence and the reschedule friction. The customer is not the problem.