CalculatorWala
Blog

Cron Expression Generator

Free Cron Expression tool: build a cron schedule visually or paste one to see its human-readable meaning and next run times, right in your browser.

Every Monday at 09:00

Next 0 runs (your local time)

No upcoming runs found within the next 25 years, this pattern may be impossible (e.g. a date that never occurs).

Cron Syntax, Quick Facts

  • A standard cron expression has 5 fields: minute (0-59), hour (0-23), day of month (1-31), month (1-12), and day of week (0-6, where 0 is Sunday).
  • * means "every possible value" for that field; */5 means "every 5 units"; 1-5 means a range; 1,3,5 means a specific list.
  • If both day-of-month and day-of-week are restricted (not *), most cron implementations treat them as an OR, not an AND, the job runs if either condition matches.
  • Some systems accept 3-letter names instead of numbers, like MON for day-of-week or JAN for month. This tool accepts both.

The Real Problem This Solves

Cron syntax is compact by design, which makes it fast to write and nearly impossible to read at a glance. Is 0 9 * * 1-5 "every hour" or "weekdays at 9 AM"? Getting it wrong means a job that silently never runs, or runs far more often than intended.

This tool works both directions: build a schedule with plain fields and presets, or paste an existing expression to see exactly what it means and when it will actually fire next.

How the Next Run Time Is Found

Each field in the expression is parsed into the set of values it allows. To find the next matching moment, the tool starts from right now and steps forward, jumping straight to the next candidate month, day, hour, or minute whenever a field doesn't match, rather than checking every single minute one by one. This keeps it fast even for rare patterns, like a schedule that only fires on 29 February.

Example: the expression 0 9 * * 1 means "at 09:00, every Monday." Instead of checking all 10,080 minutes in a week, the tool recognises the day doesn't match on a Tuesday and jumps straight ahead to the following Monday.

Frequently Asked Questions

What do the 5 fields in a cron expression mean, in order?

Minute, hour, day of month, month, and day of week, always in that order, separated by spaces. Some systems (like Quartz or certain CI platforms) add a 6th "seconds" or "year" field; this tool covers the standard 5-field Unix/Linux cron format used by crontab, GitHub Actions, GitLab CI, and Kubernetes CronJobs.

What timezone are the "next run" times shown in?

Your browser's local timezone. Most production systems run cron in UTC or the server's own local timezone, so double-check what timezone your actual scheduler uses if the exact time matters.

What does */5 mean in the minute field?

"Every 5 units, starting from 0." In the minute field, that means the job fires at :00, :05, :10, :15, and so on through :55.

Why does day-of-month AND day-of-week both being set act like OR?

This is a quirk of the original cron specification, carried forward into almost every modern implementation. If you only want one condition to matter, leave the other field as an asterisk.

Can I use this for GitHub Actions or Kubernetes CronJob schedules?

Yes, both use the same standard 5-field cron syntax. Paste your existing schedule into this tool to double-check what it actually means before deploying it.

Double-checking a token your scheduled job uses?

If the job this schedule triggers depends on an auth token, check whether it's expired with our JWT Decoder.

Open JWT Decoder
Disclaimer: This tool interprets cron fields in your browser's local timezone and covers the standard 5-field Unix cron syntax. Some platforms use extended formats (seconds, years, or non-standard step behaviour); verify against your specific scheduler's documentation for critical jobs.