Summarize this article in one sentence.
Letting your friend know that, while you love your friendship, this really hurts your feelings, makes you angry, makes you feel disrespected. If you just accept it without expressing displeasure, this clueless friend may continue this behavior indefinitely. If you express your feelings about it, and there is no apology and nothing ever changes, at least you will have clarity - your feelings are not as important as whatever it is s/he is doing. Being late might mean the person was in flow, needs in between time, or is afraid to ask for space.  Say, "I've noticed that time is a challenge for you." Then wait and listen with an open mind. Replay what they said to you in a gentle way, using their words. For example: "Okay. So you went to work, got involved, and stayed till the project finished. Is this right?" Listen. Then ask, "Did you really want to be on time?" Listen. If yes, "If you could be on time how would you do that?" Listen. Make agreement. "Okay. In fairness to you and me, let's agree that you pay for your own (ticket, etc.). If you are on time, we go together. If you choose or something comes up to make you late, you will understand that I may not wait and you are on your own time."  Note: If you are married or in a committed relationship, ask how you can support the person.
Express your anger or frustration about it. Ask this person what is really behind being late.