Every feature, explained

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.

Scheduling

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

0 9 * * 1-5

Minute

0

Hour

9

Day

Every

Month

Every

Weekday

Mon-Fri
Every weekday at 09:00

Upcoming executions

Mon 28 Apr 09:00 in 2 days
Tue 29 Apr 09:00 in 3 days
Wed 30 Apr 09:00 in 4 days
Thu 01 May 09:00 in 5 days
Fri 02 May 09:00 in 6 days
Preview

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
History

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
Run history · send-invoices
200 OK 142 ms
{"status":"ok","invoices_sent":14}
500 Error 3,204 ms
{"error":"SMTP connection refused"}
200 OK 138 ms
{"status":"ok","invoices_sent":9}

Execution time · last 20 runs

20 runs ago Latest
Avg: 140 ms Peak: 3,204 ms
Analytics

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
Organisation

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
Production
8 jobs
Staging
5 jobs
Client A
3 jobs
Client B
2 jobs
billing nightly critical sync email
support@cronengine.com

Job failed: send-invoices

Your job send-invoices returned HTTP 500 at 09:00 on Monday 28 Apr.

{"error":"SMTP connection refused"}

Duration: 3,204 ms · Job: send-invoices · Map: Production

View run in dashboard ›
Notifications

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
Agenda

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
Agenda · upcoming runs
Today
09:00 send-invoices
Production
12:00 sync-products
Production
23:59 cleanup-sessions
Staging
Tomorrow
09:00 send-invoices
Production
28 Apr
01:00 aggregate-stats
Production

Execution budget · April

Used: 12,400 s Limit: 50,000 s

24.8% used · 37,600 s remaining

sync-products 30s timeout 2,190 s/mo
send-invoices 30s timeout 30 s/mo
cleanup-sessions 60s timeout 1,830 s/mo
Execution budget

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.