Is the sentence, "It's on tonight," grammatically correct? What about "It's on for tonight?" Are they both correct? Is there any difference at all?


Both are grammatical expressions, and common.

It's on tonight.

This can refer to a TV program that will be broadcast this evening. Or it can refer to some other form of entertainment. Or it can mean there is a confrontation looming.

It's on for tonight.

This means some prearranged plan or meeting is to take place tonight.

The "it" in both cases refers to some unspecified matter which will either be understood from context or explicitly stated before or after these sentences.

That brings us to the simple expression

It's on.

This is the confrontation I referred to above (often given as "Oh, it's on!") meaning that the speaker has accepted or recognized that a challenge of some sort has been issued and means to accept it, usually with relish or special determination to win.