Title: Cron Pulse
Author: Farhan Ali
Published: <strong>July 14, 2026</strong>
Last modified: July 14, 2026

---

Search plugins

![](https://ps.w.org/cronpulse/assets/banner-772x250.png?rev=3607953)

![](https://ps.w.org/cronpulse/assets/icon-256x256.png?rev=3607953)

# Cron Pulse

 By [Farhan Ali](https://profiles.wordpress.org/farhanalidev/)

[Download](https://downloads.wordpress.org/plugin/cronpulse.1.1.0.zip)

 * [Details](https://wordpress.org/plugins/cronpulse/#description)
 * [Reviews](https://wordpress.org/plugins/cronpulse/#reviews)
 *  [Installation](https://wordpress.org/plugins/cronpulse/#installation)
 * [Development](https://wordpress.org/plugins/cronpulse/#developers)

 [Support](https://wordpress.org/support/plugin/cronpulse/)

## Description

WordPress developers fly blind with WP-Cron. The core tools give you no visibility
into whether scheduled jobs are actually running, how long they take, or when they
last fired.

**Cron Pulse** adds a clean dashboard under **Tools  Cron Pulse** that shows everything
you need at a glance:

#### Features

 * **Scheduled Jobs table** — hook name, recurrence schedule, next run time, last
   run time, execution duration
 * **Status indicators** — Healthy / Overdue / Failing / Pending color coding so
   problems jump out immediately
 * **Overdue detection** — instantly see jobs that should have fired but haven’t
 * **Admin bar badge** — a small warning indicator on every wp-admin (and front-
   end) page when something needs attention, so you don’t have to remember to check
   the dashboard
 * **Run Now** — manually trigger any cron hook with one click (great for testing)
 * **Unschedule** — delete a stuck or duplicate scheduled event straight from the
   dashboard
 * **Sortable columns and pagination** — click Next Run or Duration to sort; 25 
   jobs per page on sites with large schedules
 * **Duration sparkline** — tiny trend line per hook so a creeping-up execution 
   time is visible before it becomes a timeout
 * **Execution Log** — persistent log of run history with duration and pass/fail
   status; retention is configurable
 * **Hook and status filters** — search by hook name or narrow the table to just
   Overdue/Failing/Healthy/Never Run
 * **DISABLE_WP_CRON warning** — alerts you when automatic cron execution is disabled
 * **Email and webhook alerts** — get notified after N consecutive failed runs or
   when a job has been overdue too long, with optional per-job thresholds and a 
   one-click snooze for incidents you already know about. Webhook payloads work 
   directly with Slack and Discord, no relay needed — setup instructions are built
   into the Settings tab
 * **Built-in SMTP settings** — route alert emails through your own mail provider
   instead of the server’s default mail() function, no separate SMTP plugin required
 * **Email Log** — see every alert/test email Cron Pulse has sent, with delivery
   status and the underlying error if one failed
 * **Email Debug Log** — the raw SMTP conversation (connection, TLS, auth, server
   responses) for diagnosing delivery problems beyond a generic failure message —
   credentials are never written to it
 * **Send Test Email / Send Test Webhook** — confirm your notification settings 
   actually work before you need them
 * **WP-CLI support** — `wp cronpulse status` for scripting health checks across
   sites
 * **REST API** — `GET /wp-json/cronpulse/v1/status` for remote dashboards, authenticated
   like any other WP REST route
 * Zero external dependencies — pure PHP and vanilla jQuery

#### Who is this for?

 * **WordPress developers** debugging cron-based features
 * **Agencies** maintaining multiple client sites
 * **Enterprise teams** needing visibility into scheduled background tasks
 * Anyone tired of checking wp-cron manually or reading cryptic log files

#### Privacy

This plugin stores cron execution data (hook name, timestamp, duration) in the WordPress
options table. No data is sent externally unless you explicitly configure a webhook
URL under alert settings, in which case alert payloads are POSTed to that URL. The
REST API endpoint is read-only and pull-based — nothing is sent anywhere on its 
own. If you enable SMTP, your SMTP credentials are stored in the WordPress options
table, same as any other plugin setting — no third-party service receives them except
the SMTP server you configure. The email log stores recipient addresses and subjects
for emails Cron Pulse has sent. All data is deleted on plugin uninstall.

## Screenshots

[⌊Dashboard overview — scheduled jobs with live status indicators, overdue/failing
badges, and the 8-hour schedule strip⌉⌊Dashboard overview — scheduled jobs with 
live status indicators, overdue/failing badges, and the 8-hour schedule strip⌉[

Dashboard overview — scheduled jobs with live status indicators, overdue/failing
badges, and the 8-hour schedule strip

[⌊Execution log with run history, status filter chips, duration sparklines, and 
paginated entries⌉⌊Execution log with run history, status filter chips, duration
sparklines, and paginated entries⌉[

Execution log with run history, status filter chips, duration sparklines, and paginated
entries

[⌊Email log showing delivery history with per-entry status chips and the SMTP debug
log panel⌉⌊Email log showing delivery history with per-entry status chips and the
SMTP debug log panel⌉[

Email log showing delivery history with per-entry status chips and the SMTP debug
log panel

[⌊Settings — SMTP configuration, webhook alerts, and per-job overrides in a clean
two-column layout⌉⌊Settings — SMTP configuration, webhook alerts, and per-job overrides
in a clean two-column layout⌉[

Settings — SMTP configuration, webhook alerts, and per-job overrides in a clean 
two-column layout

## Installation

 1. Upload the `cronpulse` folder to `/wp-content/plugins/`
 2. Activate via **Plugins  Installed Plugins**
 3. Navigate to **Tools  Cron Pulse**

## FAQ

### Why does a job show as “Overdue”?

It means the scheduled run time has passed but the job hasn’t fired yet. This can
happen when `DISABLE_WP_CRON` is set in `wp-config.php`, or when your site has low
traffic and the WP-Cron system-tick hasn’t triggered.

### Does “Run Now” advance the next scheduled run time?

No. It fires the hook’s callback functions directly without modifying the cron schedule.
Use it for testing or manual one-off execution.

### Will this slow down my site?

No. The tracker hooks fire only during cron execution (not on regular page loads)
and the overhead is limited to a transient read/write per cron event.

### Where is the log stored?

In the WordPress options table under the key `cronpulse_execution_log`. The entry
cap defaults to 200 and is configurable from the Settings tab (10–5000). It’s cleared
on uninstall.

### Is it compatible with Action Scheduler or WooCommerce?

Cron Pulse tracks jobs registered through the standard WordPress `wp_schedule_event()`/`
_get_cron_array()` API. Action Scheduler uses its own queue system and is not covered.

### How do I authenticate against the REST endpoint?

The same way as any other WordPress REST route: a logged-in browser session (cookie
+ nonce), or an Application Password for external tools — Users  Profile  Application
Passwords. The requesting user needs the `manage_options` capability.

### What does “Snooze” do?

It acknowledges the current incident for that hook so no further alert is sent for
it, without turning off alerts globally. The moment the job recovers and later fails(
or becomes overdue) again, alerting resumes normally for that new incident.

### Why does the admin bar badge sometimes not appear right away?

It’s evaluated on every page load along with everything else the plugin tracks, 
so it only updates when you load a page — there’s no background process polling 
for it.

### Why would I need the SMTP settings?

Many hosts either don’t have PHP’s mail() function configured at all, or send through
it in a way that gets flagged as spam (no SPF/DKIM alignment, generic “From” address).
Configuring SMTP with your own mail provider’s credentials routes through a real
authenticated mail server instead, without needing a separate SMTP plugin. Use “
Send Test Email” after saving to confirm it’s actually working.

### Where is the email log stored, and what’s in it?

In the WordPress options table under the key `cronpulse_email_log`, capped at the
last 50 entries. Each entry has the recipient, subject, type (alert/test), delivery
status, and the underlying error message if it failed. Cleared on uninstall, or 
anytime via the Clear Email Log button.

### “Failed to send” isn’t telling me enough — how do I dig deeper?

Check the Email Debug Log on the Email Log tab. When SMTP is enabled it captures
the actual SMTP conversation — connection attempt, TLS handshake, AUTH exchange,
and the mail server’s own response — for every send. It’s a separate file under `
wp-content/uploads/cronpulse-logs/email-debug.log` (protected from direct web access),
not the options table, since a raw protocol transcript doesn’t belong in the database.
Login credentials are redacted before anything is written, regardless.

## Reviews

There are no reviews for this plugin.

## Contributors & Developers

“Cron Pulse” is open source software. The following people have contributed to this
plugin.

Contributors

 *   [ Farhan Ali ](https://profiles.wordpress.org/farhanalidev/)

[Translate “Cron Pulse” into your language.](https://translate.wordpress.org/projects/wp-plugins/cronpulse)

### Interested in development?

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

## Changelog

#### 1.1.0

 * New: Alert banner above the dashboard when jobs are failing or overdue — dismissible
   per session
 * New: Upcoming schedule strip showing the next 8 hours of scheduled runs as a 
   visual timeline
 * New: Expandable job rows — click any row for inline details (error message, sparkline,
   actions); failing/overdue rows pre-expanded
 * New: Status chips (pill badges) throughout — replaces the small dot + plain text
   pattern
 * New: Execution log filter strip — one-click filter for All / Success / Failed/
   Stuck
 * New: Duration bars in the execution log — proportional mini bars give a visual
   sense of relative run time
 * New: Inline error expansion in the Email Log — click a failed row to see the 
   error without leaving the tab
 * Improved: Summary cards now have colored left borders and show “overdue since”
   duration on the Overdue card
 * Improved: Settings tab restructured into three sectioned cards (Alert Rules, 
   SMTP, Webhook) for clarity
 * Improved: Failed/stuck execution log rows now have a colored left border stripe
   matching their severity

#### 1.0.0

 * Initial release

## Meta

 *  Version **1.1.0**
 *  Last updated **12 hours ago**
 *  Active installations **Fewer than 10**
 *  WordPress version ** 5.8 or higher **
 *  Tested up to **7.0.1**
 *  PHP version ** 7.4 or higher **
 * Tags
 * [cron](https://wordpress.org/plugins/tags/cron/)[cron jobs](https://wordpress.org/plugins/tags/cron-jobs/)
   [debugging](https://wordpress.org/plugins/tags/debugging/)[developer-tools](https://wordpress.org/plugins/tags/developer-tools/)
   [wp cron](https://wordpress.org/plugins/tags/wp-cron/)
 *  [Advanced View](https://wordpress.org/plugins/cronpulse/advanced/)

## Ratings

No reviews have been submitted yet.

[Your review](https://wordpress.org/support/plugin/cronpulse/reviews/#new-post)

[See all reviews](https://wordpress.org/support/plugin/cronpulse/reviews/)

## Contributors

 *   [ Farhan Ali ](https://profiles.wordpress.org/farhanalidev/)

## Support

Got something to say? Need help?

 [View support forum](https://wordpress.org/support/plugin/cronpulse/)