Speed up WP_query with meta comparing dates

Can you upgrade your hosting? I’ve had a very similar query running on AWS that is fine with 1700 events and meta_query that also had location.

Another option for you (if it’s always the same query i.e. today as your queried date) is to use transients to store the result.

$events_arr = get_transient('events_running_today');

if (!$events_arr) {
    $expiration = 2 * 60 * 60; // time in seconds
    // run your existing query here
    $events_arr = // your query    
    set_transient( 'events_running_today', $events_arr, $expiration );
}
// etc etc