Hey, if they want to charge a cancellation fee let them... It's your business, do what you want. If it works for you great, kudos to you.
I think though to be fair, if you charge a cancellation fee, if/when you (the provider) need to cancel or reschedule you should apply the same "cancelation" fee amount as a discount towards the hobbyists next visit. It goes both ways. Also if the appointment is at 4 and I am there at 4, and have to wait outside until 4:15ish then a discount should be applied as our time is every bit as valuable as yours.