
This talk was given at ViennaJS January 2026 by Marcel Maßmann.
Working with dates and times in JavaScript has always been… complicated. new Date() looks simple, but quickly turns into a source of bugs, confusion, and timezone-related headaches. Adding days, comparing times, or reasoning about “what date is it really?” often requires defensive coding or third-party libraries.
Temporal is a new JavaScript API designed to fix this.
In this talk, we’ll explore what Temporal is, why it exists, and which long-standing problems it solves compared to Date. We’ll look at how Temporal makes time arithmetic predictable, how it models concepts like instants, calendar dates, durations, and time zones explicitly, and how it can replace much of the functionality we currently rely on external libraries for.
We’ll also cover how Temporal interoperates with legacy Date objects, and— most importantly — what mental model you need to use it correctly. You’ll leave with a clear understanding of when to use Temporal.Instant, Temporal.PlainDate, or Temporal.ZonedDateTime, and when Temporal is not the right tool.
If you’ve ever been bitten by time zones, off-by-one-day bugs, or confusing date math, it’s about time we talked about Temporal.