NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
npm · #2338 most downloaded on npm
Node.js library for parsing crontab instructions
Last release 22 days ago
12 Sep 2026
Release timing varies
gaps range from 8 days to 5 months
Most releases are documented
notes for 46 of the last 60 stable releases
20 versions withdrawn
withdrawn after publishing
14 years old
119 releases · first in 2012
fix: reject duplicate zero values in field validation by @harrisiirak in #445
Full Changelog: v5.10.0...v5.10.1
Full Changelog: https://github.com/harrisiirak/cron-parser/compare/v5.10.0...v5.10.1
One column per quarter.
fix: pad short expressions from the leading field slot by @harrisiirak in #443
Full Changelog: v5.9.0...v5.10.0
Full Changelog: https://github.com/harrisiirak/cron-parser/compare/v5.9.0...v5.10.0
fix: keep explicit range bounds when stringifying stepped fields ( #279 ) by @harrisiirak in #440
Full Changelog: v5.8.1...v5.9.0
Full Changelog: https://github.com/harrisiirak/cron-parser/compare/v5.8.1...v5.9.0
ci: automate releases by @harrisiirak in #439
Full Changelog: https://github.com/harrisiirak/cron-parser/compare/v5.8.0...v5.8.1
chore: report coverage and benchmark on every PR commit by @harrisiirak in #430
Full Changelog: v5.7.0...v5.8.0
Full Changelog: https://github.com/harrisiirak/cron-parser/compare/v5.7.0...v5.8.0
chore: switch tsconfig to nodenext module resolution and remove ignoreDeprecations by @harrisiirak in #417
Full Changelog: v5.6.1...v5.7.0
Full Changelog: https://github.com/harrisiirak/cron-parser/compare/v5.6.1...v5.7.0
…present in cron-parser@5.6.2 . This version is deprecated on npm - use 5.7.0 instead.
Warning
The npm package published for this version does not contain these fixes. The tarball was built from a stale dist/ and shipped the 5.6.1 source tree, so #414 and #415 are not present in cron-parser@5.6.2. This version is deprecated on npm - use 5.7.0 instead.
Full Changelog: v5.6.1...v5.6.2
fix: handle DST gap correctly and prevent iteration from stopping prematurely by @cyber-hari in #405
Full Changelog: v5.6.0...v5.6.1
Full Changelog: https://github.com/harrisiirak/cron-parser/compare/v5.6.0...v5.6.1
fix: ES6 iterator done flag handling by @harrisiirak in 90e1c68
Full Changelog: v5.5.0...v5.6.0
Speed up CronExpression iteration by @kirill578 in #394
Full Changelog: v5.4.0...v5.5.0
Full Changelog: https://github.com/harrisiirak/cron-parser/compare/v5.4.0...v5.5.0
Clamp currentDate value when startDate or endDate are provided by @harrisiirak in #391
Full Changelog: v5.3.1...v5.4.0
Full Changelog: https://github.com/harrisiirak/cron-parser/compare/v5.3.1...v5.4.0
Fix invalid start and end time span validation logic by @harrisiirak in https://github.com/harrisiirak/cron-parser/pull/386
Full Changelog: https://github.com/harrisiirak/cron-parser/compare/v5.3.0...v5.3.1
Hashed values (H) ranges and steps support by @harrisiirak in https://github.com/harrisiirak/cron-parser/pull/382
Full Changelog: https://github.com/harrisiirak/cron-parser/compare/v5.2.0...v5.3.0
Adding support for the H syntax, allowing to add jitter to a cron expression by @MYDIH in https://github.com/harrisiirak/cron-parser/pull/377
CronField constructor signature and removed nthDayOfWeek field from CronExpressionOptions. See PR for more details.Full Changelog: https://github.com/harrisiirak/cron-parser/compare/v5.1.1...v5.2.0
e6b004681f22831fda57032d67b373c3915ec2db - Fix last day of month handling when explicit month is set
luxon to the latest (3.6.1) versionhttps://github.com/harrisiirak/cron-parser/pull/374 - Improve handling and support for special characters (L, #) in the includesDate method
includesDate method8f2081ec042cbfe6ee98148b7bc50162e058124a - Simplify strict mode flag usage in getRawFields
38a84580ff072cba1dda7add4da08bc90fc1caff - Restore 4.x compatibility and use the current timezone for currentDate instead of setting it to UTC
4.x compatibility and use the current timezone for currentDate instead of setting it to UTC (#370)84e100f75d8ae2ab651f8b72c19b00cb871500f0 - Set milliseconds to 0 before returning schedule
e0bda7ec2c66305d87dd75bf902116f60166b2a4 - Parse field for day of week should allow 0 or SUN values
fe6b90eefefec24673ddbfb9c78d8dbc5ac46a63 - Add fs/promises to browser import ignore list
This first patch release contains couple of quick bugfixes that were reported after the first release of v5. Thanks for everybody that tried the new v
This first patch release contains couple of quick bugfixes that were reported after the first release of v5. Thanks for everybody that tried the new version out and provided some feedback.
jest-runner-tsd dev dependency (https://github.com/harrisiirak/cron-parser/issues/361)fs and fs/promises to restore ability to use this package in the browser environment (https://github.com/harrisiirak/cron-parser/issues/362)assert module usage (can't be used in the browser environment without polyfill or included extra package) and improve/add test cases (https://github.com/harrisiirak/cron-parser/issues/364).npmignoreBREAKING CHANGE: Bumped the minimum Node.js version to >= 18 and TypeScript to >= 5.
All changes come from https://github.com/harrisiirak/cron-parser/pull/360
interval.fields (CronExpression.interval) now returns a readonly instance of CronFieldsCollection instead of a regular array. See CronFieldsCollection.from for how to modify the underlying data structure.CronParser to a standalone CronFileParser class (fixes #112).utc flag from the options. Pass in UTC timezone instead.tap to jest.typedoc (fixes #309, #322, #269).CronExpression.includesDate to evaluate whether a given date matches the pattern (closes #299).While this release won't address the performance issues reported in #287, it will bring some performance improvements of around 20-30% on average, depending on the pattern complexity. The following benchmark results were produced on my 2023 MBP.
<pre> ┌────────────────────┬────────────┬────────────┬──────────┬─────┐ │ Pattern │ Old Mean │ New Mean │ Change │ │ ├────────────────────┼────────────┼────────────┼──────────┼─────┤ │ * * * * * * │ 73.55ms │ 37.43ms │ 49.10% │ ↑ │ ├────────────────────┼────────────┼────────────┼──────────┼─────┤ │ 0 * * 1,4-10,L * * │ 3504.51ms │ 2338.42ms │ 33.27% │ ↑ │ ├────────────────────┼────────────┼────────────┼──────────┼─────┤ │ 10-30/2 2 12 8 0 │ 3111.18ms │ 2234.32ms │ 28.18% │ ↑ │ ├────────────────────┼────────────┼────────────┼──────────┼─────┤ │ 0 0 0 * * 4,6L │ 9400.33ms │ 6825.61ms │ 27.39% │ ↑ │ ├────────────────────┼────────────┼────────────┼──────────┼─────┤ │ 0 12 */5 6 * │ 7442.68ms │ 5645.95ms │ 24.14% │ ↑ │ ├────────────────────┼────────────┼────────────┼──────────┼─────┤ │ 0 15 */5 5 * │ 6998.87ms │ 5443.22ms │ 22.23% │ ↑ │ ├────────────────────┼────────────┼────────────┼──────────┼─────┤ │ 0 0 6-20/2,L 2 * │ 8832.87ms │ 6947.63ms │ 21.34% │ ↑ │ ├────────────────────┼────────────┼────────────┼──────────┼─────┤ │ 0 0 0 * * 1L,5L │ 15416.07ms │ 12474.12ms │ 19.08% │ ↑ │ ├────────────────────┼────────────┼────────────┼──────────┼─────┤ │ 10 2 12 8 7 │ 7105.79ms │ 5947.91ms │ 16.29% │ ↑ │ └────────────────────┴────────────┴────────────┴──────────┴─────┘ </pre>
Benchmarks can be run locally by executing the command.:
npm run bench
Individual patterns can be benchmarked by executing bench:pattern command:
npm run bench:pattern "* * * * * *"
Remove superfluous files from npm package (#328) (@sheerlox)
Fix multiple value ranges serialisation
Fix expression stringify range step handling
- Update deps
Fix to allow the same value for range start and end value
60891285df2fcacd371becff4a0f909706da8f5b Upgrade to luxon@v3
aaed261a77a5b954ab955c647837d63688897731 bump outdated version requirements
luxon to v2.4.0 (see v2 support matrix documentation) (@DonBrinn)- #267 Fix multiple dayofmonth ranges handling
- Update deps (fce854ec49e204085462698ae91cf245bbbbfb90) - #260 Fix last weekday of month handling (@pafik13)
- Update deps (f687555f25ff0e4e12a951f3a4827b382436692f) - #253 Normalize Regex expression (@webdevium) - #252 Update docs
- Update deps
- #245 Support "last weekday of the month" expressions (@albertorestifo)
- #241 Remove is-nan dependency; it's possibly breaking IE support, therefore bumping to v4 (@amiram) - Update dev dependencies
is-nan dependency; it's possibly breaking IE support, therefore bumping to v4 (@amiram)- #225 Fixes prev() issue (#178) when cron expression contains 59 seconds
Update tests and resolve tap@15 deprecation warnings
tap@15 deprecation warnings- #213 Add support for serializing a cron expression instance into a string (@regevbr)
- #211 Expose parsed fields (@regevbr)
- #207 Fix toISOString() and toString() behaviour
toISOString() and toString() behaviour- #204 Add a basic eslint setup for codestyle rules (@andytson) - #202 Switch from moment-timezone to luxon for smaller bundle (@andytson)
- #197 Add validation for empty comma separated values (@DevXiaolan)
Update deps 4db6cad1cba9ad0d0c561fc1f062df83a40f40f2
Nothing published for this version
Nothing published for this version
Nothing published for this version
Remove limitation for range values. Fixes #191
Fixes issue with repeat value parsing and handling
Sort input atoms in ascending order
Nothing published for this version
reset() accepts arbitrary input date
reset() accepts arbitrary input date (#162)Improve explicit day of month definition handling and validation. Fixes #158
Adds support for '#' character in the dayOfWeek field #155 (@DiskImage)
Adds support for '#' character in the dayOfWeek field #155 (@DiskImage)
Implement parser loop limit and simplify and simplify invalid explicit day of month definition validation logic
Fix issue with day of month validation
Fix issue with GAS #150 (@skyksandr)
Add .npmignore and exclude project configuration. Reduces package size around ~21%.
Fix bug with sequences #140 (@santigimeno)
Fix issues with DST boundaries and revert previous release breaking changes #138 (@santigimeno)
Your coding agent can read these notes before it upgrades. Set up the MCP server →