Vercel Schedules
Cron jobs you can create from code at runtime, one-off or recurring, with a timezone and a payload.
Learned November 6, 2026 · Introducing Vercel Schedules
Vercel Cron Jobs have always been static: you list them in vercel.json, they sync when you deploy, and they run in UTC. Fine for "clean up at 2am". Useless for "remind me Friday at 9".
Vercel Schedules (public beta, November 2026) keeps that static option and adds a dynamic one. Your code can create, change or cancel a schedule at runtime, no redeploy:
Three things to notice:
- One-off or recurring.
expressionis eithersinglewith a local time, or a cron expression. - Delivery goes to a Queue topic. A dynamic schedule doesn't call an HTTP path. It publishes to a Vercel Queue topic with your
payload, and a handler you write consumes it. Static schedules can still target a function or a path directly. - Timezones are real.
timezonemeans "9am Toronto" stays 9am through daylight saving, which a UTC cron never managed.
Why I care: my life agent, Cael, runs two static crons today. With Schedules it can set its own reminders while we talk, which is the difference between a scheduled script and an agent that plans ahead.
Quiz
Did you get it?
3 questions, instant feedback. Get them all and post your score.