Got it sorted. Amended the archive template so that it displayed the date only on event date change (after all it’s already sorted by date), then got the category from the term list and stripped the tags from it.
//Events have their own 'event-category' taxonomy. Get list of categories this event is in.
$category = strip_tags( get_the_term_list( $wp_query->post->ID, 'event-category', '', ', ', '' ) );
I can now append the category to the css class to style the line appropriately