I work from home as well, I help my husband manage and HVAC business, and people do that to us ALL of the time, a lot of times is going over for estimates, and they are not home!!!! (REALLY???) Then they call and want you to go immediately!!!. I used to be like that, but no, enough is enough! I work business hours ONLY!!! I apologize, with clients, I'm sorry but I already have a client at that time, (I'm don't tell them I'm desperately cleaning my house jajaja) It took me a while, but now I very seldom get calls after hours. I also have a recording machine for the business, and if it is an emergency, like a leaking drain or something like that, I or my husband will contact them right away.
We had to do this because my husband is going to school right now, and people were making him leave his clases to tend to petty issues. So now they leave a message, and we call them and schedule something ASAP!!!. It helps me not sacrifice my time with my son, and my husband stay in school. Just be firm, apologize, but you have a "previous engagement" and you can't. And remember by not showing up or cancelling last minute they are being unprofessional, not you!!!
Also in my experience, I have noticed that those clients that stick to your policies are better payers than those who dont!! ( I dont know if your business has accounts receivable like mine)
Hope you find this helpful, I know its difficult in the beginning, but you'll be OK!! and you are not missing the opportunity, they will more likely wait for you, because business hours are the hours most businesses operate, its unlikely they'll find someone else after hours anyway! Good Luck!!!