JH← Back to blog

Node.js 26 Ships Temporal by Default — And It's the Last Release Before the Cadence Changes

Node.js 26 enables the Temporal API by default, bumps V8 to 14.6 and Undici to 8.0, and marks the last release under the old odd/even schedule before a move to yearly releases.


Node.js 26 is worth paying attention to for two distinct reasons: it enables the Temporal API by default, finally giving JavaScript a modern built-in date and time standard, and it's the last release under Node's long-standing odd/even schedule before the project shifts to a yearly cadence. Alongside those two headlines, V8 moves to 14.6 and Undici to 8.0.

Temporal by default finally fixes JavaScript's date problem

Native Date has been a long-running source of frustration — mutable, prone to timezone bugs, missing clean support for common operations other languages handle natively. Temporal was designed specifically to fix this: immutable, timezone-aware, and far more ergonomic. It's been available behind flags and via polyfills for a while, but default availability in Node.js 26 is the milestone that actually drives adoption, because most developers won't opt into an experimental flag but will happily use a well-designed API that's simply there. For teams with meaningful date/time logic — scheduling, billing cycles, multi-timezone apps — this is a genuine correctness improvement. Expect a gradual migration away from Moment.js and even parts of date-fns/Luxon usage as Temporal covers what those libraries existed to work around.

The quieter upgrades

V8 14.6 brings the usual mix of performance improvements and newly supported language features. Undici 8.0 is arguably just as significant for production apps — Undici underpins both fetch() and direct usage as Node's default high-performance HTTP client, and 8.0 brings improvements that benefit nearly any app making outbound HTTP calls, which in practice is nearly all of them.

Catching up to Deno and Bun

Node has historically been the more conservative runtime on emerging standards, with Deno and Bun shipping experimental web-platform features earlier. Temporal's arrival as a default is a case of the largest runtime catching up to, and to some extent standardizing, a feature smaller runtimes already championed — worth factoring in if you're evaluating a runtime migration for reasons beyond raw performance.

The bigger story: the end of odd/even releases

For years, even-numbered Node releases became LTS after an initial period while odd-numbered releases stayed short-lived previews. Node.js 26 is explicitly the last release under that schedule — the project is moving to a yearly cadence, which will affect how teams plan upgrade cycles, LTS windows, and deprecation timelines going forward. Fewer, more consolidated upgrade events generally simplifies planning for teams that struggled with Node's tempo, but each yearly release will carry more changes, making thorough regression testing before upgrading more important than before.

What this means for long-running deployments

Don't expect a switch-flip fix for existing date-handling bugs. Adoption will be incremental: new code paths can start using Temporal immediately, but existing Date-based logic will likely coexist with Temporal-based logic for years in a typical enterprise codebase. The pragmatic approach is treating Temporal as the default for anything touched during regular maintenance, not launching a dedicated migration project to replace working code that isn't causing problems.

What to do now

  1. Start migrating date/time-heavy code paths to Temporal, piloting in non-critical paths first even if you're not on 26 in production yet.
  2. Test HTTP-dependent code against Undici 8.0 before broad rollout.
  3. Revisit any internal processes keyed to the odd/even LTS pattern before the mismatch surprises you.
  4. Audit third-party date-handling libraries for Temporal compatibility or replacement opportunities.
  5. Review your overall Node.js LTS strategy, especially for versions approaching end-of-life under the old schedule.
  6. Budget more regression-testing time per upgrade cycle as future yearly releases consolidate more changes.

Treat this release as an opportunity to modernize date-handling code and get ahead of the cadence shift, not as just another routine version bump.