@Anonymous
I do the same. I've never had a "pitch up anytime between 3 and 9pm" approach. It doesn't matter if I'm going to be home or not. I have stuff to do.
So, like you, I schedule a time with the guest. I will stretch to a check in window of half an hour. If it's an hour, say between 4 and 5pm, then I will require an update before that's more specific. This works overall.
The guests who rock up hours late because they just don't get it are a minority luckily, but they do not respond to the above. They can't seem to comprehend that my time is worth anything. Ideally, I would avoid accepting bookings from people like that in the first place, but sometimes there are no earlier red flags and they slip through the net.
What I have found does work with them is ££££. I am not usually hosting guests with a lot of money, or at least not ones who want to spend lots of money on an Airbnb, otherwise they would be staying elsewhere. So, most of my guests are keen to avoid any additional charges if they can.
One girl who was supposed to check in at 3pm turned up six hours late because she decided to go to Wimbledon for the day instead and not tell me. She did eventually respond after several messages, to let me know she would be there 'before 9pm'. Not ideal, but I can guarantee you that she knew she would be charged if it was later than 9pm and that, if there was no extra charge, she would have pitched up significantly later. I am pretty sure she was drunk when she arrived. That was the girl who insisted she had booked 'the pink room'. I don't have a pink room. But, she was sober enough not to want to pay more!