Cron Expression Generator
Explain any cron schedule in plain English, see the next 10 runs in IST, build new ones
date on the server, or check the job's CRON_TZ / timeZone setting.30 9 * * *Runs entirely in your browser. Nothing you type or upload is sent to us or stored.
Results are for general guidance. Please check anything important before relying on it. Terms of use
How to Use
- Paste or type your cron expression in the Cron expression box, for example
*/15 9-18 * * 1-5. Five fields are standard; six fields are read as seconds first (Spring, node-cron, Quartz). - Or pick one of the Common schedules, such as "Weekdays at 9 AM" or "1st of every month".
- Choose the time zone of the server that runs the job. Cloud servers, Docker containers and GitHub Actions usually run in UTC.
- Read the plain-English meaning and the next 10 run times, shown in the server's zone, your own zone and IST. If something is wrong with the expression, a red message says which field and why.
- To write a new schedule, use Build an expression: choose every N minutes, every N hours, daily, weekly or monthly, set the time, then tap Use this and copy the result.
What is a cron expression?
Cron is the job scheduler built into Linux and macOS. A cron expression is a short line of five fields that says when a job should run: database backups at 2 AM, a report every Monday morning, a cache refresh every 15 minutes. The same syntax is used by crontab files, GitHub Actions schedules, Kubernetes CronJobs, Jenkins, Laravel's scheduler and many cloud services.
โ โโโโโโโ hour (0โ23)
โ โ โโโโโ day of month (1โ31)
โ โ โ โโโ month (1โ12 or JANโDEC)
โ โ โ โ โ day of week (0โ6 or SUNโSAT; 7 is also Sunday)
* * * * *
Six-field expressions, used by Spring's @Scheduled, node-cron and Quartz, add a seconds field at the front. This tool reads six fields that way. AWS EventBridge also uses six fields, but its extra field is a year at the end; remove the year to check an AWS schedule here.
Special characters
| Symbol | Meaning | Example |
|---|---|---|
* | Every value | * * * * * runs every minute |
, | A list | 0 9,18 * * * runs at 9:00 and 18:00 |
- | A range | 0 9 * * 1-5 runs Monday to Friday at 9:00 |
/ | A step | */15 * * * * runs at :00, :15, :30 and :45 |
@daily etc. | Shortcuts | @hourly, @daily, @weekly, @monthly, @yearly |
A step restarts at the start of each hour or day. */7 in the minute field runs at :00, :07 โฆ :56 and then :00 again, so the last gap is only 4 minutes. Pick steps that divide evenly into 60 (minutes) or 24 (hours) for regular spacing.
Worked example: a 9 AM IST job on a UTC server
Most cloud servers, containers and GitHub Actions run on UTC. India Standard Time is UTC+5:30 all year (India has no daylight saving), so 9:00 AM IST is 3:30 AM UTC. To run a job at 9:00 AM IST from Monday to Saturday on a UTC server:
Subtract 5 h 30 min โ 03:30 UTC
Cron: 30 3 * * 1-6
Paste 30 3 * * 1-6 above, keep the server zone on UTC, and the IST column shows 09:00 for every run. If the IST time crosses midnight when you subtract 5:30 (for example 2:00 AM IST is 20:30 UTC the previous day), shift the weekdays back by one as well.
Day of month and day of week together
When both day fields are set, standard Linux cron runs the job if either matches. 0 0 13 * 5 therefore runs on every 13th and every Friday, not only on Friday the 13th. If one of the two fields starts with *, only the other one counts. This tool follows that rule, so the next-run list shows exactly what crontab would do.
Tips and caveats
- Day 31 skips months that don't have 31 days, and
0 0 30 2 *never runs. The tool says so when a schedule has no future runs. - In zones with daylight saving (US, Europe, Australia), a time that is skipped when clocks go forward doesn't run that day, and a repeated hour runs once. Some cron versions handle this differently; India and UTC are not affected.
L,Wand#(last day, nearest weekday, "third Friday") are Quartz extensions, not standard cron. Standard crontab can't express "last day of the month" directly; run on days 28โ31 and check the date in your script.- Cron's environment is minimal: use full paths to programs and redirect output to a log file, for example
>> /var/log/backup.log 2>&1.