| name | cron-jobs |
| description | Scheduled task patterns — Vercel Cron, node-cron, BullMQ schedulers, Inngest scheduled functions, and crontab syntax |
| layer | utility |
| category | backend |
| triggers | ["cron job","scheduled task","cron schedule","recurring job","periodic task","vercel cron","background scheduler","crontab"] |
| inputs | ["Task to schedule (function, endpoint, script)","Schedule frequency and timing","Infrastructure (Vercel, self-hosted, serverless)"] |
| outputs | ["Cron configuration (vercel.json, crontab, or code-based)","Job handler with idempotency and error handling","Monitoring and retry strategy"] |
| linksTo | ["vercel","message-queues","monitoring","nodejs"] |
| linkedFrom | ["ship","optimize","vercel"] |
| preferredNextSkills | ["monitoring","message-queues"] |
| fallbackSkills | ["nodejs"] |
| riskLevel | low |
| memoryReadPolicy | selective |
| memoryWritePolicy | none |
| sideEffects | ["Modifies vercel.json or system crontab","Creates scheduled job entries in external services"] |
Cron Jobs Skill
Purpose
Implement scheduled and recurring tasks across different runtimes: Vercel Cron for serverless, node-cron for long-running servers, BullMQ for Redis-backed job queues, and Inngest for event-driven scheduling. Includes crontab syntax reference.
Crontab Syntax Reference
┌─────────── minute (0-59)
│ ┌─────────── hour (0-23)
│ │ ┌─────────── day of month (1-31)
│ │ │ ┌─────────── month (1-12)
│ │ │ │ ┌─────────── day of week (0-6, Sun=0)
│ │ │ │ │
* * * * *
Common patterns:
*/5 * * * * Every 5 minutes
0 * * * * Every hour (on the hour)
0 */6 * * * Every 6 hours
0 0 * * * Daily at midnight
0 9 * * 1-5 Weekdays at 9 AM
0 0 1 * * First day of each month
0 0 * * 0 Every Sunday at midnight
Vercel Cron
{
"crons": [
{ "path": "/api/cron/cleanup", "schedule": "0 3 * * *" },
{ "path": "/api/cron/digest", "schedule": "0 9 * * 1" },
{ "path": "/api/cron/sync", "schedule": "*/15 * * * *" }
]
}
import { NextRequest } ;
() {
(request..() !== ) {
.({ : }, { : });
}
startTime = .();
{
deleted = db..({
: { : { : () } },
});
duration = .() - startTime;
.();
.({ : , : deleted., duration });
} (error) {
.(, error);
.({ : }, { : });
}
}