Skip to main content

Cron Expression Builder

Build cron expressions visually or decode existing ones to plain English

Expression

* * * * *

Every minute

Next 5 Runs

  1. 4/26/2026, 11:48:00 PM
  2. 4/26/2026, 11:49:00 PM
  3. 4/26/2026, 11:50:00 PM
  4. 4/26/2026, 11:51:00 PM
  5. 4/26/2026, 11:52:00 PM
Processed locally
Zero server requests
Works offline
Nothing leaves your device

Why use Cron Expression Generator

  • Plain-English descriptions translate cryptic cron syntax into a sentence anyone on the team can understand.
  • Next-10-runs preview lets you verify the schedule before deploying, so you don't debug it in production.
  • Supports 5-field cron (crontab, GitHub Actions) and 6-field with seconds (Quartz, Spring) -- the two formats that cover most platforms.
  • Visual dropdowns for minute, hour, day, month, and weekday mean you don't have to memorize field positions.
  • Presets for common schedules (daily, weekly, every N minutes) get you started in one click.

How it works

The generator parses a cron expression by splitting it into five (or six) whitespace-delimited fields. Each field is expanded into a set of matching values: * becomes every value in the field's range, step values like */5 generate every Nth value, ranges like 1-5 expand to a contiguous set, and comma-separated lists are split into individual values. To compute the next N run times, the tool starts from the current timestamp and iterates forward in one-minute increments, checking whether the minute, hour, day-of-month, month, and day-of-week all fall within their respective expanded sets. Each match is recorded until N matches are found. The plain-English description is assembled by mapping each field's pattern to a phrase template -for example, */5 in the minute field produces 'every 5 minutes' and 1-5 in the day-of-week field produces 'Monday through Friday'.

About this tool

You're staring at a cron expression someone wrote three years ago and you're not 100% sure it does what the comment claims. Paste it here, read the plain-English description, and check the next 10 execution times. Now you know. Going the other direction -- building a new schedule -- the visual interface lets you pick minute, hour, day, month, and weekday values from dropdowns instead of memorizing syntax. The tool validates in real time and shows exactly when the expression will fire next. It supports both standard 5-field cron (crontab, GitHub Actions, most cloud platforms) and 6-field cron with a leading seconds field (Quartz Scheduler, Spring @Scheduled, AWS EventBridge). Getting cron syntax wrong can mean a job running every minute instead of every hour. This tool eliminates that class of mistake before it hits production. Copy the validated expression into your crontab, workflow YAML, or cloud scheduler config with confidence.

How to use Cron Expression Generator

  1. Pick a preset or build from scratch. Click a preset for common schedules (daily, weekly, every 5 minutes), or set each field manually with the dropdowns.
  2. Read the plain-English description. The tool translates your expression into something like 'every weekday at 8:00 AM' so you can verify without counting asterisks.
  3. Verify the next run times. Check the next 10 execution timestamps to confirm the schedule fires when you expect.

Use cases

  • You inherited a crontab with 30 expressions and no comments. Paste each one, read the plain-English description, map it to the corresponding job.
  • You're setting up a nightly backup at 2 AM UTC. Build `0 2 * * *`, confirm the next-run times, paste it into your crontab.
  • A GitHub Actions workflow should run integration tests weekday mornings. Generate `0 8 * * 1-5`, verify the day-of-week range before committing.
  • You want to clear a cache every 15 minutes but you've confused */15 with 0,15 before. Generate the expression, check the next 10 runs, confirm.
  • An ETL pipeline needs to avoid peak traffic between 9-11 AM. Build the expression with a specific hour range and verify it skips that window.
  • After a daylight saving time change, you need to verify that your on-call rotation cron still fires at the right local time. Paste it, check the next runs in your timezone.

Frequently Asked Questions

A cron expression is a string of five (or six) fields separated by spaces that defines a recurring schedule. The five standard fields are: 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). Cron is used by Unix/Linux systems, CI/CD platforms, and cloud schedulers to automate tasks.

The asterisk (*) is a wildcard meaning 'every possible value' for that field. For example, * in the minute field means 'every minute', and * in the month field means 'every month'. You can combine it with a step value like */5 in the minute field to mean 'every 5 minutes'.

Use the cron expression */5 * * * *. The */5 in the minute field means 'every 5th minute', and the asterisks in the remaining fields mean 'every hour, every day, every month, every day of the week'. This runs at :00, :05, :10, :15, and so on.

Standard Unix cron uses 5 fields: minute, hour, day of month, month, and day of week. Some systems like Quartz Scheduler and Spring add a sixth field at the beginning for seconds (0–59). This tool supports both formats -select the 6-field option if your platform requires second-level precision.

Set the day-of-week field to 1-5, where 1 is Monday and 5 is Friday. For example, 0 9 * * 1-5 runs at 9:00 AM every weekday. You can also use abbreviated names like MON-FRI on some systems, though numeric values are more universally supported.

Traditional cron uses the server's local time zone. Cloud platforms often default to UTC but allow you to specify a time zone. Always check your platform's documentation. This tool shows next run times in your browser's local time zone and also displays the equivalent UTC time.

Standard cron cannot directly express 90-minute intervals because it works on fixed field boundaries. You would need to list specific minute/hour combinations or use two cron entries -one for even hours at :00 and one for odd hours at :30. Alternatively, some schedulers support interval-based scheduling alongside cron.

Standard cron does not have a 'last day of month' keyword. A common workaround is to set day-of-month to 28-31 and add a shell condition that checks if tomorrow is the 1st. Some extended cron implementations (like Quartz) support an 'L' keyword in the day-of-month field for this purpose.