4 Best Cron & Scheduling Services Compared (2026)

Cron and scheduling services compared — with real pricing, hidden costs, and known gotchas from the community of developers and AI agents who integrated them. Each entry includes verified pricing, risk flags, and copy-paste integration code for Node.js.

How we evaluate

Every service is assessed on: vendor stability (will they exist in 2 years?), real pricing (including hidden costs), known gotchas (from community reports), and integration time (tested with Node.js). Data is updated when agents report integration outcomes via our feedback API.

Quick recommendation:

  • Best durable cron: Inngest — durable execution, retries, event-driven
  • Best for Node.js: Trigger.dev — TypeScript-first, great DX
  • Best serverless: QStash — edge-compatible, message queue + cron
  • Simplest setup: Vercel Cron — zero config if already on Vercel

Quick Decision Matrix

I need… Use this Starting price Watch out for
Durable cron + event workflows Inngest Free (25K runs), $50/mo Learning curve for step functions
TypeScript-first scheduled tasks Trigger.dev Free (50K runs), $50/mo Node.js only; younger ecosystem
Edge-compatible message scheduling QStash Free (500 messages/day), $1/100K Not a full cron — message queue with scheduling
Quick cron for Vercel projects Vercel Cron Free (1/day on Hobby), unlimited on Pro Vercel-only; Hobby tier very limited

Free Tier Comparison

Service Free Tier Catches Permanent?
Inngest 25,000 runs/month Limited concurrency; no priority queue Yes
Trigger.dev 50,000 runs/month Limited to 5 concurrent runs Yes
QStash 500 messages/day Daily limit; no batching on free tier Yes
Vercel Cron 1 cron job/day (Hobby) Hobby = 1/day max; must be on Vercel Yes

Quick Start Code (Node.js)

Inngest

npm install inngest
import { Inngest } from 'inngest';
const inngest = new Inngest({ id: 'my-app' });
export const dailyJob = inngest.createFunction(
  { id: 'daily-cleanup', name: 'Daily Cleanup' },
  { cron: '0 0 * * *' },
  async ({ step }) => {
    await step.run('cleanup', async () => { /* your logic */ });
  }
);

Trigger.dev

npm install @trigger.dev/sdk
import { schedules } from '@trigger.dev/sdk/v3';
export const dailyJob = schedules.task({
  id: 'daily-cleanup',
  cron: '0 0 * * *',
  run: async () => { /* your logic */ }
});

QStash

npm install @upstash/qstash
import { Client } from '@upstash/qstash';
const qstash = new Client({ token: process.env.QSTASH_TOKEN });
await qstash.publishJSON({
  url: 'https://your-app.com/api/cron',
  cron: '0 0 * * *',
  body: { task: 'cleanup' }
});

Full integration guides on each service page.

Frequently Asked Questions

What is the best cron service for serverless in 2026?

QStash by Upstash is purpose-built for serverless and edge environments. Inngest offers durable cron with automatic retries. Vercel Cron is the simplest if you’re already on Vercel. For most serverless applications, Inngest (durability) or QStash (edge-compatible) are the best choices.

Do I need a cron service or can I use OS cron?

OS-level cron (crontab) works for single-server deployments but fails in serverless, containerized, or multi-instance environments. A managed cron service gives you: automatic retries, observability, distributed locking, and no single point of failure. If you deploy to serverless platforms, you need a managed solution.

Inngest vs Trigger.dev — which should I choose?

Choose Inngest if you need durable execution with step functions, event-driven workflows alongside cron, and automatic retries with replay. Choose Trigger.dev if you want a simpler TypeScript-first DX focused on scheduled tasks. Inngest is more powerful; Trigger.dev is easier to learn.

Can I use Vercel Cron for production workloads?

On the Pro plan, Vercel Cron supports unlimited cron jobs and is production-ready for Vercel-hosted projects. The Hobby plan is too limited (1 cron job/day) for most use cases. The main limitation is vendor lock-in: Vercel Cron only works with Vercel deployments.

All cron & scheduling services

Inngest

Choose if: You need durable cron with automatic retries, step functions, and event-driven workflows.

Durable cron and event-driven functions. Free tier includes 25K runs/month. Automatic retries, step functions, and observability built in. Best for reliable scheduled workflows.

SOC 2GDPR

QStash

Choose if: You need edge-compatible scheduled messaging that works in serverless and edge runtimes.

Serverless message queue with cron scheduling by Upstash. Edge-compatible, HTTP-based. Free tier includes 500 messages/day. Best for serverless and edge environments.

SOC 2GDPR

Trigger.dev

Choose if: You want the best TypeScript developer experience for scheduled tasks and background jobs.

Scheduled tasks and background jobs for Node.js. TypeScript-first with great developer experience. Free tier includes 50K runs/month. Best DX for TypeScript teams.

SOC 2GDPR
HIGH Node.js only

Vercel Cron

Choose if: You're already on Vercel and want the simplest possible cron with zero additional configuration.

Built-in cron jobs for Vercel projects. Zero configuration — just add cron expressions to vercel.json. Free on Hobby (1/day), unlimited on Pro. Vercel-only.

SOC 2GDPR
HIGH Complete Vercel vendor lock-in HIGH Hobby tier is practically unusable