It just sounds like you need to communicate more clearly what your intentions and her intentions are when it comes to each individual holiday and get real specific. If you know she’s going to be leaving, why pull out the stops to make a huge dinner? You can also let her know the consequences of her decision. Tell her that based on the fact that she told you she’d be around, you put a lot of time and effort into dinner – time that could have been spent elsewhere. If she understands that it’s a little inconsiderate, she’ll hopefully stop. I’d also compromise – if your spouse wants to go spend time with family on Mother’s Day, Memorial Day etc. tell them you’d like dibs on 4th of July and Father’s Day. Or, if you know they’re going somewhere for dinner, you can be the brunch person, or otherwise. Trying to fit everyone in can be emotionally taxing, but it can be done successfully and without hurt feelings or resentment.