Skip to content
cronhelp.me
Guide · Foot-guns

Non-portable shortcut

Short answer
@reboot and the other @shortcuts are convenient but not universal. @reboot in particular is unsupported by Quartz, AWS EventBridge and many hosted schedulers.
Wrong@reboot — no fixed time, not portable
@reboot
Rightan explicit schedule that works everywhere
0 0 * * *

The @ shortcuts — @yearly, @annually, @monthly, @weekly, @daily, @midnight, @hourly and @reboot — are a readability convenience that classic Unix cron added on top of the five-field syntax. They are genuinely nice to read, but they are not part of the portable core, and support for them varies from one scheduler to the next.

@reboot is the sharpest case, and it earns a stronger note than the others. It does not describe a clock time at all — it means "once, when cron starts up", typically at boot. That concept simply does not exist in many schedulers: Quartz, AWS EventBridge, Kubernetes CronJobs and most hosted CI cron fields have no equivalent, so an @reboot entry is meaningless or rejected there. It also has no "next run" you can predict, which is why this tool shows a startup note instead of an upcoming-runs table for it.

The time-based shortcuts are safer but still not universal. @daily expands to 0 0 * * * and @weekly to 0 0 * * 0 on systems that support them, but GitHub Actions, for instance, accepts only the five-field form and will not take an @ shortcut at all. If you are writing a crontab that stays on one Linux host, the shortcuts are fine. If the expression might travel — into a CI config, a container scheduler, or a cloud rule — spell it out.

The fix is to use the explicit five-field equivalent: 0 0 * * * for daily, 0 * * * * for hourly, 0 0 1 * * for monthly. For @reboot specifically, there is no cron equivalent — a start-up task belongs in your init system (a systemd unit, a container entrypoint, or a startup script), not in a time-based scheduler.

Watch the linter flag it live — the finding below appears the moment the expression is entered:

Cron expression5-field
Runs once at system startup — not on a clock schedule, so next-run prediction does not apply.
Lint
Infononportable-shortcut
'@reboot' works only where the local cron service supports it: it runs once when that service starts, and Quartz, AWS EventBridge, GitHub Actions and many others will reject the line. There is no five-field way to write it, so if this needs to run elsewhere, trigger the job from that system's own startup mechanism.
Learn more →
All lint rulesSeverity: Info