Title: WP Crontrol
Author: John Blackbourn
Published: <strong>January 6, 2008</strong>
Last modified: January 28, 2026

---

Search plugins

![](https://ps.w.org/wp-crontrol/assets/banner-772x250.jpg?rev=2997335)

![](https://ps.w.org/wp-crontrol/assets/icon.svg?rev=2997335)

# WP Crontrol

 By [John Blackbourn](https://profiles.wordpress.org/johnbillion/)

[Download](https://downloads.wordpress.org/plugin/wp-crontrol.1.21.0.zip)

 * [Details](https://sa.wordpress.org/plugins/wp-crontrol/#description)
 * [Reviews](https://sa.wordpress.org/plugins/wp-crontrol/#reviews)
 * [Development](https://sa.wordpress.org/plugins/wp-crontrol/#developers)

 [Support](https://wordpress.org/support/plugin/wp-crontrol/)

## Description

WP Crontrol enables you to take control of the scheduled cron events on your WordPress
website or WooCommerce store. From the admin screens you can:

 * View all scheduled cron events along with their arguments, schedule, callback
   functions, and when they are next due.
 * Edit, delete, pause, resume, and immediately run cron events.
 * Add new cron events.
 * Bulk delete cron events.
 * Add and remove custom cron schedules.
 * Export and download cron event lists as a CSV file.

WP Crontrol is aware of timezones, will alert you to events that have no actions
or that have missed their schedule, and will show you a helpful warning message 
if it detects any problems with your cron system.

### Usage

 1. Go to the `Tools  Cron Events` menu to manage cron events.
 2. Go to the `Settings  Cron Schedules` menu to manage cron schedules.

### Documentation

[Extensive documentation on how to use WP Crontrol and how to get help for error messages that it shows is available on the WP Crontrol website](https://wp-crontrol.com/docs/how-to-use/).

### For site owners

Owners of WordPress websites and WooCommerce stores use WP Crontrol to ensure that
scheduled cron events run correctly and efficiently. By providing complete control
over cron events, WP Crontrol helps you:

 * **Improve reliability**: Address missed or failed cron events, ensuring your 
   website or WooCommerce store continues to function as expected.
 * **Enhance security**: Monitor and control cron events to ensure automatic update
   checks are performed as they should.
 * **Simplify management**: Add, edit, delete, and pause cron events from a user-
   friendly interface, without needing to write any code.
 * **Gain insights**: Export cron event data for analysis or reporting.
 * **Action Scheduler compatibility**: Full support for the Action Scheduler system
   in WooCommerce, which is used to process recurring payments, subscriptions, and
   background orders.
 * **Clarity of times and timezones**: All times are shown with a clear and accurate
   indication of which timezone applies. No more guesswork!

### For developers

Developers use WP Crontrol to streamline and debug their WordPress development process:

 * **Enhanced debugging**: Identify and troubleshoot issues with scheduled tasks,
   ensuring your scheduled events and their callbacks run as expected.
 * **Custom schedules**: Create and manage custom cron schedules to fit the specific
   needs of your website, plugins, or themes, providing greater flexibility than
   just the core schedules.
 * **Efficient workflow**: Add, edit, and delete cron events directly from the WordPress
   admin interface, saving time and reducing the need for manual coding.
 * **Insightful monitoring**: Get insight into the performance and behavior of your
   scheduled tasks, allowing for optimization and better resource management.
 * **Accurate debugging**: WP Crontrol goes to great lengths to ensure that running
   an event manually does so in a manner which exactly matches how WordPress core
   runs schdeuled events. This ensures that you can debug events accurately and 
   with confidence.

### Other Plugins

I maintain several other plugins for developers. Check them out:

 * [Query Monitor](https://wordpress.org/plugins/query-monitor/) is the developer
   tools panel for WordPress.
 * [User Switching](https://wordpress.org/plugins/user-switching/) provides instant
   switching between user accounts in WordPress.

### Privacy Statement

WP Crontrol is private by default and always will be. It does not send data to any
third party, nor does it include any third party resources. [WP Crontrol’s full privacy statement can be found here](https://wp-crontrol.com/privacy/).

### Accessibility Statement

WP Crontrol aims to be fully accessible to all of its users. [WP Crontrol’s full accessibility statement can be found here](https://wp-crontrol.com/accessibility/).

## Screenshots

 * [[
 * Cron events can be modified, deleted, and executed
 * [[
 * New cron events can be added
 * [[
 * New cron schedules can be added, giving plugin developers more options when scheduling
   events

## FAQ

### Does this plugin work with PHP 8?

Yes, it’s actively tested and working up to PHP 8.4.

### I get the error “There was a problem spawning a call to the WP-Cron system on your site”. How do I fix this?

[You can read all about problems spawning WP-Cron on the WP Crontrol website](https://wp-crontrol.com/help/problems-spawning-wp-cron/).

### Why do some cron events miss their schedule?

[You can read all about cron events that miss their schedule on the WP Crontrol website](https://wp-crontrol.com/help/missed-cron-events/).

### Why do some cron events reappear shortly after I delete them?

If the event is added by a plugin then the plugin most likely rescheduled the event
as soon as it saw that the event was missing. To get around this you can instead
use the “Pause this hook” action which means it’ll remain in place but won’t perform
any action when it runs.

### Is it safe to delete cron events?

This depends entirely on the event. You can use your favourite search engine to 
search for the event name in order to find out which plugin it belongs to, and then
decide whether or not to delete it.

If the event shows “None” as its action then it’s usually safe to delete. Please
see the other FAQs for more information about events with no action.

### Why can’t I delete some cron events?

The WordPress core software uses cron events for some of its functionality and removing
these events is not possible because WordPress would immediately reschedule them
if you did delete them. For this reason, WP Crontrol doesn’t let you delete these
persistent events from WordPress core in the first place.

If you don’t want these events to run, you can use the “Pause this hook” action 
instead.

### What happens when I pause an event?

Pausing an event will disable all actions attached to the event’s hook. The event
itself will remain in place and will run according to its schedule, but all actions
attached to its hook will be disabled. This renders the event inoperative but keeps
it scheduled so as to remain fully compatible with events which would otherwise 
get automatically rescheduled when they’re missing.

As pausing an event actually pauses its hook, all events that use the same hook 
will be paused or resumed when pausing and resuming an event. This is much more 
useful and reliable than pausing individual events separately.

### What happens when I resume an event?

Resuming an event re-enables all actions attached to the event’s hook. All events
that use the same hook will be resumed.

### What does it mean when “None” is shown for the Action of a cron event?

This means the cron event is scheduled to run at the specified time but there is
no corresponding functionality that will be triggered when the event runs, therefore
the event is useless.

[You can read all about events with no action on the WP Crontrol website](https://wp-crontrol.com/help/no-action-cron-events/).

### How do I change the next run time or the schedule of a cron event?

You can change the time and schedule of a cron event by clicking the “Edit” link
next to the event.

### Why do changes that I make to some cron events not get saved?

[You can read all about problems with editing cron events on the WP Crontrol website](https://wp-crontrol.com/help/problems-managing-events/).

### Can I export a list of cron events?

Yes, a CSV file of the event list can be exported and downloaded via the “Export”
button on the cron event listing screen. This file can be opened in any spreadsheet
application.

### Can I see a historical log of all the cron events that ran on my site?

Not yet, but I hope to add this functionality soon.

### Can I see a historical log of edits, additions, and deletions of cron events and schedules?

Yes. The excellent [Simple History plugin](https://wordpress.org/plugins/simple-history/)
has built-in support for logging actions performed via WP Crontrol.

### What’s the use of adding new cron schedules?

Cron schedules are used by WordPress and plugins for scheduling events to be executed
at regular intervals. Intervals must be provided by the WordPress core or a plugin
in order to be used. As an example, many backup plugins provide support for periodic
backups. In order to do a weekly backup, a weekly cron schedule must be entered 
into WP Crontrol first and then a backup plugin can take advantage of it as an interval.

### How do I create a new cron event?

There are two steps to getting a functioning cron event that executes regularly.
The first step is telling WordPress about the hook. This is the part that WP Crontrol
was created to provide. The second step is calling a function when your hook is 
executed.

_Step One: Adding the event_

From the Tools  Cron Events menu, click on Add Cron Event. Fill out the details 
of the event. You’re best off using a hook name that conforms to normal PHP variable
naming conventions. The schedule is how often the event will be executed. If you
don’t see a good interval, then add one in the Settings  Cron Schedules menu.

_Step Two: Writing the function_

This part takes place in PHP code (for example, in the `functions.php` file from
your theme). To execute your hook, WordPress runs an action. For this reason, we
need to tell WordPress which function to execute when this action is run. The following
line accomplishes that:

    ```
    add_action( 'my_hookname', 'my_function' );
    ```

The next step is to write your function. Here’s a simple example:

    ```
    function my_function() {
        wp_mail( 'hello@example.com', 'WP Crontrol', 'WP Crontrol rocks!' );
    }
    ```

### How can I create a cron event that requests a URL?

From the Tools  Cron Events menu, click on Add Cron Event. Select the “URL cron 
event” option, fill out the details, and press the “Add Event” button.

[You can read all about the features and security of URL cron events on the WP Crontrol website](https://wp-crontrol.com/docs/url-cron-events/).

### How do I create a new PHP cron event?

From the Tools  Cron Events menu, click on Add Cron Event. Select the “PHP cron 
event” option and enter the schedule and next run time. The event schedule is how
often your event will be executed. If you don’t see a good interval, then add one
in the Settings  Cron Schedules menu. In the “PHP Code” area, enter the PHP code
that should be run when your cron event is executed. You don’t need to provide the
PHP opening tag (`<?php`).

Creating, editing, and running PHP cron events is subject to restrictive security
permissions. [You can read all about the features and security of PHP cron events on the WP Crontrol website](https://wp-crontrol.com/docs/php-cron-events/).

### Which users can manage cron events and schedules?

Only users with the `manage_options` capability can manage cron events and schedules.
By default, only Administrators have this capability.

### Which users can manage PHP cron events? Is this dangerous?

Only users with the `edit_files` capability can manage PHP cron events. This means
if a user cannot edit files via the WordPress admin area (i.e. through the Plugin
Editor or Theme Editor) then they also cannot add, edit, or delete a PHP cron event
in WP Crontrol. By default only Administrators have this capability, and with Multisite
enabled only Super Admins have this capability.

If file editing has been disabled via the `DISALLOW_FILE_MODS` or `DISALLOW_FILE_EDIT`
configuration constants then no user will have the `edit_files` capability, which
means adding, editing, or deleting a PHP cron event will not be permitted.

Therefore, the user access level required to execute arbitrary PHP code does not
change with WP Crontrol activated.

If the `CRONTROL_DISALLOW_PHP_EVENTS` constant is defined and set to `true`, then
PHP cron events will be disabled completely. Any existing PHP cron events will remain
in place (and can be deleted if user permissions allow) but their PHP code will 
not be executed when the event runs, and no PHP cron events can be added, edited,
or run.

[You can read all about the features and security of PHP cron events on the WP Crontrol website](https://wp-crontrol.com/docs/php-cron-events/).

### Are any WP-CLI commands available?

The cron commands which were previously included in WP Crontrol are now part of 
WP-CLI itself. See `wp help cron` for more info.

### What happens when I deactivate the WP Crontrol plugin?

[You can read all about what happens when you deactivate the plugin on the WP Crontrol website](https://wp-crontrol.com/docs/deactivation/).

### How can I report a security bug?

[You can report security bugs through the official WP Crontrol Vulnerability Disclosure Program on Patchstack](https://patchstack.com/database/vdp/wp-crontrol).
The Patchstack team helps validate, triage, and handle any security vulnerabilities.

### Who took the photo in the plugin header image?

The photo was taken by [Michael Pardo](https://www.flickr.com/photos/michaelpardo/21453119315)
and is in the public domain.

## Reviews

![](https://secure.gravatar.com/avatar/e2987b2396b9c5cd5b6d4ae5ead033949fe1876bc53b71c8f887abc393e2544c?
s=60&d=retro&r=g)

### 󠀁[Hmm. Nothing actually deletes](https://wordpress.org/support/topic/hmm-nothing-actually-deletes/)󠁿

 [patboran](https://profiles.wordpress.org/patboran/) February 10, 2026 4 replies

Not currently working for me, but developer points out that the issue is probably
at my site rather than with the app. Which I will, of course, look into.

![](https://secure.gravatar.com/avatar/5259aad43e4f23bf29d16ec6968167079e141954c31c62b6f95e5643b9b7d584?
s=60&d=retro&r=g)

### 󠀁[Must-Use Plugin](https://wordpress.org/support/topic/must-use-plugin-35/)󠁿

 [eLmore](https://profiles.wordpress.org/elmore/) February 8, 2026

Always use this plugin to debug my cron jobs. It’s extremely simple and easy to 
use.

![](https://secure.gravatar.com/avatar/ea6d0543003811bf39dfef74a31f15287a49823fc40fb5011edcc3c0d71614b7?
s=60&d=retro&r=g)

### 󠀁[Works](https://wordpress.org/support/topic/works-2268/)󠁿

 [kloddant](https://profiles.wordpress.org/kloddant/) January 22, 2026

Does what it is supposed to.

![](https://secure.gravatar.com/avatar/abe2555d2ad23e504c80b6acefb560b411cecf7ba672675a21d9e66cc429196e?
s=60&d=retro&r=g)

### 󠀁[Life saver](https://wordpress.org/support/topic/life-saver-483/)󠁿

 [orangeracoon](https://profiles.wordpress.org/orangeracoon/) December 4, 2025

during last summer, I was having an almost impossible problem of my tables that 
would Stop rendering after around 24 hours, initially I thought it was a Cloudflare
issue , so I spent weeks excluding rules from caching. It was not until I installed
WPCron did it learn that Elementor was running one particular Cron job that were
completely unrelated to any of the material or topic which was breaking the rendering
of the tables . I literally worked on addressing this bug on and off for several
months . it was eye opening to see the number of Cron jobs that WordPress plugins
run . And for a a free plugin , I think it is a must have tool to have , I would
even consider making it part of core. Thank You . 😊

![](https://secure.gravatar.com/avatar/d112eff18652604126b88495a8cfc3f66b2a56489833597f47743b5dc11fa08a?
s=60&d=retro&r=g)

### 󠀁[A way to see, create, remove and pause WordPress Cron Jobs.](https://wordpress.org/support/topic/a-way-to-see-create-remove-and-pause-wordpress-cron-jobs/)󠁿

 [Farzad](https://profiles.wordpress.org/farzadjozaghi/) August 20, 2025

I Mainly use it to watch how my Cron Jobs are working.

![](https://secure.gravatar.com/avatar/9bf7181dbe7d9cfa5be8ca505e771ba5135e9e33b8175961fb43d54ee8043809?
s=60&d=retro&r=g)

### 󠀁[Very convenient](https://wordpress.org/support/topic/very-convenient-96/)󠁿

 [Anonymous User](https://profiles.wordpress.org/anonymized-23336172/) August 18,
2025

I can do all these things on my site’s backend without having to mess with databases.

 [ Read all 163 reviews ](https://wordpress.org/support/plugin/wp-crontrol/reviews/)

## Contributors & Developers

“WP Crontrol” is open source software. The following people have contributed to 
this plugin.

Contributors

 *   [ John Blackbourn ](https://profiles.wordpress.org/johnbillion/)
 *   [ scompt ](https://profiles.wordpress.org/scompt/)

“WP Crontrol” has been translated into 24 locales. Thank you to [the translators](https://translate.wordpress.org/projects/wp-plugins/wp-crontrol/contributors)
for their contributions.

[Translate “WP Crontrol” into your language.](https://translate.wordpress.org/projects/wp-plugins/wp-crontrol)

### Interested in development?

[Browse the code](https://plugins.trac.wordpress.org/browser/wp-crontrol/), check
out the [SVN repository](https://plugins.svn.wordpress.org/wp-crontrol/), or subscribe
to the [development log](https://plugins.trac.wordpress.org/log/wp-crontrol/) by
[RSS](https://plugins.trac.wordpress.org/log/wp-crontrol/?limit=100&mode=stop_on_copy&format=rss).

## Changelog

### 1.21.0 (28 January 2026)

 * Adds support for invalid args in cron events by relaxing the strict typing and
   showing a warning on the listing and editing screens.

### 1.20.0 (17 December 2025)

 * Confirms support for WordPress 6.9
 * Minor UI and UX improvements
 * Some architectural changes to prepare for future enhancements

### 1.19.3 (23 October 2025)

 * Corrects the handling of closures as cron event actions.

### 1.19.2 (19 August 2025)

 * Security: Hardens the “URL cron event” functionality by rejecting disallowed 
   URLs. [More information see the security advisory](https://github.com/johnbillion/wp-crontrol/security/advisories/GHSA-35c5-67fm-cpcp).
 * Tweaks the display of some non-persistent WordPress core hooks when Multisite
   is enabled.

### 1.19.1 (3 June 2025)

 * Reinstates the ability to edit the Action Scheduler event.

### 1.19.0 (23 April 2025)

 * Confirms support for WordPress 6.8
 * Further improvements to the display of dates, intervals, and timezones for increased
   clarity
 * Adds more contextual help links for problematic events
 * Various UI and UX improvements

### 1.18.0 (13 January 2025)

 * Introduces support for a `CRONTROL_DISALLOW_PHP_EVENTS` constant to fully disable
   the PHP cron event functionality. [Full documentation here](https://wp-crontrol.com/docs/php-cron-events/).
 * Further improvements to how time durations and timezone information is displayed.

### 1.17.1 (22 November 2024)

 * Confirms support for WordPress 6.7
 * Avoids some warnings when running on PHP 8.3 and 8.4

### 1.17.0 (15 July 2024)

 * Introduces [a new cron event type for sending a request to a URL](https://wp-crontrol.com/docs/url-cron-events/)
 * Confirms support for WordPress 6.6
 * Improves various aspects of the cron management interface and language

### 1.16.3 (19 April 2024)

 * Corrects the displayed PHP cron event name if one is provided

### Earlier versions

For the changelog of earlier versions, [refer to the releases page on GitHub](https://github.com/johnbillion/wp-crontrol/releases).

## Meta

 *  Version **1.21.0**
 *  Last updated **2 months ago**
 *  Active installations **300,000+**
 *  WordPress version ** 6.4 or higher **
 *  Tested up to **6.9.4**
 *  PHP version ** 7.4 or higher **
 *  Languages
 * [Chinese (Taiwan)](https://tw.wordpress.org/plugins/wp-crontrol/), [Czech](https://cs.wordpress.org/plugins/wp-crontrol/),
   [Dutch](https://nl.wordpress.org/plugins/wp-crontrol/), [Dutch (Belgium)](https://nl-be.wordpress.org/plugins/wp-crontrol/),
   [English (Australia)](https://en-au.wordpress.org/plugins/wp-crontrol/), [English (Canada)](https://en-ca.wordpress.org/plugins/wp-crontrol/),
   [English (New Zealand)](https://en-nz.wordpress.org/plugins/wp-crontrol/), [English (UK)](https://en-gb.wordpress.org/plugins/wp-crontrol/),
   [English (US)](https://wordpress.org/plugins/wp-crontrol/), [French (France)](https://fr.wordpress.org/plugins/wp-crontrol/),
   [German](https://de.wordpress.org/plugins/wp-crontrol/), [Italian](https://it.wordpress.org/plugins/wp-crontrol/),
   [Japanese](https://ja.wordpress.org/plugins/wp-crontrol/), [Korean](https://ko.wordpress.org/plugins/wp-crontrol/),
   [Persian](https://fa.wordpress.org/plugins/wp-crontrol/), [Polish](https://pl.wordpress.org/plugins/wp-crontrol/),
   [Portuguese (Brazil)](https://br.wordpress.org/plugins/wp-crontrol/), [Russian](https://ru.wordpress.org/plugins/wp-crontrol/),
   [Spanish (Chile)](https://cl.wordpress.org/plugins/wp-crontrol/), [Spanish (Colombia)](https://es-co.wordpress.org/plugins/wp-crontrol/),
   [Spanish (Ecuador)](https://es-ec.wordpress.org/plugins/wp-crontrol/), [Spanish (Mexico)](https://es-mx.wordpress.org/plugins/wp-crontrol/),
   [Spanish (Spain)](https://es.wordpress.org/plugins/wp-crontrol/), [Spanish (Venezuela)](https://ve.wordpress.org/plugins/wp-crontrol/),
   and [Swedish](https://sv.wordpress.org/plugins/wp-crontrol/).
 *  [Translate into your language](https://translate.wordpress.org/projects/wp-plugins/wp-crontrol)
 * Tags
 * [cron](https://sa.wordpress.org/plugins/tags/cron/)[crontrol](https://sa.wordpress.org/plugins/tags/crontrol/)
   [debug](https://sa.wordpress.org/plugins/tags/debug/)[woocommerce](https://sa.wordpress.org/plugins/tags/woocommerce/)
   [wp cron](https://sa.wordpress.org/plugins/tags/wp-cron/)
 *  [Advanced View](https://sa.wordpress.org/plugins/wp-crontrol/advanced/)

## Ratings

 4.5 out of 5 stars.

 *  [  139 5-star reviews     ](https://wordpress.org/support/plugin/wp-crontrol/reviews/?filter=5)
 *  [  2 4-star reviews     ](https://wordpress.org/support/plugin/wp-crontrol/reviews/?filter=4)
 *  [  1 3-star review     ](https://wordpress.org/support/plugin/wp-crontrol/reviews/?filter=3)
 *  [  0 2-star reviews     ](https://wordpress.org/support/plugin/wp-crontrol/reviews/?filter=2)
 *  [  21 1-star reviews     ](https://wordpress.org/support/plugin/wp-crontrol/reviews/?filter=1)

[Add my review](https://wordpress.org/support/plugin/wp-crontrol/reviews/#new-post)

[See all reviews](https://wordpress.org/support/plugin/wp-crontrol/reviews/)

## Contributors

 *   [ John Blackbourn ](https://profiles.wordpress.org/johnbillion/)
 *   [ scompt ](https://profiles.wordpress.org/scompt/)

## Support

Issues resolved in last two months:

     3 out of 3

 [View support forum](https://wordpress.org/support/plugin/wp-crontrol/)

## Donate

Would you like to support the advancement of this plugin?

 [ Donate to this plugin ](https://github.com/sponsors/johnbillion)