Skip to content

Crontab Explainer

Paste any cron expression and get a plain-English explanation, a field-by-field breakdown, and the next 10 scheduled run times. Supports the standard 5-field syntax used by Unix/Linux cron, AWS CloudWatch Events, GitHub Actions, Kubernetes CronJobs, and most scheduling systems.

Why Cron Is Hard to Read

Cron compresses a calendar's worth of meaning into five fields and a handful of operators. 0 9 * * 1-5 is every weekday at 9 AM. */15 * * * * is every 15 minutes. 0 0 1 */2 * is midnight on the 1st of every other month. The problem isn't that the rules are complicated — it's that they're so dense that even people who write cron expressions weekly will pause to second-guess one. Reading it back in English is faster than mentally re-parsing the punctuation.

The other reliable foot-gun is day-of-month and day-of-week interacting. In standard cron, if both fields are restricted (neither is *), the schedule fires when either condition matches — not both. 0 0 13 * 5 runs at midnight on the 13th and also every Friday, not just on Friday the 13th. The explainer surfaces this so you don't ship a calendar bug to production.

How It Works

The parser splits the expression on whitespace, validates each field against its allowed range, expands operators (* every, / step, - range, , list), and generates a human-language description. The next-run calculator walks forward from now in 1-minute increments, checking each candidate timestamp against every field, and stops at 10 matches. All timezone math uses the browser's local zone — if your server runs UTC and you're in PT, mentally offset by the difference, or temporarily change your system clock to verify.

Common Use Cases

Debugging a scheduled job that's firing at the wrong time. Reviewing a teammate's Terraform or Helm config before merging. Translating a cron one-liner from a curl command or shell script into something a non-engineer stakeholder can read. Sanity-checking a backup window before flipping the rollout. Or just refreshing your memory on whether * * * * * means every minute (it does).

How We Compare

Crontab.guru is the best-known explainer and a great tool — it's been the de facto cron Rosetta Stone for years. This tool covers the same standard 5-field grammar and adds inline links to the rest of the UDT toolkit so a cron line in a script flows into the related developer utilities. Both run in the browser; neither uploads. If your cron flavor uses six fields (seconds first) like Quartz or AWS EventBridge, those use extended syntaxes this tool doesn't handle — drop the seconds and the explainer covers the remaining five fields correctly.

Frequently Asked Questions

What is a cron expression?+
A cron expression is a string of five fields (minute, hour, day-of-month, month, day-of-week) that defines a recurring schedule. It's used by Unix/Linux cron daemons, CI/CD pipelines, cloud schedulers, and many automation tools.
What does * mean in cron?+
The asterisk (*) means 'every' — it matches all possible values for that field. For example, * in the hour field means 'every hour'.
What is the difference between / and - in cron?+
The slash (/) means 'every N' — for example, */5 in minutes means every 5 minutes. The dash (-) defines a range — 1-5 in day-of-week means Monday through Friday.
How do I run a cron job at midnight?+
Use '0 0 * * *' — minute 0, hour 0, every day of month, every month, every day of week. This runs at 00:00 (midnight) every day.
Does this tool support seconds or years?+
This tool supports standard 5-field cron expressions (minute, hour, day-of-month, month, day-of-week). Some systems like Quartz add seconds and year fields, which are not covered here.
What timezone do cron jobs use?+
By default, cron uses the system timezone of the server. Many cloud services let you specify a timezone. The "Next 10 Runs" in this tool uses your browser's local timezone.
What's the difference between day-of-month and day-of-week?+
Day-of-month (field 3) specifies a calendar date (1-31). Day-of-week (field 5) specifies a weekday (0=Sunday through 6=Saturday). When both are set to non-*, most cron implementations run when either condition is met (OR logic).
Can I generate a crontab line from plain English?+
This tool focuses on explaining existing cron expressions in plain English rather than generating them from natural language. For the reverse direction, use the companion Cron Builder tool, which lets you pick frequency, days, hours, and minutes from menus and emits a valid crontab line you can paste into your system.

📖 Learn More

Related Article Complete Guide to Cron Expressions & Scheduling →

Built by Derek Giordano · Part of Ultimate Design Tools

Privacy Policy · Terms of Service