Try this in your functions.php file:
add_action('save_post', 'wpb_autogenerate_events_title', 10, 3);
function wpb_autogenerate_events_title($post_id, $post, $update) {
// Check if it's the 'events' CPT and if the title is empty.
if ('events' !== $post->post_type || !empty($post->post_title)) {
return;
}
// Fetch terms from 'category' and 'nameselection' taxonomies.
$category_term = wp_get_post_terms($post_id, 'category', ['fields' => 'names']);
$nameselection_term = wp_get_post_terms($post_id, 'nameselection', ['fields' => 'names']);
// Fetch the 'date' custom field created with ACF Pro.
$date = get_field('date', $post_id);
// Combine the terms and the date to form the title.
$new_title = join(' - ', array_merge((array) $category_term, (array) $nameselection_term, (array) $date));
// Prepare the slug from the title.
$new_slug = sanitize_title($new_title);
// Update the post.
wp_update_post([
'ID' => $post_id,
'post_title' => $new_title,
'post_name' => $new_slug, // This is the slug.
]);
}