One of the difficult things in life is learning to say "no" to your friends and family, especially when it comes to money. There is nothing wrong when someone says "do you want to go out for supper" to respond with "Oh, I have ____ pulled out for supper, how about you come over?" or "How about we have drinks after". You don't have to say "Sorry I'm broke..." (unless you have the self-confidence to do that), but everyone knows that it is far more expensive to go out and I think that everyone is a little guilty of taking to ease of going out for supper rather than cooking for themselves from now or then.
So what about the legitimate celebrations? (Marriages/babies being born/birthdays/etc.) What I personally do is have a "bucket" for this and take money out of it for birthday gifts/Christmas and those times that we should go out for. If you have a slush fund (either in a bucket like me, or several hundred/thousand sitting in a chequing/savings account somewhere), when you do go out, it shouldn't go on a Mastercard/Visa. If you are doing that, then clearly you can't afford it.
This leads me into income taxes (don't ask how I got onto this). Hypothetically, if you get $500 back from the government, is this free money? Technically, no, because it is extra money that the government has taken from you over the year and that they owe you. If I get money back this year, there unfortunately won't be any extravagant purchases, but I will continue to pay things down, as that is my priority for frugala that I get out of debt so we can buy the house of our dreams. Another use for this money could be creating an emergency fund, or a Christmas fund so that when these requests come that they can be met with a smile rather than thinking "I can't afford this", or with a grimace when the Visa bill comes in at the end of the month.