I have a three-strikes-and-you’re-out rule.
If I extend an invitation to the same person three times in a row and they flake out on me in some way, I stop extending invitations. If I extend an invitation three times in a row and the other person never reciprocates and invites me to something, I stop extending invitations.
So I would employ the same rule in this situation. First, you have to communicate your expectations in order to teach people how to treat you. Set the boundaries, as it were. So call your friend and ask, “Hey what happened the other day? I dropped what I was doing and got all ready for you to pick me up and waited and waited…”
{Insert friend’s lame-ass excuse for boorish behavior here.}
“Oh, I see. Well, I get really angry when I’ve made time for something and nobody can be bothered to tell me that I can now re-utilize my time to do something else with it. If you decide not to do something you’ve invited me to again, will you please call me and tell me that? Then I won’t be sitting around my house stewing about being blown off and I can use my time more productively than sitting and waiting. I’d really appreciate that.”
You aren’t asking for an apology. You aren’t being a complete dick. You are simply letting the other person know that you thought they were rude to you and you find that unacceptable. Or, you could simply let them know, “Okay, but if the plans change and you don’t show up within 20 minutes of the time we agreed on, I’m moving on and doing something else…”
I would not remain friends with someone who pulled this crap on me more than once. In fact, I’d have called my friend about ten times until I got 'em on the phone to find out if the plans were on or off. If the flake thinks I’m such an abhorrent asshole (as in Electric Warrior’s example), then A) I can’t be responsible for changing my behavior if you don’t tell me what it is that hurt you and B) I don’t respect anyone who treats me with passive-aggression. Be up front. Tell me I’m being an abhorrent asshole and you don’t want to hang around with me anymore. I appreciate it when people tell me the truth.
Then again, I don’t disrespect my friends by making plans and blowing them off either. If someone is counting on me to be somewhere at a certain time and place, because I’ve agreed to that plan, then they deserve the courtesy of a phone call from me if I decide to bail at the last minute.
In short, just say no when you mean no. Don’t agree to something and then passive-aggressively tell me no by pretending we never made plans.