Skip to content

Cron Expression Generator

Pick a preset or set each field, then copy the cron expression, plain-English schedule, and next run times.

Schedule
Presets

Every Nth minute starting at 0

Every Nth hour starting at 0

Every Nth day of the month

Every Nth month

Every Nth day of week

Generated schedule

Every 5 minutes

The command completes the crontab line. Copy line copies the expression and the command together.

Next 10 runs

    Build a five-field cron expression by picking values for minute, hour, day of month, month, and day of week, then copy the schedule into a crontab, GitHub Actions workflow, or Kubernetes CronJob. The generator writes the expression as you adjust each field, explains it in plain English, and shows the next 10 run times in your timezone.

    What the five fields accept

    Each field maps to one cron position. Minute accepts 0-59, hour accepts 0-23, day of month accepts 1-31, month accepts 1-12, and day of week accepts 0-6 with Sunday as 0. An asterisk means every value in that field, so * * * * * runs every minute, 1,440 times per day.

    Set minute to a step of 15 and the expression */15 * * * * fires at 0, 15, 30, and 45 minutes past every hour, 96 times per day. The generator rejects values outside the field range before it renders a schedule.

    Field modes and what they generate

    Every field has five modes. Every writes an asterisk. Every Nth writes a step such as */5, starting at 0 for minute, hour, and day of week. Specific writes one value like 9. List writes comma-separated values like 5,35, and the generator blocks duplicate entries. Range writes a hyphenated pair like 9-17, with the start required to be smaller than the end.

    Combine modes across fields to build real schedules. Minute 0, hour 9, day of week range 1-5 produces 0 9 * * 1-5, which reads as “At 09:00, Monday through Friday”. Minute 0, hour 0, day of month 1 produces 0 0 1 * *, the first day of every month at midnight.

    Start from a preset

    The ten preset buttons fill all five fields in one click. Every 5 min sets the minute step to 5. Every 6 hours sets minute 0 and an hour step of 6, producing 0 */6 * * *. Weekdays at 9 AM sets minute 0, hour 9, and a day of week range of 1-5. Monthly (1st) sets minute 0, hour 0, and day of month 1. After a preset applies, individual fields stay editable, so a preset is a starting point rather than a lock.

    Reading the plain-English schedule

    The description under the expression rewrites the fields as prose. 0 9 * * 1-5 becomes “At 09:00, Monday through Friday”. */5 * * * * becomes “Every 5 minutes”. 0 0 1 * * becomes “At 00:00, on day 1 of the month”. When both day of month and day of week are restricted, the description adds a note because standard cron runs the job when either field matches.

    Next 10 run times and timezones

    The run list shows the next 10 executions computed in your browser from the current minute, so a schedule that fires at 09:00 lists the next ten weekdays at that hour. The timezone selector defaults to the browser’s local zone and offers UTC plus nine major regions. A job defined as 0 9 * * 1-5 in UTC shows 09:00 UTC, while the same expression in America/New_York shows 09:00 Eastern, which is 13:00 UTC during daylight saving time. Schedules that never fire, like February 30, report the number of runs found within a 10-year window instead of inventing dates.

    The day of month and day of week trap

    In POSIX cron, a day of month value and a day of week value together behave as an OR, not an AND. The expression 0 0 13 * 5 runs on the 13th of every month and on every Friday, not only on Fridays that fall on the 13th. If a job must run only when both match, restrict one field to a specific month or use a scheduler that supports the extra condition. The generator keeps both fields editable so you can inspect the effect on the run list directly.

    Using the expression

    The optional Command field holds the program to run, and Copy line copies the expression and the command together, which is the format crontab expects. A line like 0 9 * * 1-5 /usr/bin/php /home/user/cron.php pasted into crontab -e runs the script on weekdays at 9 AM. Copy expression copies the five fields alone, ready for GitHub Actions cron: keys and Kubernetes CronJob schedule fields, which both use the same five-field format.

    Related tools

    More utilities you may find useful.

    View all tools