You could agree to go to their birthday. Don't pay anything upfront. 10 minutes before, you go out with a "friend" instead. Even if that friend is a set of text books / laptop with you sitting down to get an assignment out of the way. 😇
Or you could decide that you're not going to descend to their level.
Either way is fine.
The behaviour of your friend on that trip was breath-takingly rude.
You should cease to take them and their friendship seriously. Anything they say to you, take with a pinch of salt. Don't make any plans based around what they say they will do. Assume they will let you down. And if they don't, treat it as a bonus.
Keep him or her in your social circle. Consider them ejected from your inner most social circle. Nobody treats you like that and remains as one of your 5 closest friends.
There's no point in you discussing this with them. As I can't see how it could be done in a positive way with a positive outcome.
A better way to do it is to give a higher priority to you spending time with other people. Even if that other person is just yourself and your own company. This will result in you more and more not doing stuff with Rude Friend. And you doing other stuff instead. You don't need to justify nor qualify yourself to them over this. Nor to apologise. Just start saying "No" to them more and more. Till they are relegated to your mid to outer social circle.
In the meantime get yourself out there and get yourself plenty of new friends. Uni is the best place in the world to make new friends. And to practise your social skills.