I agree that the response was a little harsh, but I'm not seeing how the initial communication breakdown was on both sides. He wanted to meet at 3.30, then changed it fairly last minute, given that he only had the one way of reaching her. She said she'd see him at 4, he showed up early (he says), then left before 4. "I'll see you at 4" =/= "I'll see you at a random time of your choosing, that you may or may not feel like clarifying with me first." He may have assumed that she left early, but choosing to go with random assumptions instead of what the person has actually said generally isn't a good idea. He wasted the OP's time because he (a) budgeted his time poorly, and (b) decided that he didn't trust the OP to be reliable in what she told him. Not much of a loss on her part.