Daily
0 9,17 * * *Run at 09:00 and 17:00 every day.
This preview is live: the table below shows the actual next run times for 0 9,17 * * * in your time zone, recomputed in your browser. Change the expression, dialect, or zone to experiment, then copy the result.
0 9,17 * * * means0 9,17 * * * uses a list in the hour field — 9,17 — to fire at both 9am and 5pm, bracketing the working day with a morning and an end-of-day run. Lists let you express uneven gaps that the */n step form cannot.
This start-and-end-of-day rhythm is extremely common: a morning report when people arrive and a wrap-up when they leave. The eight-hour and sixteen-hour gaps are deliberately asymmetric, which is exactly why a comma list, not a step, is the right tool.
Unix cron has five fields. Here is what each one is doing in this expression:
| Field | Value | Meaning |
|---|---|---|
| Minute | 0 | minute = 0 |
| Hour | 9,17 | the specific values 9,17 of hour |
| Day of month | * | every day-of-month |
| Month | * | every month |
| Day of week | * | every day-of-week |
The same cadence written for the seven cron dialects you are most likely to meet. Copy the line for the system you target — the field count and day-of-week numbering differ between them.
| Scheduler | Expression | Copy |
|---|---|---|
| Unix / crontab | 0 9,17 * * * | |
| GitHub Actions | 0 9,17 * * * | |
| Kubernetes CronJob | 0 9,17 * * * | |
| Vercel Cron | 0 9,17 * * * | |
| Quartz | 0 0 9,17 * * * * | |
| Spring | 0 0 9,17 * * * | |
| AWS EventBridge | 0 9,17 * * * * |
0 9,17 * * *You cannot write this with */8 — that would fire at 0, 8, 16, not 9 and 17. Asymmetric times always need an explicit list.
0 9,17 * * * means: Run at 09:00 and 17:00 every day. 0 9,17 * * * uses a list in the hour field — 9,17 — to fire at both 9am and 5pm, bracketing the working day with a morning and an end-of-day run. Lists let you express uneven gaps that the */n step form cannot.
Use 0 9,17 * * * in the schedule's cron field. You cannot write this with */8 — that would fire at 0, 8, 16, not 9 and 17. Asymmetric times always need an explicit list.
EventBridge uses six fields with a required year and a ? placeholder in one day field: 0 9,17 * * * *. Wrap it as cron(0 9,17 * * * *) in the console or CloudFormation.
Quartz is seconds-first with a trailing year, so the equivalent is 0 0 9,17 * * * *. Remember Quartz numbers Sunday as 1, the opposite of Unix.
Browse the full set of cron pattern pages, or jump to the interactive tools: the cron expression builder for designing a schedule from scratch, the cron cheat sheet for a side-by-side reference, the cron timezone translator for moving a schedule between zones and dialects, and the GitHub Actions cron picker for DST-stable CI schedules.