Idea: It could be a FMR to multiple contacts for events. Only change code to select multiple contacts, and save these ids into contactid field of __jem_events table.
Custom filed are global for all events. For example if you use custom field, you custom label for this custom field. If the custom field is empty, not shown, but you need more custom field, for example 5 more for contact, I don't have or not change label for one event, if you change the label of custom fields is for all events. If you had not used custom fields, then it's a alternative solution but the speaker name don't link to contact (could be use the link to contact, but it's not the same).