We do work for some large clients , window cleaning is on a set time scale every 6-8 weeks or what ever we just turn up and do it , as for other work , pressure washing, softwashing , gutter vaccing etc ,once a price has been agreed we book a date if they need one and just turn up and do the job , I have never experienced what you have , as far as ime concerned once they have given the go ahead I would be looking to charge them if they cancel last muinit , but as I say never had any issues with this and we do a lot of commercial work , some is annual contract,, some is just a rolling agreement . I think in your situation I would be arranging a face to face meeting with who ever you deal with and set your stall out that this is unacceptable that you have booked there job in and put off other clients to do it have staff to organise and pay and last muinit cancellations are not acceptable.