Vercel Hobby Cron Jobs Run Once a Day, and Not When You Asked

Every cron tutorial assumes a schedule you can trust. On the free plan you get a day, an hour of drift, and a deployment that fails if you ask for more.

Share
Vercel Hobby Cron Jobs Run Once a Day, and Not When You Asked

Vercel's Hobby plan permits 100 cron jobs per project, but each one may run only once per day and the invocation is not guaranteed to be timely. A job set for 1am can fire anywhere between 1:00 and 1:59. Any expression that would run more often than daily, such as hourly or every thirty minutes, fails at deployment with an error saying the plan is limited to daily cron jobs.1

That error is the important part. It arrives during the build, so a free project does not quietly under-run a schedule; it refuses to ship one it cannot honour.

What each plan allows

HobbyPro and Enterprise
Cron jobs per project100100
Minimum intervalOnce per dayOnce per minute
Scheduling precisionPer hour, plus or minus 59 minutesPer minute
Function usageCounts against Hobby function limitsCounts against plan limits

Prices measured on 27 October 2026. Vendor plan terms, allowances and prices change without notice, so treat every figure on this page as a dated snapshot rather than a permanent fact. Where a number here differs from the vendor's own pricing page, the vendor's page is correct and the figure above is simply older than it.

The job count is not the constraint anyone hits. A hundred daily jobs is more than most free projects need, and Pro does not raise it, so the ceiling that actually separates the tiers is the interval.

Why the hour of drift is worse than the daily cap

A daily job that runs at an unspecified minute inside an hour breaks assumptions that are easy to make without noticing. A job that depends on ordering against another service's reset will sometimes run before it and sometimes after. One that reports a daily total can read a partially built dataset, and a morning digest will occasionally arrive late enough to be read as an afternoon one.

Vercel documents the behaviour rather than hiding it, which is the right call. The practical response is to design jobs that tolerate a window instead of a moment: read data that is at least an hour old, make the job idempotent, and never depend on two Hobby jobs running in a particular order on the same day.

For anything that genuinely needs minute precision the answer is Pro, and the upgrade reason should be stated plainly rather than discovered at deploy time. That is a different kind of free-tier wall from the ones covered elsewhere this week: the AI Gateway's $5 monthly credit runs out and fails, while a Hobby cron job never runs out and never runs on time.

The migration already underway

Vercel now describes cron jobs as a legacy feature scheduled for migration to Schedules, which add timezones, private function and queue targets, and the ability to create a schedule at runtime. The documented Hobby limits on this page are cron limits; anyone building a scheduler is being pointed at a product whose free-tier boundaries are worth checking separately before committing the design.

That matters at the architecture stage rather than the deploy stage. A project that picks its scheduling model from today's cron documentation may find itself rewriting the trigger layer when the migration lands, and the free-tier answer about Schedules is not yet in the table above.

The honest reading is that Vercel is telling you cron is on the way out while still enforcing its daily limit on Hobby. Treat the limit as real today and the feature as temporary, and keep the scheduled work in a single function so the trigger can be swapped without touching the logic.

What this actually rules out on free

Anything that polls. A free Hobby project cannot check an inbox every fifteen minutes, cannot refresh a dashboard hourly, and cannot watch a feed for changes during the day. Those are the workloads that make a scheduler worth having, and they all sit above the daily ceiling.

What remains is genuinely useful: a nightly digest, a daily rebuild, a once-a-day sync, a weekly report expressed as a single weekly expression. Four useful patterns and one hundred slots for them, on a plan that costs nothing and includes the function invocations within its allowance.

That is a narrower free tier than it first appears, and it is more honest than one that accepts an hourly expression and silently runs it once.

Frequently asked questions

How often can a Vercel Hobby cron job run?
Once per day. Expressions that would run more frequently fail during deployment.

Will my 1am job run at 1am?
It can run anywhere between 1:00 and 1:59. Vercel does not guarantee timely invocation on Hobby.

How many cron jobs can I create on Hobby?
Up to 100 per project, the same as Pro.

Do cron jobs count against function limits?
Yes. Each invocation runs a function and draws on the plan's function usage.

How do I get minute-level scheduling?
Upgrade to Pro, where the minimum interval is once per minute and precision is per minute.

Are cron jobs going away?
Vercel calls them a legacy feature to be migrated to Schedules, which support timezones, private targets and runtime creation.

The 100-job limit, the once-per-day minimum interval, the plus or minus 59 minute precision, the deployment failure on sub-daily expressions, the 1:00 to 1:59 example, function usage and pricing, and the legacy status and planned migration to Schedules all verified in Vercel's cron jobs usage and pricing documentation, read on 9 November 2026.

Sources

  1. Vercel Docs: cron jobs usage and pricing: vercel.com/docs/cron-jobs/usage-and-pricing. Used for: Hobby limits of 100 jobs, once-daily minimum, plus or minus 59 minute precision, deploy failure on sub-daily expressions, and the Pro comparison.

All sources are the vendor's own plan or documentation pages, checked on 27 October 2026. Plan terms change without notice, so confirm current limits before you rely on them.