You are using wrong variable on the following line:
$data['post_title'] = $post_title;
you should use $event_title in $post_title as following:
$data['post_title'] = $event_title;
Also Get Post ID from $postarr parameter.
Updated Code :
function set_event_title( $data , $postarr ) {
if($data['post_type'] == 'events') {
$event_date = get_post_meta($postarr['ID'],'event_datetime',true);
$event_venue = get_post_meta($postarr['ID'], 'venue_name' , true);
$event_title = $event_venue . ' - ' . $event_date;
$post_slug = sanitize_title_with_dashes ($event_title,'','save');
$post_slugsan = sanitize_title($post_slug);
$data['post_title'] = $event_title;
$data['post_name'] = $post_slugsan;
}
return $data;
}
add_filter( 'wp_insert_post_data' , 'set_event_title' , '10', 2 );
For more information on this filter visit this page.