Customizable number of events visible before the + more

I would like to be able to see all appointments in the calendar view when in week or day mode.

At least, could you modify the code here to allow for a customization on the number of appointments shown before the + more appears via a hook?

I propose these modifications (see bolded parts) in class.bookingpress_calendar.php in bookingpress_get_bookings_details_func() around line 429:

$appointments_to_show = apply_filters('bookingpress_appointments_to_show_in_calendar', 2);

foreach ( $bookings_data as $bookings_key => $bookings_val ) {

$bookingpress_booking_date = date('Y-m-d', strtotime($bookings_val['bookingpress_appointment_date']));
$bookingpress_booking_end_date = (!empty( $bookings_val['bookingpress_appointment_end_date'] ) && '0000-00-00' != $bookings_val['bookingpress_appointment_end_date'] ) ? date('Y-m-d', strtotime( $bookings_val['bookingpress_appointment_end_date'] ) ) : $bookingpress_booking_date;
$bookingpress_booking_end_date = $bookingpress_booking_date;
$service_start_time = ! empty($bookings_val['bookingpress_appointment_time']) ? $bookings_val['bookingpress_appointment_time'] : '';
$service_end_time = ! empty($bookings_val['bookingpress_appointment_end_time']) ? $bookings_val['bookingpress_appointment_end_time'] : '';

if($service_end_time == "00:00" || $service_end_time == "00:00:00"){
$service_end_time = "24:00";
}

if($service_end_time == "24:00:00" || $service_end_time == "24:00"){
$bookingpress_booking_end_date = date('Y-m-d', strtotime( $bookingpress_booking_date . ' +1 day' ) );
$service_end_time = "00:00:01";
}

if($activeView=='month') {
$appointment_data = $wpdb->get_results( $wpdb->prepare( "SELECT bookingpress_appointment_booking_id, bookingpress_appointment_date,bookingpress_appointment_time,bookingpress_appointment_end_time,( SELECT COUNT(bookingpress_appointment_booking_id) FROM {$tbl_bookingpress_appointment_bookings} WHERE bookingpress_appointment_date = %s AND ( bookingpress_appointment_status = '1' OR bookingpress_appointment_status = '2' ) {$search_query} ) as totalAppointment FROM {$tbl_bookingpress_appointment_bookings} WHERE bookingpress_appointment_date = %s AND (bookingpress_appointment_status='1' OR bookingpress_appointment_status='2') {$search_query} ORDER BY bookingpress_appointment_date ASC, bookingpress_appointment_time ASC", $bookings_val['bookingpress_appointment_date'] ,$bookings_val['bookingpress_appointment_date']), ARRAY_A); //phpcs:ignore WordPress.DB.PreparedSQL.InterpolatedNotPrepared -- Reason: $tbl_bookingpress_appointment_bookings is table name defined globally and $search_query is properly prepared. False Positive alarm
}
else if($activeView=='week' || $activeView=='day') {
$appointment_data = $wpdb->get_results( $wpdb->prepare( "SELECT bookingpress_appointment_booking_id, bookingpress_appointment_date, bookingpress_appointment_time,bookingpress_appointment_end_time,( SELECT COUNT(bookingpress_appointment_booking_id) FROM {$tbl_bookingpress_appointment_bookings} WHERE bookingpress_appointment_date = %s AND bookingpress_appointment_time = %s AND bookingpress_appointment_end_time = %s AND (bookingpress_appointment_status='1' OR bookingpress_appointment_status='2') {$search_query} ) as totalAppointment FROM {$tbl_bookingpress_appointment_bookings} WHERE bookingpress_appointment_date = %s AND bookingpress_appointment_time = %s AND bookingpress_appointment_end_time = %s AND (bookingpress_appointment_status='1' OR bookingpress_appointment_status='2') {$search_query} ORDER BY bookingpress_appointment_date ASC, bookingpress_appointment_time ASC", $bookings_val['bookingpress_appointment_date'], $bookings_val['bookingpress_appointment_time'], $bookings_val['bookingpress_appointment_end_time'], $bookings_val['bookingpress_appointment_date'], $bookings_val['bookingpress_appointment_time'], $bookings_val['bookingpress_appointment_end_time'] ), ARRAY_A); //phpcs:ignore WordPress.DB.PreparedSQL.InterpolatedNotPrepared -- Reason: $tbl_bookingpress_appointment_bookings is table name defined globally and $search_query is properly prepared. False Positive alarm
}
$totalAppointmentCount=0;
if(isset($appointment_data[0]['totalAppointment']) && $appointment_data[0]['totalAppointment']>2 && $activeView=='month') {
$totalAppointmentCount=$appointment_data[0]['totalAppointment']-$appointments_to_show;
}
if(isset($appointment_data[1]['totalAppointment']) && $appointment_data[1]['totalAppointment']>2 && ($activeView=='week' || $activeView=='day') && $bookings_val['bookingpress_appointment_booking_id'] == $appointment_data[0]['bookingpress_appointment_booking_id']) {
$totalAppointmentCount=$appointment_data[0]['totalAppointment']-$appointments_to_show;
}
if(isset($bookings_data[$bookings_key-$appointments_to_show\]) && $activeView=='month' && $bookings_data[$bookings_key-$appointments_to_show]['bookingpress_appointment_date'] == $bookings_val['bookingpress_appointment_date']) {
continue;
}
if(isset($bookings_data[$bookings_key-$appointments_to_show]) && ($activeView=='week' || $activeView=='day') && $bookings_data[$bookings_key-$appointments_to_show]['bookingpress_appointment_date'] == $bookings_val['bookingpress_appointment_date'] && ($bookings_data[$bookings_key-$appointments_to_show]['bookingpress_appointment_time'] == $bookings_val['bookingpress_appointment_time']) && ($bookings_data[$bookings_key-$appointments_to_show]['bookingpress_appointment_end_time'] == $bookings_val['bookingpress_appointment_end_time'])) {
continue;
}

$bookingpress_appointment_status = $bookings_val['bookingpress_appointment_status'];
$bookingpress_appointment_class = 'bpa-cal-event-card';
if ($bookingpress_appointment_status == '1' ) {
$bookingpress_appointment_class .= ' bpa-cal-event-card--approved';
} elseif ($bookingpress_appointment_status == '2' ) {
$bookingpress_appointment_class .= ' bpa-cal-event-card--pending';
} elseif ($bookingpress_appointment_status == '3' ) {
$bookingpress_appointment_class .= ' bpa-cal-event-card--cancelled';
} elseif ($bookingpress_appointment_status == '4' ) {
$bookingpress_appointment_class .= ' bpa-cal-event-card--cancelled';
}

$bookingpress_appointment_class = apply_filters('bookingpress_modify_calendar_appointment_class', $bookingpress_appointment_class, $bookingpress_appointment_status);

$bookingpress_event_slot_title = '';
$bookingpress_cust_fnm = isset($bookings_val['bookingpress_customer_firstname']) ? stripslashes_deep($bookings_val['bookingpress_customer_firstname']) : '';
$bookingpress_cust_lnm = isset($bookings_val['bookingpress_customer_lastname']) ? stripslashes_deep($bookings_val['bookingpress_customer_lastname']) : '';
$bookingpress_cust_fullnm = isset($bookings_val['bookingpress_customer_name']) ? stripslashes_deep($bookings_val['bookingpress_customer_name']) : '';
$bookingpress_cust_unm = isset($bookings_val['bookingpress_username']) ? stripslashes_deep($bookings_val['bookingpress_username']) : '';
$bookingpress_cust_email = isset($bookings_val['bookingpress_customer_email']) ? $bookings_val['bookingpress_customer_email'] : '';
$bookingpress_cust_phone = isset($bookings_val['bookingpress_customer_phone']) ? $bookings_val['bookingpress_customer_phone'] : '';

$bookingpress_customer_phone_dial_code = !empty($bookings_val['bookingpress_customer_phone_dial_code']) ? $bookings_val['bookingpress_customer_phone_dial_code'] : '';

if(!empty($bookingpress_customer_phone_dial_code) && !empty($bookingpress_cust_phone)){
$bookingpress_cust_phone = '+'.$bookingpress_customer_phone_dial_code.' '.$bookingpress_cust_phone;
$bookings_val['bookingpress_customer_phone'] = $bookingpress_cust_phone;
}

if(!empty($bookingpress_cust_fnm) || !empty($bookingpress_cust_lnm)) {
$bookingpress_event_slot_title = !empty($bookingpress_cust_fnm) ? $bookingpress_cust_fnm : '';
$bookingpress_event_slot_title .= !empty($bookingpress_event_slot_title) ? ' ' : '';
$bookingpress_event_slot_title .= !empty($bookingpress_cust_lnm) ? $bookingpress_cust_lnm : '';
} else if(!empty($bookingpress_cust_fullnm) && empty($bookingpress_event_slot_title)){
$bookingpress_event_slot_title = $bookingpress_cust_fullnm;
} else if(!empty($bookingpress_cust_unm) && empty($bookingpress_event_slot_title)){
$bookingpress_event_slot_title = $bookingpress_cust_unm;
} else if(!empty($bookingpress_cust_email) && empty($bookingpress_event_slot_title)){
$bookingpress_event_slot_title = $bookingpress_cust_email;
} else if(!empty($bookingpress_cust_phone) && empty($bookingpress_event_slot_title)){
$bookingpress_event_slot_title = $bookingpress_cust_phone;
} else {
$bookingpress_event_slot_title = stripslashes_deep($bookings_val['bookingpress_service_name']);
}

$calendar_bookings_data[] = array(
'start' => $bookingpress_booking_date . ' ' . $service_start_time,
'end' => $bookingpress_booking_end_date . ' ' . $service_end_time,
'title' => $bookingpress_event_slot_title,
'class' => $bookingpress_appointment_class,
'appointment_id' => intval($bookings_val['bookingpress_appointment_booking_id']),
'service_id' => intval($bookings_val['bookingpress_service_id']),
'is_cancelled' => ( $bookingpress_appointment_status == '3' || $bookingpress_appointment_status == '4' ) ? 1 : 0,
'is_past_time' => ( current_time('timestamp') > strtotime( $bookingpress_booking_date . ' ' . $service_start_time ) ),
'totalEvents_onsameslot' => $totalAppointmentCount,
);

$calendar_bookings_data = apply_filters('bookingpress_modify_calendar_appointment_details', $calendar_bookings_data, $bookings_val);
}