# What changed in @nestjs/schedule

> 12 changes in @nestjs/schedule 6 to 12 from its official release notes, upgrade guides and advisories: 6 breaking, 5 new APIs and options. Each one cited. Sources checked 2026-10-20. HTML: https://unstale.sh/npm/@nestjs/schedule/

To see which of these apply to a repository, run `npx @unstale/cli init` in it.

## @nestjs/schedule 12

### Breaking changes

- Duplicate explicit names across @Cron, @Interval, or @Timeout declarations are rejected during initialization rather than conflicting later. (12.0.0) — [release notes](https://github.com/nestjs/schedule/releases/tag/12.0.0)
- The legacy root index.js shim is gone; use the package name without the explicit shim path. (12.0.0) — [release notes](https://github.com/nestjs/schedule/releases/tag/12.0.0)
- Lifecycle hooks are now called by component hierarchy level, which can change execution order for related providers or modules and affect initialization or teardown assumptions. (12.0.0) — [upgrade guide](https://docs.nestjs.com/migration-guide)
- The package is published as pure ESM with an exports map; import from the package root. CommonJS apps can still use require through Node's require(esm) support. (12.0.0) — [release notes](https://github.com/nestjs/schedule/releases/tag/12.0.0)
- Deep imports into build internals are no longer resolvable; import CronExpression from the package root instead. (12.0.0) — [release notes](https://github.com/nestjs/schedule/releases/tag/12.0.0)
- Node 20.19+ or 22.12+ is required; on older versions, requiring the ESM package throws ERR_REQUIRE_ESM. (12.0.0) — [release notes](https://github.com/nestjs/schedule/releases/tag/12.0.0)

### New APIs and options

- Adds a generic return type parameter to getInterval. (12.0.2) — [release notes](https://github.com/nestjs/schedule/releases/tag/12.0.2)
- Adds a generic return type parameter to getTimeout. (12.0.2) — [release notes](https://github.com/nestjs/schedule/releases/tag/12.0.2)
- ScheduleExplorer is now exported from the package entry point, making it directly importable from the package. (12.0.1) — [release notes](https://github.com/nestjs/schedule/releases/tag/12.0.1)

### Fixes and other changes

- A deleted job is no longer resurrected after its initialDelay elapses. (12.0.2) — [release notes](https://github.com/nestjs/schedule/releases/tag/12.0.2)

## @nestjs/schedule 6

### New APIs and options

- Adds an option to defer the first cron job execution. (6.1.2) — [release notes](https://github.com/nestjs/schedule/releases/tag/6.1.3), [release notes](https://github.com/nestjs/schedule/releases/tag/6.1.2)
- Adds async module registration. (6.1.0) — [release notes](https://github.com/nestjs/schedule/releases/tag/6.1.0)
