CronClawscheduled, verified, reported

VERCEL + NEXT.JS GUIDE · UPDATED 29 SEPTEMBER 2026

Schedule and monitor a Next.js cron job

You can keep Vercel Cron as the scheduler and have CronClaw watch for successful completions, or let CronClaw trigger a protected Next.js route itself. Choose one scheduler for each task to avoid duplicate work.

Which setup fits your project?

Vercel schedules, CronClaw monitorsCronClaw schedules and verifies
TriggerVercel calls a GET route from vercel.json.CronClaw sends a signed POST to your deployed route.
CronClaw signalYour route pings CronClaw only after the real task succeeds. Missing or late pings raise an alert.CronClaw records HTTP execution, retries where configured, and can check a JSON business result.
Use whenYou already use Vercel Cron or want Vercel to own the schedule.You want CronClaw to own the schedule and run evidence.

Path A: Keep Vercel Cron, add completion monitoring

  1. Create a heartbeat monitor in CronClaw. Select your Vercel plan and schedule; the guide will set the matching interval and grace period.
  2. In Vercel, set a private CRON_SECRET and the one-time CRONCLAW_HEARTBEAT_URL as Production environment variables.
  3. Merge the generated crons entry into root vercel.json, and install the App Router or Pages Router route. Replace its fail-closed task placeholder with your real work.
  4. Deploy to production. Confirm a Vercel invocation, a successful CronClaw heartbeat, and an alert test. A local route test does not prove the production schedule runs.

The generated route returns an error if task work or the completion ping fails; it never sends a success ping before the task finishes. Keep the ping URL out of source control and logs. A heartbeat proves your route reported success, not that an independent business result is correct.

Path B: Let CronClaw schedule a Next.js route

  1. Create a signed job in CronClaw and choose a schedule and time zone.
  2. Download the separate Next.js App Router or Pages Router integration kit. Each names its exact project-relative route file and keeps the one-time secret out of the ZIP.
  3. Set the Job ID and secret in your application environment, deploy the route, and send a signed test from CronClaw.
  4. Add a JSON outcome rule or read-only verifier if HTTP success alone is not enough.

Do not also add this route to vercel.json; that would create a second scheduler for the same task.

Vercel-specific details to check

  • Vercel Cron runs against production deployments and interprets cron expressions in UTC. Plan your local time conversion explicitly.
  • On Hobby, cron can run only once daily and its invocation may fall anywhere within the specified hour. Give monitoring enough grace for that window and your task duration.
  • Protect the route with Vercel's CRON_SECRET. The generated example fails closed when that secret is missing.
  • Make the task idempotent if another invocation could overlap or repeat work. A payment, email, or data export must not be duplicated.

See Vercel's Cron Jobs documentation and its security and plan guidance for current platform rules.

Protect one production task first.

Start with the schedule you already use, then verify a real completion and a received alert.

Create a free account