Yes, you're right, both are correct within their own contexts.
With "vinieran" the speaker implies the party has already ended. It could be possible to use "vinieran" during the party, but it's more precise using "hayan venido" because "venir" implies more "being there" than "coming". Of course, it's massively used "vinieran" instead of "hayan venido" though the party is still going, mainly in America, but in a context of formal teaching of languages it wouldn't be the first choice.
With "vengan" the speaker implies the party will start later probably in some other location. In such case, present is used to refer to scheduled activities in the future: they have already decided it and they're going to the party. The ending "hoy" suggest they are speaking of scheduled activities, so "vengan" seems to be the intended answer. With "mañana" it had been less ambiguous.
As an additional note, speakers tend to use "de hoy", "de esta noche" or they insert a short pause between "fiesta" and "hoy" as if a comma was placed there -but shorter-.
__________________
Sorry, no English spell-checker
|