I'm having music lessons at the moment.
First lesson my tutor visited my home (convenient for them) since then I got to their home. I pay at the end of each lesson. I wouldn't object if they asked for payment before hand.
I turned up for one lesson, to find they weren't there, they'd forgotten and were gigging ?
Cancellations will, and do happen. This week I got a message on the day of my lesson, saying they'd had a cancellation I could go earlier.
Obviously different for you as you've got overheads in your premises, and depending on the arrangement (no pun intended) you could make it work in favour.
Allow cancellations within x days. If they don't keep payment. (you can always be nice as a gesture of good will) even perhaps offer the student before a cancellation additional time at a reduced rate? If you're on social media, advertise cancellations incase someone wants a quick lesson, or it's more convenient etc.
One thing I find helpful in our business, is generate the appearance of being busy, you may find less likely people cancel or don't show, for fear they won't get back in for a few weeks.