Skip to content
DEV TOOLBOX · CRON DIALECT
>cronpreview

Build, validate, and preview cron expressions across Unix, AWS EventBridge, GitHub Actions, Vercel, Kubernetes, Quartz, and Spring — with timezone-correct next-run previews.

Dialect

Vercel

Generate vercel.json crons array entries with awareness of Hobby plan once-per-day restrictions and Vercel cron syntax limits.

Last verified: 2026-05-15

Cron lives in vercel.json

Vercel cron jobs are declared in the project's vercel.json:

{
  "crons": [
    { "path": "/api/cron", "schedule": "0 9 * * 1-5" }
  ]
}

Each entry maps a cron schedule to a route on your deployed app. When the cron fires, Vercel sends an authenticated GET request to that path. The handler at /api/cron does the work.

No alphabetic aliases

Vercel's parser does not accept MON, SUN, JAN, DEC, etc. Use numeric values: 1-7 for day-of-week and 1-12 for month. cronpreview's Vercel dialect rejects alphabetic forms at validation time.

Hobby plan: at most one run per day

On the Hobby tier, Vercel limits cron schedules to a maximum of one fire per day, total. 0 9 * * 1-5 (which fires Mon-Fri, five times a week) is rejected. Acceptable Hobby schedules: 0 9 * * 1 (Monday only), 0 9 1 * * (1st of the month), 0 9 * * * (daily, single run).

The Pro plan removes this restriction and supports unlimited cron jobs with arbitrary intra-day frequency.

Authentication

Vercel signs cron invocations with a header containing a project-specific secret. Always verify the CRON_SECRET environment variable in your route handler before doing work, otherwise the endpoint is publicly callable.

Found something inaccurate? Email hello@cronpreview.com.

Try it

loading builder…

Related recipes

Read next