Everything you need to
run cron jobs properly.
Cronengine goes far beyond just firing a URL on a schedule. Here is a full walkthrough of every feature and why it matters.
Visual schedule builder
Set your schedule with dropdowns for minute, hour, day of month, month, and day of week. Pick from preset values or choose "Every" for any field. The cron expression is built and validated in real time as you make selections.
You can also type a raw cron expression directly into the expression field if you prefer, and the builder updates to match. Both modes are always available, on every plan.
- 5-field cron expression (minute to weekday)
- Visual dropdowns and raw input work together
- Real-time validation with helpful error messages
- Supports last-day-of-month (L) syntax
Expression
Minute
Hour
Day
Month
Weekday
Upcoming executions
See the next runs before you save
When creating or editing a job, Cronengine computes and shows you the next upcoming execution times based on your expression and timezone. Catch mistakes before the job ever goes live.
The preview respects your chosen timezone, so you can verify that a job set to fire at midnight will actually run at midnight in your local time and not in the server's timezone.
- Shows exact date and time for upcoming runs
- Timezone-aware, not just UTC
- Updates live as you change the expression
Full run history with response bodies
Every time a job fires, Cronengine stores the HTTP status code, the execution duration in milliseconds, and the complete response body returned by your endpoint. Nothing is discarded.
You can filter runs by status (success or failure), date range, and outlier detection to quickly find the runs that are worth investigating. No need to grep through server logs.
- HTTP status, duration, and full response body per run
- Filter by status, date range, and outliers
- Up to 50 runs stored per job (Enterprise plan)
- Paginated for jobs with long histories
{"status":"ok","invoices_sent":14}
{"error":"SMTP connection refused"}
{"status":"ok","invoices_sent":9}
Execution time · last 20 runs
Execution time charts per job
Each job has a bar chart showing the duration of its last runs. A spike in execution time is an early warning sign: a slow database query, a third-party API degradation, or a memory problem that will eventually become an outage.
Runs that are statistical outliers are highlighted so they stand out at a glance. You can also filter the history view to show only outlier runs.
- Bar chart for every job's recent runs
- Outlier detection and highlighting
- Average and peak duration shown
Maps and tags to organise everything
Maps are named groups that contain one or more jobs. Use them to separate projects, clients, or environments. All jobs in a map are shown together on the dashboard so your production, staging, and dev jobs never get mixed up.
Tags add an extra layer of labelling. Tag jobs by type, team, or priority. The dashboard can be filtered by tag so you instantly see only the jobs you care about.
- Unlimited maps and tags on all paid plans
- Dashboard filtered per map
- Bulk actions within a map (pause, delete)
- Jobs can belong to one map and have multiple tags
Job failed: send-invoices
Your job send-invoices returned HTTP 500 at 09:00 on Monday 28 Apr.
Duration: 3,204 ms · Job: send-invoices · Map: Production
View run in dashboard ›Email alerts when jobs fail or succeed
Each job has its own notification setting. You can choose to be alerted only on failure, on every run, or not at all. The notification includes the HTTP status, response body, and a direct link to the run in your dashboard.
Failure alerts are available on every plan including free. Per-run notifications (every success and failure) are available on Starter and above.
- Failure alerts on all plans including free
- Every-run alerts on Starter and above
- Configured individually per job
- Daily notification cap to prevent spam
Upcoming run timeline
The Agenda view shows every scheduled execution across all your active jobs, sorted by time, up to 60 days ahead. It is useful for checking when a monthly job is next due, or for confirming that two jobs will not collide at the same moment.
High-frequency jobs (running more than once every 15 minutes) are shown as a single consolidated entry with their interval instead of flooding the list with hundreds of rows.
- All jobs shown in one unified timeline
- Up to 60 days look-ahead
- High-frequency jobs shown as intervals, not individual rows
- Paused jobs optionally shown as a dim overlay
Execution budget · April
24.8% used · 37,600 s remaining
A transparent execution budget
Instead of capping you on run count (which varies unpredictably by schedule), Cronengine uses an execution budget measured in seconds per month. It is calculated as your job's timeout multiplied by its estimated runs per month, summed across all active jobs.
This model is predictable. If you know your job's timeout and schedule, you know exactly how much budget it consumes. Paused jobs do not count toward the budget at all.
- Budget shown on the dashboard in real time
- Per-job contribution displayed transparently
- Paused jobs consume zero budget
- Resets at the start of each calendar month
Everything else worth knowing
Every-minute scheduling
Run jobs as often as once per minute. Available on all plans including free, with no rate-limiting on individual executions.
Timezone support
Each job runs in your account's timezone. Change timezone at any time and next_run_at is recalculated immediately across all active jobs.
Pause and resume
Disable any job without deleting it. The URL, schedule, and all settings are preserved. Re-enable it any time and it picks up where it left off.
Fixed outbound IP
All requests originate from 45.9.188.216. Whitelist this IP on your firewall and every request will pass through cleanly.
Configurable timeout
Set a per-job request timeout so long-running endpoints do not hold up the dispatcher indefinitely. Timeout directly affects your execution budget calculation.
Secure by default
CSRF protection, hashed passwords, and a Content Security Policy are in place across the entire platform. HTTPS endpoints are fully supported.
Ready to put these to work?
Start on the free plan or jump straight to a paid tier. Up and running in 2 minutes.