Cron Expression Explainer

Translate cron expressions into plain English, see the next 5 scheduled run times, and explore common examples. All client-side.

Common Cron Examples
ExpressionDescription
Quick Reference
FieldAllowed ValuesAllowed Special Chars
Minute0–59* , - /
Hour0–23* , - /
Day of Month1–31* , - / ?
Month1–12* , - /
Day of Week0–6 (Sun=0)* , - /

Frequently Asked Questions

A cron expression is a string of five fields separated by spaces that specifies when a scheduled task should run: minute hour day-of-month month day-of-week. The asterisk * means "every". For example, 0 0 * * * means "at midnight every day" and */15 * * * * means "every 15 minutes".

The slash defines a step value. */5 in the minute field means "every 5 minutes". 0/15 means "starting at 0, every 15 units". Steps are especially useful for scheduling tasks at regular intervals without listing every value.

How the Cron Explainer Works

Cron expressions describe a schedule in five space-separated fields. This tool parses, explains, and simulates them entirely in the browser.

Parse Each Field

Each of the 5 fields (minute, hour, day-of-month, month, day-of-week) is parsed with full support for * (all), - (range), / (step), and , (list) operators to expand into a set of matching values.

Build Human Sentence

The expanded field values are assembled into a plain English sentence. Single values become specific names (e.g., "Monday", "January"). Multiple values use lists or ranges for readability.

Simulate Next 5 Runs

The tool steps through time minute-by-minute from now, checking all 5 fields simultaneously, until it finds 5 matching moments. Results are displayed in UTC to match how cron daemons typically run.

Common Use Cases

Scheduled Backups

Verify that your backup cron runs at the right time — typically off-peak hours in the server's timezone. Use 0 2 * * * for daily at 2 AM and confirm it doesn't conflict with other scheduled tasks.

Automated Report Generation

Schedule weekly or monthly reports with expressions like 0 8 * * 1 (every Monday at 8 AM) or 0 9 1 * * (first of every month at 9 AM). See the plain-English description before deploying.

Database Cleanup Jobs

Purge expired sessions, soft-deleted records, or old log entries with a nightly job. Test complex expressions like 30 3 * * 0 (Sunday at 3:30 AM) to ensure cleanup runs at the intended low-traffic window.

Monitoring Heartbeats

Health-check pings to uptime monitors run every 1–5 minutes (*/5 * * * *). Verify the interval is correct and see the next 5 check times to ensure no gaps from a misconfigured expression.

Cache Warmup & CDN Invalidation

Pre-warm caches before business hours to ensure fast first-page loads. Schedule 0 7 * * 1-5 (weekdays at 7 AM) and confirm the warmup completes before peak traffic using the next-run simulation.

Digest & Newsletter Emails

Weekly newsletters, daily digests, and subscription summaries need precise scheduling. Use the explainer to confirm expressions like 0 10 * * 2 (Tuesday at 10 AM) send at the right day and time globally.