Multiple Content Types sharing a lot of common fields
If the content types share the majority of fields, it makes sense to keep them as a single content type.

I'd suggest adding a field for "Event type" or similar to record what sub-type of Event the content is and perhaps group the additional fields in fieldsets.

You can then show/hide the additional relevant fields with hook_field_attach_form (or equivalent) by setting '#access' => FALSE on the relevant field.

If you don't mind showing the fields to the user, you could also use a module like conditional_fields (D7 dev works ok)