They didn't all let the OP down, three of them did "at the last minute", whatever point in time that means. Three of them said from the word go that they couldn't attend.
The problem with the way the post is written is that it's impossible to know how the original message was cascaded to and then interpreted by the friends, and similarly impossible to know how what they said in return was meant. As is, were all six people in one place with three of them saying in unison that they couldn't come, or was it three individual responses to six individual invitations?
Furthermore, having known people who believe the route to an outcome must be the same if an identical outcome is achieved, I know that what is said and what happens are very, very different things. For example, let's say I had arranged with six other people to go out to a restaurant, but horrendous weather meant we all cancelled - the outcome is we didn't spend the evening together.
I've known people who would tell the same story as "no one showed up", believing that to be correct, seeing how ultimately they didn't all spend the evening together. They would never spoil a good story with the facts, and would conveniently omit to say they were one of the people who "didn't show up".
In respect of the OP and it being her birthday, for six people I wouldn't have chosen a date, I'd have asked them what would suit them all, seeing how it's a small gathering. I'd do the same with up to ten people; after that it becomes a case of "this is what I am doing & when, please join me if you can".