node-schedule

Flexible cron-like job scheduling library for Node.js. Schedule jobs using cron-style expressions, JavaScript Date objects, or recurrence rules. Jobs run within the Node.js process (in-process scheduling) — no external dependencies required. Supports per-job cancellation, one-time scheduling, and recurrence rules with timezone support. Lightweight alternative to cron when you don't want Redis or external infrastructure.

Evaluated Mar 06, 2026 (0d ago) v2.x
Homepage ↗ Repo ↗ Developer Tools scheduler cron jobs node scheduling recurring typescript
⚙ Agent Friendliness
67
/ 100
Can an agent use this?
🔒 Security
96
/ 100
Is it safe for agents?
⚡ Reliability
86
/ 100
Does it work consistently?

Score Breakdown

⚙ Agent Friendliness

MCP Quality
--
Documentation
85
Error Messages
78
Auth Simplicity
100
Rate Limits
100

🔒 Security

TLS Enforcement
100
Auth Strength
100
Scope Granularity
100
Dep. Hygiene
88
Secret Handling
90

In-process scheduling — no network surface. Security depends on what the scheduled jobs do. No secrets or credentials involved in scheduling itself.

⚡ Reliability

Uptime/SLA
88
Version Stability
88
Breaking Changes
88
Error Recovery
78
AF Security Reliability

Best When

You need lightweight in-process cron scheduling in a single Node.js process without Redis or external infrastructure.

Avoid When

You run multiple instances of your app or need jobs to survive process restarts — use BullMQ or pg-boss for distributed persistent scheduling.

Use Cases

  • Schedule recurring tasks (daily reports, hourly data sync, weekly cleanup) using cron expressions in Node.js applications
  • Schedule one-time future job execution at a specific Date or Unix timestamp
  • Run background maintenance tasks (cache invalidation, temp file cleanup) at off-peak hours using cron schedules
  • Trigger in-process scheduled callbacks without Redis or external queue dependencies for lightweight scheduling needs
  • Coordinate agent periodic tasks (checking for new data, sending digests) with cron-style scheduling

Not For

  • Distributed/multi-process scheduling — node-schedule schedules per process; use Bull/BullMQ with Redis for multi-instance scheduling
  • Persistent job queues that survive restarts — in-process scheduling is lost on restart; use BullMQ or pg-boss for persistent queues
  • High-frequency sub-minute scheduling — use setInterval for sub-minute tasks; cron-style is designed for minute+ intervals

Interface

REST API
No
GraphQL
No
gRPC
No
MCP Server
No
SDK
Yes
Webhooks
No

Authentication

Methods: none
OAuth: No Scopes: No

No authentication — in-process scheduling library.

Pricing

Model: open_source
Free tier: Yes
Requires CC: No

Fully free, MIT licensed.

Agent Metadata

Pagination
none
Idempotent
Partial
Retry Guidance
Not documented

Known Gotchas

  • Job callbacks run synchronously in the event loop — long-running job callbacks block the event loop; wrap CPU-heavy work in worker threads or async handlers
  • Jobs are lost on process restart — node-schedule holds schedule state in memory only; re-register all jobs at application startup
  • Cron expression syntax: node-schedule uses a 6-field cron (seconds optional) — verify format with cron expression validators to avoid silent misconfiguration
  • Multiple app instances: if you run N instances, each schedules its own jobs — running N workers will execute jobs N times; use a single scheduler instance or distributed lock
  • Async callbacks: node-schedule doesn't await async job functions — use .catch() on returned promises or try/catch in async callbacks to prevent silent failures
  • Timezone support requires specifying timezone in RecurrenceRule or using schedule.scheduleJob(name, {tz: 'America/New_York', rule: cron})

Alternatives

Full Evaluation Report

Detailed scoring breakdown, competitive positioning, security analysis, and improvement recommendations for node-schedule.

$99

Scores are editorial opinions as of 2026-03-06.

5208
Packages Evaluated
26151
Need Evaluation
173
Need Re-evaluation
Community Powered