NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
npm · #3822 most downloaded on npm
Cron jobs for your node
Last release 1 months ago
28 Aug 2026
Ships unpredictably
gaps range from 8 days to 9 months
Most releases are documented
notes for 45 of the last 60 stable releases
5 versions withdrawn
withdrawn after publishing
15 years old
96 releases · first in 2011
drop Node v18, v20, and v23; deprecate the parameterized constructor, and remove child_process
Removed the ability to execute system commands using string-based inputs. This eliminates the dependency on child_process , improving browser compatib
child_process,One column per quarter.
update node versions to include 24 and 25 ( #1031 ) ( b228e7c ), closes #1000
suppress setTimeout warning with negatives ( #1030 ) ( 74d3b74 ), closes #1000
catch errors in async onTick functions
deps: update dependency @types /luxon to ~3.7.0
deps: update dependency luxon to ~3.7.0
prevent sourcemap error in IDEs ( #988 ) ( 0db2c2d ), closes #987
prevent jobs from stopping unexpectedly
Allow awaiting job.stop() (#977) (e296b76), closes #976
prevent jobs from stopping unexpectedly
deps: update dependency @types/luxon to ~3.6.0
deps: update dependency @types/luxon to ~3.6.0
deps: update dependency luxon to ~3.6.0
cron should still execute after changing the time back during daylight savings (#966) (8cf0712), closes #881 #881
add isCronTimeValid function to validate cron expressions
drop support for Node v16 and rename job.running to job.isActive
action: update actions/checkout action to v4.2.2
throw instead of silently rewriting invalid cron expressions
error handling on ticks (#861) (0d3161f), closes #426
fix infinite loop on expressions resolving only inside a DST forward jump (#938) (efb8df5), closes /github.com/kelektiv/node-cron/pull/667/files#diff-
action: update marocchino/sticky-pull-request-comment action to v2.9.0
support async handling and add CronJob status tracking (#894) (b58fb6b), closes #713 #556
migrate eslint config to flat style (#913) (38c1044), closes #899
action: update actions/checkout action to v4.2.2
typescript: add missing "types" property to package.json
deps: update dependency luxon to ~3.5.0
deps: update dependency @types/luxon to ~3.4.0
revert runOnce breaking changes
detect multiple zeros as an invalid step (#743) [skip ci]
run once when actual date is given to setTime
deps: update dependency luxon to ~3.4.0
fix lastDate() value for intervals > 25 days
improve context, onTick & onComplete typings
utcOffset parameter no longer accepts a string
utcOffset parameter no longer accepts a stringutcOffset values between -60 and 60 are no longer
treated as hourstimeZone and utcOffset parameters
now throws an errorcron.job() method in favor of new CronJob(...args) /
CronJob.from(argsObject)cron.time() method in favor of new CronTime()CronJob: constructor no longer accepts an object as its first and
only params. Use CronJob.from(argsObject) instead.CronJob: callbacks are now called in the order they were registeredutcOffset parameter no longer accepts a string
utcOffset parameter no longer accepts a stringutcOffset values between -60 and 60 are no longer
treated as hourstimeZone and utcOffset parameters
now throws an error## 3.0.0-beta.8 (2023-09-26) ### ✨ Features * expose useful types
readme: remove outdated informations
removed cron.job() method in favor of new CronJob(...args) / CronJob.from(argsObject)
cron.job() method in favor of new CronJob(...args) /
CronJob.from(argsObject)cron.time() method in favor of new CronTime()CronJob: constructor no longer accepts an object as its first and
only params. Use CronJob.from(argsObject) instead.CronJob: callbacks are now called in the order they were registeredadded fractional offset support
deps: update dependency luxon to v3.3.0 & add @types/luxon (#689) (c95a449), closes #688
return empty array from nextDates when called without argument
replace loop timeout by max match date
add support for beta & maintenance releases
added fractional offset support
import type definitions from @types/cron
fix: don't start job in setTime if it wasn't running
Refactored get next date function
Updated unit tests to be compatible with new Luxon version
"Maximum iterations" will direct the user to refer to a single canonical issue instead of creating a new one
Upgrade vulnerable dependencies
Nothing published for this version
- Fix syntax parsing bug
Your coding agent can read these notes before it upgrades. Set up the MCP server →