Your first sentence is wrong (in this context, as it has a different meaning; see last heading). Instead of machen, you have to use haben (like in the second one) from the verb vorhaben:
-
Was haben Sie heute vor?
Instead, you could als use the verb machen, but without vor, so the sentence would be:
-
Was machen Sie heute (noch)?
Your second sentence is correct. But you can use both verbs, too:
-
Was hast du heute vor?
-
Was machst du heute (noch)?
Comparison of 1st & 2nd with 3rd & 4th
The first two are the formal form of the second ones and more polite. In German, you have two forms to address someone:
Talking with a friend, you could use one of the second sentences, but if you're talking to a stranger or (maybe) your boss, you should pick one of the first two sentences.
Some further information:
- answer about the difference between du and Sie (German Language Stack Exchange)
- explanation from Deutsche Welle (english; German public international broadcaster)
Comparison of 1st & 3rd with 2nd & 4th
All in all, you can use them both and they don't differ much. I would say, the number 1 and 3 are a bit more formal than 2 and 4.
By the way: the word noch is optional.
What your first sentence mean
Thanks to @Hubert Schölnast's comment, I realised that the first sentence is grammatically correct, but makes no sense in this context as it uses a different verb.
Was machst du/machen Sie heute vor?
It uses the verb vormachen, which means to show something. It isn't used in the context of asking or talking about your plans (today).