Cron Dialect Compatibility Matrix

“Cron” is a family of related schedule grammars, not one portable standard. Compare the field layouts and runtime rules before moving an expression between platforms.

PlatformGrammar and fieldsTimezoneCadence and precisionDay rulesCritical difference
GitHub Actions

Verified 2026-08-05

POSIX cron

5 fields

minute · hour · day of month · month · day of week

Seconds: no · Year: no

UTC by default; optional IANA timezone

5 minutes

Best effort; scheduled runs can be delayed

0-6 or SUN-SAT; Sunday is 0

POSIX day-of-month/day-of-week semantics

Runs the latest commit on the default branch and can be delayed under load.

*, lists, ranges, steps; numeric or named months/weekdays

AWS EventBridge Scheduler

Verified 2026-08-05

AWS cron(...)

6 fields

minute · hour · day of month · month · day of week · year

Seconds: no · Year: yes

UTC by default; optional IANA timezone

1 minute

60 seconds unless a flexible window widens delivery

1-7 or SUN-SAT

Constrain one day field and use ? in the other

It resembles Quartz but starts with minutes and requires a year field.

?, L, W, # plus lists, ranges, and steps

Vercel Cron Jobs

Verified 2026-08-05

Restricted 5-field cron

5 fields

minute · hour · day of month · month · day of week

Seconds: no · Year: no

UTC only

Hobby: once/day; other plans have minute-level expressions

Hobby: within the hour; other teams: within the minute

0-6; Sunday is 0; numeric only

Only one of day of month and day of week may be constrained

No automatic failure retry; duplicate and overlapping invocations are possible.

Numeric values; no MON/SUN/JAN/DEC aliases

Spring Framework @Scheduled

Verified 2026-08-05

Spring cron

6 fields

second · minute · hour · day of month · month · day of week

Seconds: yes · Year: no

Scheduler default; optional IANA zone attribute

1 second in the expression grammar

Application scheduler and executor dependent

0-7 or MON-SUN; Sunday is 0 or 7

Spring cron day rules; ? is supported for an unspecified day field

It is not identical to Quartz: there is no year and weekday numbering differs.

?, L, W, # and @yearly/@monthly/@weekly/@daily/@hourly macros

systemd timers

Verified 2026-08-05

OnCalendar calendar event

Calendar syntax, not fixed cron fields

weekday (optional) · date (optional) · time (optional) · timezone (optional)

Seconds: yes · Year: yes

System local zone by default; UTC or IANA zone may be explicit

Seconds are supported; behavior also depends on AccuracySec

AccuracySec defaults to 1 minute

English weekday names, lists, and ranges

Date and weekday components must both match when both are present

OnCalendar is not cron; validate it on the target host with systemd-analyze calendar.

Calendar dates, repetition, timezone suffixes, and readable shorthands

How to translate safely

  1. Identify the target scheduler first; field count alone is not enough.
  2. Rebuild the intended schedule in the target dialect instead of dropping fields.
  3. Set or document the runtime timezone explicitly.
  4. Preview actual executions around month boundaries and DST transitions.
  5. Validate the final configuration in the target platform before deployment.

Use the CronWizard validator for Unix or Quartz expressions and the DST checker for clock-change analysis.