{ sniptools }
Utilities

Cron Explainer

Build and understand cron expressions in plain English

Presets
Expression * * * * *

Every minute

Next execution times
1 Mon, Apr 13, 2026, 13:43
2 Mon, Apr 13, 2026, 13:44
3 Mon, Apr 13, 2026, 13:45
4 Mon, Apr 13, 2026, 13:46
5 Mon, Apr 13, 2026, 13:47
Syntax reference
*Any value ,List separator (1,3,5) -Range (1-5) /Step value (*/5 = every 5)

Month names: JAN-DEC · Day names: SUN-SAT

When both day-of-month and day-of-week are set, either match triggers (OR logic).

What is Cron?

Cron is a time-based job scheduler built into Unix and Linux operating systems since the 1970s. It allows you to automate recurring tasks — running scripts, rotating logs, creating backups, sending reports — by defining schedules using a compact expression syntax. The cron daemon runs continuously in the background, checking every minute whether any scheduled jobs should be executed based on the current time matching their defined patterns.

A cron expression consists of five fields separated by spaces: minute (0-59), hour (0-23), day of month (1-31), month (1-12), and day of week (0-7, where both 0 and 7 represent Sunday). Each field can contain a specific value, a wildcard (*), a range (1-5), a list (1,3,5), or a step value (*/15). This compact syntax can represent everything from "every minute" to complex schedules like "at 2:30 AM on the first Monday of every quarter."

Despite its power, cron syntax is notoriously difficult to read and write correctly. The field ordering is easy to mix up, the interaction between day-of-month and day-of-week is non-obvious, and it is hard to verify mentally whether an expression will fire when you expect. A cron explainer tool translates between the terse syntax and plain English, and previews upcoming execution times so you can validate the schedule before deploying.

How it works

The cron parser breaks an expression string into its five constituent fields and validates each against its allowed range. Each field is then decomposed into the set of discrete values it matches: a wildcard expands to all valid values, ranges expand to sequences, lists combine multiple values, and step values generate periodic sequences. The result is five arrays representing every minute, hour, day-of-month, month, and day-of-week that the expression can fire on.

To generate the plain-English description, the tool maps the parsed fields to natural language fragments using pattern recognition. A field with a single value becomes "at [value]," a range becomes "from [start] through [end]," a step becomes "every [n] [units]," and combinations are joined with conjunctions. Special patterns like "0 0 * * *" are recognized as common idioms and described as "at midnight every day" rather than the more verbose literal interpretation.

The "next run" calculator starts from the current time and iterates forward, checking each candidate minute against the full set of matching values across all five fields. When all five fields agree — the minute, hour, day of month, month, and day of week all contain the candidate time — that time is recorded as a future execution. The calculator typically generates the next 5 to 10 scheduled run times so you can visually confirm the pattern matches your intent.

How to use this tool

  1. To understand an existing cron expression, paste it directly into the input field. The tool instantly displays a plain-English explanation of the schedule and lists the next several upcoming run times.
  2. To build a new expression, use the visual builder controls to select values for each field. You can set specific values, ranges, or step intervals for minute, hour, day of month, month, and day of week.
  3. Check the "next runs" preview to verify the schedule fires when you expect. Pay attention to the timezone note — times are shown in your local browser timezone.
  4. Use the preset buttons for common schedules like "every hour," "daily at midnight," "weekdays at 9am," or "monthly on the 1st" as starting points you can customize.
  5. Copy the final expression for use in your crontab, CI/CD pipeline configuration, cloud scheduler, or application code.

Examples

Database backup every night at 2:30 AM

The expression 30 2 * * * runs at minute 30 of hour 2, every day of every month regardless of the day of week. This is a standard choice for nightly backups since 2:30 AM is typically a low-traffic period and avoids the top-of-hour congestion where many other cron jobs may be scheduled.

CI pipeline cache cleanup every 6 hours on weekdays

The expression 0 */6 * * 1-5 runs at minute 0, every 6th hour (0, 6, 12, 18), but only Monday through Friday. This is useful for cleaning up CI caches or temporary build artifacts during working days without running unnecessary jobs over the weekend.

Monthly billing report on the 1st at 8 AM

The expression 0 8 1 * * fires at 8:00 AM on the first day of every month. This is commonly used for generating monthly reports, invoices, or subscription renewal checks.

Health check every 5 minutes

The expression */5 * * * * runs at every 5th minute of every hour — minute 0, 5, 10, 15, and so on. This is the standard interval for uptime monitoring, endpoint health checks, or lightweight polling tasks where near-real-time awareness is needed without overwhelming the target system.

About this tool

Generate cron job schedules visually or paste an existing expression to get a plain-English explanation. See upcoming run times, validate syntax, and build complex schedules with ease.

Common use cases

  • Building cron schedules for CI/CD pipelines, database backups, or log rotation
  • Translating existing crontab entries into human-readable descriptions for documentation
  • Previewing upcoming run times before deploying a scheduled task to production
  • Learning cron syntax with instant visual feedback instead of reading man pages

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 in Unix-like systems. For example, "0 9 * * 1-5" means "at 9:00 AM every weekday."
Does this tool support non-standard cron formats?
This tool uses the standard five-field cron format used by most Unix systems, CI/CD platforms (GitHub Actions, GitLab CI), and cloud schedulers (AWS EventBridge, Google Cloud Scheduler).
How accurate are the "next run" predictions?
The next run times are calculated based on your browser's local timezone and current time. They accurately reflect when the cron expression would fire, but actual execution depends on your server's timezone configuration.
What do the special characters in cron expressions mean?
An asterisk (*) means "every" value for that field. A comma (,) separates multiple values (1,15 means the 1st and 15th). A hyphen (-) defines ranges (1-5 means 1 through 5). A slash (/) defines step values (*/5 means every 5 units). These can be combined, so */10 in the minute field means every 10 minutes, and 1-5 in the day-of-week field means Monday through Friday.
Can I use cron expressions with GitHub Actions or cloud schedulers?
Yes. GitHub Actions, GitLab CI, AWS EventBridge, Google Cloud Scheduler, and Azure Functions all use the standard five-field cron format. Some platforms add a sixth field for seconds or year, but the five-field format generated by this tool is universally compatible.
How do I set a cron job to run at a specific timezone?
Standard cron expressions do not include timezone information — the timezone is determined by the system running the job. Most cloud platforms (AWS, GCP) let you specify a timezone alongside the cron expression. For system crontab, set the TZ variable before the schedule line or configure the system timezone with timedatectl.