# Cron Expression Generator > Free in-browser tool that builds a five-field Unix cron expression from presets or field inputs, reads it back in plain English, and lists the next 10 run times in a chosen timezone. It also translates the schedule into Quartz, AWS EventBridge, crontab line, and GitHub Actions forms, and warns about the day-field OR trap and dates that never arrive. Independent tool, not affiliated with any scheduler vendor. Updated 2026-11-02. Full page: https://lab.awaara.cn/cron-expression-generator/ ## What it does - Build mode: pick a preset (every minute, every 5 or 15 minutes, hourly, daily, weekdays at 9:00, weekly, monthly, yearly, every 30 minutes 9 to 5 on weekdays) or type the five fields directly. Month and weekday names work (JAN to DEC, SUN to SAT); 0 and 7 both mean Sunday in the day of week field. - Explain mode: paste any five-field expression or a nickname (@hourly, @daily, @midnight, @weekly, @monthly, @yearly, @annually) and get a plain English description, a field-by-field breakdown, and the next 10 run times. - Timezones: next runs are computed in the browser for the timezone you pick (browser timezone by default, plus UTC and nine common zones). A cron expression itself has no timezone; the server that runs the job decides. - Warnings: both day fields restricted (OR rule), a star in the minute field, February 30 and 31, February 29 in leap years only, a 31st in a month that never has one, and no runs in the next four years. Six-field Quartz input and Quartz-only symbols (L, W, #, ?) are rejected with an explanation instead of guessed. - Dialect translations: Quartz and Spring form (seconds field 0, weekday names), AWS EventBridge cron() form (six fields, year last, question mark in one day field). When both day fields are restricted, the translation keeps the day of month and sets the day of week to a question mark, which changes the schedule; the page says so. - Copyable outputs: full crontab line (command, optional output redirection to a log file, optional flock lock), and a GitHub Actions schedule block. GitHub Actions schedules always run in UTC with a minimum interval of 5 minutes; the page warns when a schedule fires more often than that. - Everything runs locally in the browser. Nothing is sent to a server. ## How cron expressions work - Five fields, left to right: minute (0-59), hour (0-23), day of month (1-31), month (1-12), day of week (0-7). Each field accepts an asterisk (every value), a list (1,15), a range (9-17), and a step (*/15, or 0-30/5). - Nicknames: @hourly is 0 * * * *, @daily and @midnight are 0 0 * * *, @weekly is 0 0 * * 0, @monthly is 0 0 1 * *, @yearly and @annually are 0 0 1 1 *. @reboot runs once when cron starts, not on a repeating schedule. - Day-field rule: when both the day of month and the day of week are restricted, standard cron runs the job when either one matches. 0 0 13 * 5 runs on the 13th of every month and on every Friday, not only Friday the 13th. - Common schedules: * * * * * every minute; */5 * * * * every 5 minutes; 0 * * * * every hour; 0 0 * * * daily at midnight; 0 9 * * 1-5 weekdays at 09:00; 0 0 * * 0 every Sunday at midnight; 0 0 1 * * on the 1st of every month; 0 0 1 1 * on January 1. - Dialects differ: Unix cron has five fields; Quartz adds a seconds field first and an optional year last, numbers the day of week 1-7 from Sunday, and uses ?, L, W, and #; AWS EventBridge uses six fields inside cron(), requires a year, and requires a question mark in one day field. - Timezone facts: GitHub Actions schedules use UTC; a 02:30 job can run twice, once, or not at all on a daylight saving change day, depending on the server timezone. ## Sources - Linux man-pages, crontab(5): https://www.man7.org/linux/man-pages/man5/crontab.5.html?ref=blog.cloudron.io - Quartz.NET, Cron Expression Reference: https://www.quartz-scheduler.net/documentation/quartz-4.x/cron-expressions.html - Amazon EventBridge, schedule patterns for scheduled rules: https://docs.amazonaws.cn/en_us/eventbridge/latest/userguide/eb-scheduled-rule-pattern.html