Technology1 min read

Vercel Schedules is now in public beta

By · Published by Everything Blog

In short

Vercel Schedules has expanded to all plan tiers, allowing for static configurations as well as dynamic runtime creation targeting queue topics. Beyond standard workflows, the architecture powers dynamic tasks in Eve alongside experimental scheduling features in Nitro projects. Teams can securely invoke private Vercel Functions that lack public URLs, ensuring sensitive automated processes remain protected. Pricing starts at $5 per million runs and $10 per million creations for Pro and Enterprise users, while Hobby accounts include a dedicated monthly allowance.

Key points

  • Existing Vercel Cron Jobs will remain functional while developers reference provided migr…: Existing Vercel Cron Jobs will remain functional while developers reference provided migration guidance to adopt the new feature.
  • Paid Pro and Enterprise tiers are billed at five dollars per million runs and ten dollars…: Paid Pro and Enterprise tiers are billed at five dollars per million runs and ten dollars per million schedule creations.
  • Free Hobby plan users receive an included monthly allocation of 500 schedule creations an…: Free Hobby plan users receive an included monthly allocation of 500 schedule creations and 5,000 total runs.

Sources checked by our analysis pipeline: 1

Vercel Schedules is now in public beta on all plans. Run tasks on a recurring cadence or at a single point in time, in production, preview, or custom environments.

Schedules in vercel.json

can target a private Vercel Function, an HTTP path, or a Vercel Queue topic, and schedules created at runtime target a Queue topic. Any schedule can be enabled, disabled, or run on demand without redeploying.

Define a static schedule:

{ "schedules": { "cleanup": { "schedule": "0 * * * *", "function": "api/cleanup.ts", "timezone": "America/New_York" } }, "functions": { "api/cleanup.ts": { "experimentalTriggers": [{ "type": "schedule/v1beta" }] } } }

An hourly static schedule in vercel.json, targeting a private Vercel Function

Adding a schedule/v1beta

trigger makes the function private. It has no public URL and only the Vercel schedule infrastructure can invoke it.

Handle the dispatch:

import { handleSchedule } from '@vercel/schedules';

export const POST = handleSchedule(async (metadata) => { console.log(`Running ${metadata.name} at ${metadata.scheduledAt}`); await deleteExpiredRecords(); });

Handling the schedule dispatch with handleSchedule from @vercel/schedules

Create a schedule at runtime:

import { Schedules } from '@vercel/schedules';

await Schedules.create({ name: 'daily-digest',…

Technology