Recuro.
All alternatives

Vercel Cron Jobs Alternatives

Vercel Cron Jobs are convenient if you are already on Vercel, but they only trigger Vercel functions and require a deploy to change schedules. Here is how the alternatives compare.

What is Vercel Cron Jobs?

Vercel Cron Jobs let you trigger Vercel-deployed serverless functions on a schedule using cron expressions defined in your vercel.json file. It is a built-in feature of the Vercel platform — no extra service to set up. You specify a route path and a cron expression, and Vercel invokes that function on the schedule.

The Hobby (free) plan allows 2 cron jobs with a minimum interval of 1 day and a 10-second function timeout. The Pro plan ($20/month per member) raises this to 40 jobs, 1-minute intervals, and up to 300-second timeouts. Vercel Cron is a good fit for teams already on Vercel who need to schedule their own functions — but it does not support external URLs, retries, or failure alerts.

Quick take

  • Vercel functions only — cannot call external URLs. Your backend must be deployed on Vercel.
  • Hobby plan: 2 jobs, daily minimum interval, 10s timeout. Pro plan: 40 jobs, 1-min interval, 300s timeout.
  • No retries, no failure alerts, no recovery notifications. Failures appear in function logs only if you check.
  • Schedule changes require editing vercel.json and redeploying. No dashboard or API for schedule management.

Feature comparison

How Vercel Cron Jobs stacks up against the most common alternatives.

Feature Vercel Cron (Hobby)Vercel Cron (Pro)Netlify ScheduledGitHub Actions Croncron-job.orgUpstash QStash
Type Platform schedulerPlatform schedulerPlatform schedulerCI/CD schedulerHTTP schedulerHTTP queue + scheduler
Free tier jobs 2 jobs40 jobsIncluded in plan2,000 min/mo (private)Unlimited500 msgs/day
Minimum interval 1 day1 minute1 hour (varies)5 minutes1 minute1 minute
External URL support No (Vercel only)No (Vercel only)No (Netlify only)Yes (manual curl)YesYes
Automatic retries NoNoNoNoNoYes, configurable
Failure alerts NoNoNoCustom step neededEmail after 15 failsCallback URL
Execution dashboard No (function logs)No (function logs)No (function logs)Workflow run logs25 entriesYes
Schedule changes vercel.json + deployvercel.json + deployCode + deployYAML commit + pushDashboardAPI
Platform lock-in Vercel onlyVercel onlyNetlify onlyGitHub repos onlyNoneNone
Team management Vercel teamVercel teamNetlify teamRepo permissionsNoUpstash dashboard
REST API NoNoNoGitHub API (workflows)NoYes
One-off jobs NoNoNoworkflow_dispatchNoYes
Function timeout 10s (Hobby)60s (default) / 300s (max)10s (free) / 26s (paid)N/A (full VM)30sN/A (async)
Pricing Free$20/mo per memberFree / $19/mo (Pro)Free / $4/user/moFree / ~$1/moFree / $1/mo+

Alternatives to consider

Different tools fit different needs.

Netlify Scheduled Functions

Included in plan

Best for: Teams already on Netlify

Run Netlify Functions on a cron schedule. Same platform lock-in trade-off as Vercel but with different timeout limits (10s free, 26s paid). Schedule defined in code with @netlify/functions package.

Read our comparison

GitHub Actions Cron

Free / $4/user/mo

Best for: Repo-bound tasks where timing is not critical

Schedule workflows using cron expressions in YAML. Can call any URL via curl but timing can be delayed 10-60+ minutes during high load. Consumes CI/CD minutes.

Read our comparison

cron-job.org

Free / ~$1/mo

Best for: Simple HTTP scheduling on a $0 budget

Free HTTP cron service with unlimited jobs and 1-minute intervals. 30-second timeout, no retries, alerts only after 15 failures. Platform-agnostic — calls any URL.

Read our comparison

FastCron

Free / $5/mo+

Best for: Affordable HTTP scheduler with longer timeouts

5 free cron jobs with 5-minute intervals and 30-second timeout. Paid plans from $5/mo with 200 jobs and 10-minute timeout. Has auto-retry. No team access.

Read our comparison

Upstash QStash

Free / $1/mo+

Best for: Serverless apps needing queue + scheduling

HTTP-based scheduler and message queue with configurable retries, delays, and callbacks. Pay-per-request pricing. Works with any URL, not locked to a deployment platform.

Why you may look for alternatives

These are the specific limitations that push teams to look beyond Vercel Cron Jobs.

Locked to Vercel-deployed functions

Vercel Cron Jobs can only invoke serverless functions deployed on Vercel. You cannot point a cron job at an external URL — your own API server on AWS, a third-party webhook, or a service on Railway. If your backend is not on Vercel, you would need to deploy a proxy function just to forward the request, adding complexity and latency.

Schedule changes require a deploy

Cron expressions are defined in vercel.json and deployed alongside your code. Changing a schedule from every 5 minutes to every 15 means editing the config, committing, pushing, and waiting for a Vercel build. There is no dashboard control, no API endpoint, and no way to adjust schedules without a full deploy cycle.

No retries or failure alerts

When a Vercel cron invocation fails — function error, timeout, non-200 response — nothing happens automatically. There are no retries, no failure email alerts, and no recovery notifications. You find out about failures by manually checking the function logs in the Vercel dashboard, assuming you check at all.

No dedicated execution dashboard

Vercel has no dedicated view for cron execution history. Past runs are mixed into the general function logs with no filtering for cron-triggered invocations specifically. There is no timeline view, no status code tracking, and no response time charts. Debugging a cron failure means searching through general function logs.

Strict tier limits

The free Hobby plan allows only 2 cron jobs with a daily minimum interval and 10-second timeout. The Pro plan at $20/month per member raises this to 40 jobs and 1-minute intervals. If you need more than 40 jobs, or shorter intervals, you hit hard limits that cannot be raised without an Enterprise plan.

No one-off or delayed jobs

Vercel Cron Jobs are strictly recurring. There is no mechanism to schedule a one-time HTTP call — a delayed webhook, a deferred notification, or a future callback at a specific time. If you need one-off scheduling alongside your recurring crons, you need a separate queuing system entirely.

Frequently asked questions

Can Vercel Cron Jobs call external URLs?
No. Vercel Cron Jobs can only invoke serverless functions deployed on Vercel. The cron trigger calls a route path within your Vercel project (e.g., /api/cron), not an arbitrary external URL. If your backend runs on AWS, Railway, DigitalOcean, or any other provider, Vercel Cron Jobs cannot call it directly. You would need to deploy a proxy function on Vercel that forwards the request, which adds latency and an extra point of failure.
What are the free plan limits for Vercel Cron?
The Hobby (free) plan allows a maximum of 2 cron jobs with a minimum interval of 1 day. You cannot run a job every hour or every 5 minutes on the free plan. The function timeout is 10 seconds. The Pro plan ($20/month per member) raises this to 40 cron jobs with 1-minute minimum intervals and up to 300-second function timeouts.
How do I change a Vercel Cron schedule?
Cron expressions are defined in your vercel.json file under the "crons" key. Changing a schedule means editing the JSON file, committing, pushing, and waiting for a Vercel deployment to complete. There is no dashboard control or API endpoint to update a cron schedule without a code deploy. For teams that need to adjust schedules frequently, this creates friction.
Does Vercel Cron support retries?
No. If a Vercel cron invocation fails (function error, timeout, or non-200 response), there is no automatic retry. The failed execution is simply logged — or not, depending on your log retention settings. The next invocation happens at the next scheduled time. You would need to implement retry logic inside your function code to handle transient failures.
When is Vercel Cron actually a good choice?
Vercel Cron works well when you are already deployed on Vercel and need to trigger your own serverless functions on a schedule — cache warming, database cleanup, report generation, or background processing. If your entire stack is on Vercel and you need fewer than 40 jobs running at 1-minute intervals or longer, it is the simplest option with zero additional services to manage.
How does Vercel Cron compare to Netlify Scheduled Functions?
Both are platform-locked schedulers that only trigger functions deployed on their own platform. Vercel defines schedules in vercel.json, Netlify defines them in code using the @netlify/functions package. Vercel Pro allows 1-minute intervals with up to 300s timeout; Netlify caps at 26s on paid plans. Neither offers retries, failure alerts, or external URL support. The choice usually comes down to which platform you are already using for deployment.