pre_schedule_event filter-hookWP 5.1.0

Filter to override scheduling an event.

Returning a non-null value will short-circuit adding the event to the cron array, causing the function to return the filtered value instead.

Both single events and recurring events are passed through this filter; single events have $event->schedule as false, whereas recurring events have this set to a recurrence from wp_get_schedules(). Recurring events also have the integer recurrence interval set as $event->interval.

For plugins replacing wp-cron, it is recommended you check for an identical event within ten minutes and apply the schedule_event filter to check if another plugin has disallowed the event before scheduling.

Return true if the event was scheduled, false or a WP_Error if not.


add_filter( 'pre_schedule_event', 'wp_kama_pre_schedule_event_filter', 10, 3 );

 * Function for `pre_schedule_event` filter-hook.
 * @param null|bool|WP_Error $result   The value to return instead.
 * @param object             $event    An object containing an event's data.
 * @param bool               $wp_error Whether to return a WP_Error on failure.
 * @return null|bool|WP_Error
function wp_kama_pre_schedule_event_filter( $result, $event, $wp_error ){

	// filter...
	return $result;
The value to return instead.
Default: null to continue adding the event

An object containing an event's data.

  • hook(string)
    Action hook to execute when the event is run.

  • timestamp(int)
    Unix timestamp (UTC) for when to next run the event.

  • schedule(string|false)
    How often the event should subsequently recur.

  • args(array)
    Array containing each separate argument to pass to the hook's callback function.

  • interval(int)
    Optional. The interval time in seconds for the schedule. Only present for recurring events.
Whether to return a WP_Error on failure.


Since 5.1.0 Introduced.
Since 5.7.0 The $wp_error parameter was added, and a WP_Error object can now be returned.

Where the hook is called

wp-includes/cron.php 91
$pre = apply_filters( 'pre_schedule_event', null, $event, $wp_error );
wp-includes/cron.php 269
$pre = apply_filters( 'pre_schedule_event', null, $event, $wp_error );

Where the hook is used in WordPress

Usage not found.