Cron job to run just once per day using external cron service

wp_schedule_single_event‘s $timestamp is the time you want the event to occur. This must be in a UNIX timestamp format. WP cron uses UTC/GMT time, not local time. Use time(), which is always GMT in WordPress.

time() number of seconds since the Unix Epoch

If you want to add a day, you need to add seconds:

time() + (24 * 60 * 60)

So you would want to use:

if ( ! wp_next_scheduled( 'kl_single_cron_job' ) ) {

    wp_schedule_single_event( time() + 86400, 'kl_single_cron_job' );

}

or 'daily' with wp_schedule_event:

if ( ! wp_next_scheduled( 'kl_single_cron_job' ) ) {

    wp_schedule_event( time(), 'daily', 'kl_single_cron_job' );

}