Just a word on the English: The basic meaning of "be going to" when followed by a verb is to mark the verb as future tense. There need be no intention: Watch out! That tree is going to fall! (Trees have no intention.) John is going to be very disappointed when he finds out that the play has been canceled. (He doesn't even know yet about the cancellation.)
Turning to your sentence, I would say that the basic meaning of "John is going to dance tonight" is "John dance-future tonight". It could be his intention to dance, but he might not even be aware that he's going to dance - I may be planning a surprise party for him.
So you should be more specific to get a correct German translation.
(Crossed with Resa, who also sees this ambiguity.)
Thanks to both of you Resa and Dan2
More specifically, I wanted to say that something is planned
In English I would say He will dance tonight or he is going to .................. but Dan2 says it's incorrect.
er wird tanzen = he will dance?
soll = should ?
Sorry for my poor English and my even poorer German.