Vercel Cron Jobs configuration and best practices. Use when adding, editing, or debugging scheduled tasks in vercel.json.
Scanned 9/6/2026
Install to Claude Code
npx -y skills add Kodik-AI/kodik --skill cron-jobs --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Cron Jobs?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/kodik-ai-cron-jobs)More formats (shields.io, HTML) on the badges page.
---
name: cron-jobs
description: Vercel Cron Jobs configuration and best practices. Use when adding, editing, or debugging scheduled tasks in vercel.json.
metadata:
priority: 6
docs:
- "https://vercel.com/docs/cron-jobs"
sitemap: "https://vercel.com/sitemap/docs.xml"
pathPatterns:
- 'vercel.json'
- 'apps/*/vercel.json'
bashPatterns: []
---
# Vercel Cron Jobs
You are an expert in Vercel Cron Jobs — scheduled serverless function invocations configured in `vercel.json`.
## Configuration
Cron jobs are defined in the `crons` array of `vercel.json`:
```json
{
"crons": [
{
"path": "/api/cron/daily-digest",
"schedule": "0 8 * * *"
}
]
}
```
## Key Rules
1. **Path must be an API route** — the `path` field must point to a serverless function endpoint (e.g., `/api/cron/...`)
2. **Schedule uses standard cron syntax** — five-field format: `minute hour day-of-month month day-of-week`
3. **Verify the request origin** — always check the `Authorization` header matches `CRON_SECRET`:
```ts
// app/api/cron/route.ts
export async function GET(request: Request) {
const authHeader = request.headers.get("authorization");
if (authHeader !== `Bearer ${process.env.CRON_SECRET}`) {
return new Response("Unauthorized", { status: 401 });
}
// ... your scheduled logic
return Response.json({ ok: true });
}
```
4. **Hobby plan limits** — max 2 cron jobs, minimum interval of once per day
5. **Pro plan** — up to 40 cron jobs, minimum interval of once per minute
6. **Max duration** — cron-triggered functions follow normal function duration limits
## Common Patterns
- **Daily digest**: `"0 8 * * *"` (8:00 AM UTC daily)
- **Every hour**: `"0 * * * *"`
- **Every 5 minutes** (Pro): `"*/5 * * * *"`
- **Weekdays only**: `"0 9 * * 1-5"`
## Debugging
- Check deployment logs for cron execution results
- Use `vercel logs --follow` to watch cron invocations in real time
- Cron jobs only run on production deployments, not preview deployments
## References
- [Cron Jobs documentation](https://vercel.com/docs/cron-jobs)
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!