Charge the customer for missing the office visit like a doctor does. Explain that you hire a 3rd party contractor for the day to do large vehicle graphic installations so when a customer no-shows without 24hr notice then that costs has to be passed along.
Avoid using personal pronouns.... keep it generic to avoid personalizing the issue.
"We hire" instead of "I paid a guy"
"...to do vehicle installations" instead of "to do your job"
"when a customer no shows" instead of "when you no showed"
It is less likely that the guy will feel persecuted if it sounds like how you treat everyone and if it makes logical sense.
Since he is a carpet guy... try this:
"Say I have a large commercial office building and schedule you to come do the floors... It is a big job for one guy so you hire a helper but when you show up the doors are locked and you can't do the job. You still have to pay your guy or he won't come work for you again. I call you later and say that something more important came up... how about tomorrow night? How does that make YOU feel?"
Also, puff up the extra charge... so that during the discussion you can "split the difference" but you end up getting what you wanted to begin with.
If it all goes to hell you can offer to cancel the job, and refund his money.... MINUS materials and labor spent so far.