Cron Syntax by Platform

Every major platform that uses cron expressions, compared side-by-side. Click any platform for a dedicated builder and guide.

Platform Comparison

Platform Format Fields Timezone Key differences Builder
Unix / Linux min hr dom mon dow 5 System (configurable) @-aliases + @reboot; timezone via system config or TZ= prefix Build →
Kubernetes CronJob min hr dom mon dow 5 Controller TZ (spec.timeZone in K8s 1.27+) @-aliases (no @reboot); concurrencyPolicy; spec.timeZone in K8s 1.27+ Build →
GitHub Actions min hr dom mon dow 5 UTC only 5-min minimum interval; no @-aliases; scheduled workflows disabled after 60 days inactivity (public repos only) Build →
AWS EventBridge min hr dom mon dow yr 6 UTC only Year field required; dom or dow must be ?; dow is 1=Sun (not 0=Sun) Build →
Azure Functions (NCRONTAB) sec min hr dom mon dow 6 UTC (WEBSITE_TIME_ZONE override) Seconds field first — enables sub-minute scheduling; no ? wildcard Build →
GitLab CI min hr dom mon dow 5 Configurable per schedule (in UI) Schedules created in GitLab UI only — not in .gitlab-ci.yml; timezone per schedule Build →
Google Cloud Scheduler min hr dom mon dow 5 Set via --time-zone flag Timezone is a separate --time-zone parameter — not part of the expression Build →
CircleCI min hr dom mon dow 5 UTC only New schedules: top-level block (old workflows.triggers.schedule deprecated) Build →
Jenkins min hr dom mon dow + H 5 Server local time (TZ= prefix to override) H hash modifier for deterministic load spreading; @-aliases supported Build →

* Heroku Scheduler is not cron-based — it only supports 3 fixed intervals (10 min / hourly / daily) with no expression syntax.

Quick Decision Guide

Unix / Linux

Standard 5-field. Use CRON_TZ= or TZ= prefix for per-entry timezone control.

Kubernetes

5-field. Set spec.timeZone on K8s 1.27+. Use concurrencyPolicy: Forbid to prevent job pile-ups.

GitHub Actions

5-field, UTC only. Minimum 5-min interval. Schedule at off-peak times (e.g. 47 3 * * *) to reduce queue delays.

AWS EventBridge

6-field with year. Exactly one of dom/dow must be ?. Day-of-week is 1=Sun (not 0=Sun). Use rate() for simple intervals.

Azure Functions

6-field, seconds first — enables sub-minute triggers. Use * instead of ?. Set WEBSITE_TIME_ZONE app setting for timezone.

GitLab CI

Standard 5-field. Schedules are created in the GitLab UI — not in YAML. Timezone is configurable per schedule.

Google Cloud Scheduler

Standard 5-field. Set timezone via --time-zone flag in gcloud CLI — it is not part of the cron expression.

CircleCI

Standard 5-field, UTC only. Use the new schedules: top-level block — old workflows.triggers.schedule is deprecated.

Jenkins

Standard 5-field + H hash modifier for load spreading. Defaults to server local time — add TZ= prefix to override.