Hey man. She has a friend alright... and it is another guy.
I don't think you are going to like what I am going to say, but listen up:
1. She likes someone else - no doubt about it. I've dated enough women and been in your shoes and I can tell for sure that she is either dating or interested in being with someone else.
2. She treats you like a dog and you are so willing to keep her happy that you are actually rewarding this behavior. I know you are trying to be strong, but you aren't doing it correctly.
3. The fact that she is leaving for a month should NOT impact how you treat her or how often you see her (unless she is initiating the time). If you continue to be super nice to her (despite her bad behavior) she will lose even more attraction for you.
4. Breaking up with her is not a bad idea, or at least having the 'I am not sure this is working out conversation". Better for you to start it, then for her. Remember this is not a 'here are my feelings for you', this is a 'this is not working out conversation'. Example: "I like you and think we have a good time together, but I feel that our relationship is not moving in a healthy direction and it might be best for both of us to take a break" or similar.
5. Do not explain how you feel, she knows you like her. You need to make her wonder if you like her and make her prove that she is worth you liking her. Right now she is acting like aloof and you are the one showing all the interest. Think about it - she is treating you bad and you are telling her you like her (ideally it would be somewhat opposite of that).
6. If she has the "this isn't working out" conversation, your only reply is "I agree, I think it would be better for us to move on. Maybe in the future, we might be able to craft some sort of friendship or relationship, but it is best for now to not see each other".
THAT is a very powerful message to send a girl and as far as I am concerned THE ONLY WAY TO SAVE THIS SITUATION.
7. You also have one-itis and it is killing your game. Even if you are in a relationship, you need to not just concentrate on one girl (until you are engaged or married or whatever). Now I am not saying cheat on her, but avoid exclusivity if possible (if you desire) and also keep your life active with other women (even if friends), clubs, events. Be so busy she is begging to spend time with you.
I could go on and on, but I think in this case she is playing you. Canceling at the last minute, making changes to plans, inviting other people. These are some of the things that work to make someone attracted to you.. and she is doing it (willingly or subconsciously) to you.
You need to man up. Cancel on her. Maybe break up with her. Maybe start hanging out with another girl, and
texting her that you are busy and can't make your date with her. Go to other events without her. Again - pull the same stuff on her... or break up with her. Those are your two options (if you want any shot with her). But if you continue down this path, she will dump you and you will NEVER have a chance with her in the future. I've seen it a million times.
This is just my advice, and what I would do if I was in your situation. You need to make your own decision on how to approach this.
BP