Hi E M,
First, you have my heartfelt understanding on the whole situation. ANd yes, there is light at the end of the tunnel.
I always come back to the statement by Dr. Phil: "We teach people how to treat us."
In other words, what we do and say to stand up for ourselves, defend our children, set and maintain our boundaries, etc., is "teaching" the people around us what is and is not ok. This includes your MIL, your husband--even your children.
Be polite, but be firm.
Tell your husband it is not a good time; ask him to back you up.
Do not let her talk disparagingly about anyone in front of your childre. Call her on it (in a nice way) on the spot. It's more important for your children's character to hear their mother state what is or is not correct verbal behavior, rather than "let it go to keep the peace." The latter simply says to your children, "It's ok to talk mean and nasty about people--even tell lies--we just let it go when we hear it.
It's not ok. And I would imagine that you dont' think so either, which is why you wrote on here in the first place.
So please don't feel that you have to sacrifice the budding moral character of your precious children for the sake of not offending your MIL or your husband.
Sounds like you and hubby may need to have a chat about proper protocol around these issues, i.e., what's really important for your children's well-being.
I've written it several times before on Mamasource, but it's good for all of us to be reminded that everything we do and say role-models to our children how things should be done. Children are powerful sponges and pick up on everything. This includes the hostility between other family members. It makes them uncomfortable and unsettled.
Forget the "niceties" advice. It accomplishes little except avoiding the issue. Instead, be nice in the way you set your boundaries and stick to them. "MIL, I realize you would like to come in two weeks. It's just not a good time. Thanks so much for offering, and I will let you know when the timing is better for us."
And...
"DH, I am really feeling stressed out about this situation with MIL, and I am sincerely asking for your support. I would like you to back me up and ask your mother not to come in two weeks, and to echo that we will let her know when it is a good time."
Now, as to a good time in the future, there may never be one. So since MIL is going to be around for a while (i.e., living) you can best help yourself by being prepared to handle her verbal indiscretions. Rehearse ahead of time what you will say when she says something mean, for example, "MIL, in our house, we have a golden rule. If you can't say something nice about somebody, we don't say anything at all, right kids?" Say it out loud, in her presence, and in the presence of your kids. Repeat it if necessary. If required, go into further detail so your kids are not confused by two conflicting authority figures, e.g., "Kids, everybody is free to choose how they speak, and how they speak about others. Grandma doesn't necessarily follow the same Golden Rules that we do. And that's her choice. But in our house, we follow our Golden Rules."
It's pretty simple. No confrontation necessary. Of course she will fight and become dramatic. Just stand your ground in a nice way....firm, polite, loving. Remember, you are role-modeling to your kids how to handle an uncomfortable situation. If you say NOTHING, your kids will learn to stuff their feelings and say NOTHING when it counts most.
Do your kids the most precious favor you can: Teach them how to handle life's unpleasant tasks so that when it comes time for them to do it, it's pretty straightforward for them and doens't cause a panic attack!
I wish you all the best. It's not easy, but it is do-able. ANd you have all the power and right to do it, if you want to.