I don’t have a “cancellation policy” as a primary policy for this type of situation.
I combine a “rescheduling policy” (mine is only 60 minutes!) and a rewards program.
For example, instead of charging £150 for 6 sessions, I charge £125 for 5 sessions, and give you 1 bonus session when you show up for the first 5 without cancelling.
If you cancel prior to 60 minutes before your scheduled session, you lose your bonus session, but you can reschedule the session you can’t make.
If your training with me less than 3 times per week, you must reschedule your session within 7 days, otherwise I simply extend their program/package an additional training day.
If you no-show or cancel within 60 minutes of their scheduled session, they lose that days session plus their bonus session.
If you cancel greater than 10% of the time, then everything applies as above but they must cancel their session within 24 hours.
I think this is a fair policy whilst still allowing for situations that can occur, allowing you to continue with your program.