Let me provide some info about appointments. First of all installs/upgrades are handled in a different way compared to trouble calls.
If you have an install or an upgrade ("positive work") the tech has to go to your home and knock even if you don't answer the pre-call. In some areas (my area is Des Moines, IA) tech vans are equipped with GPS and the location is logged so there is no way a tech can claim he rolled to your home if he didn't do it. The tech location is known all the time and if needed the location history can be retrieved. Also techs are required to provide a description of your home.
If you have a service job pending make sure you answer your phone because if you miss it and you miss the call from dispatch (within 10 min or so) your job will be cancelled. Phone trouble calls are different and the tech needs to roll to your home. Make sure you have the correct number listed on your account. All of this applies to in house techs only. On several occasions I have knocked on the front door and left after nobody answered only to find out much later the customer called in saying a tech never showed up. Don't know why people don't hear it but it happens. And no it wasn't a gentle knock. I prefer doing my job instead of driving around and doing nothing.
Not sure what contractors do but they do not get paid unless they complete the job so I don't see any incentive for them to not to even try to complete your install/upgrade.
We try not to be late (hard to believe I know!) and to at least let you know if we are running late. Unfortunately due to nature of this job sometimes I can not even give you an ETA. Your time frames are what matters to us and if your job is 8-10 but in the comments it says you will be home after 5PM your job will be cancelled if you don't answer your phone or if you can't be home within the time frame. CS should not schedule jobs like this but I guess some people insist or it's a training issue. The notes like 'try to make it as early/late as possible' can be useful and I will try to arrange my schedule if at all possible but I can not guarantee I will be able to do it every time. In fact some techs will simply go down the list of their job without ever trying to make it easier for you (it's all pre-routed and they should do their jobs in the order they were listed).
Also when you answer your pre-call be honest and inform the tech how much time it will take for you to get home. Don't say "I'll be there in 5 min" knowing it's going to take you 25 min or whatever. Not sure why people do this but I hate it and my max wait time is 20-25 min so if you don't show up I'll leave and I won't be back. If you tell me it will take 45 min I can try doing my next job first (please note that techs are NOT required to do this, they can simply tell you "you have 30 min or you will need to re-schedule"). I have no problems working with you as long as your requests are reasonable. My day will go smooth if none of my trouble calls take more than 1 hour (including drive time) so if I have to wait 45 min for you it will mess up my schedule even if it's an easy fix since the stuff we need to check on every call will take more than 15 min. The bottom line is a lot of it depends on the techs so be nice to them and maybe they'll go the extra mile for you even if company policies don't require it.
PS They seem to be more accommodating when it comes to "positive work" and they will send the installer back but service calls cost money and they hate paying a tech to sit in his van for 45 min not doing anything. And on a more personal note I hate being bored.
PPS None of this applies when your call is escalated (scheduled via other means and not through CS). -- I speak for myself, not my employer.