I think it’s really important to make it up with something extra thrown in. I offer extra time for a future show, and of course a refund if they really want that. I find if you are open to offering the money back they don’t take it, though maybe if they were a new customer it might be different.
I give my clients a choice. I offer them a refund if they’d like it, or if they’ll agree to reschedule, I’ll agree to some added “free time”, so that the rescheduled show is longer than the show they originally paid for. So far, I’ve never had a client ask for a refund!