Structural basics
ISO 8601 keeps the pieces in a rigid order: YYYY-MM-DDThh:mm:ss. Add fractions if you need sub-second precision.
Finish with a timezone marker—Z for UTC, or an offset like +02:00 / -07:00. Because the format never flips (year → month → day), a sorted list of strings is already chronological.
Examples worth memorizing
Example: Deployment notice
“Deployment window: 2026-03-10T01:00:00Z–2026-03-10T02:00:00Z.” UTC plus the dash makes the interval unambiguous. If stakeholders insist on local context, append “(20:00–21:00 New York)” but keep the ISO span as the source of truth.
Example: Local offset string
“Office hours: 2026-04-05T09:00:00+10:00.” The offset tells everyone you’re speaking in Australian Eastern Daylight Time. When clocks change, you either update to +09:00 or switch to UTC so you’re not rewriting invites every equinox.
Parsing and validation
Never trust a colleague’s locale settings. Browser Date.parse() behaves differently across engines. Paste the string into the Epoch converter instead: it validates the structure, shows the epoch equivalent, and lets you clone the timestamp into another timezone instantly.
For batch work, lean on battle-tested libraries (Luxon, Temporal, date-fns) that explicitly target ISO 8601 rather than homemade parsing.
Durations and recurrences
ISO 8601 isn’t just timestamps. Durations like P3DT4H mean “3 days, 4 hours,” and recurrence blocks such as R5/2026-02-22T10:00:00Z/P1D appear in ICS feeds all the time. Decode them by splitting on the slash: the first part is repeats (R + count), the second is the start instant, and the third is the period.
Common mistakes
- Skipping the timezone indicator and assuming everyone knows which city you meant.
- Mixing slashes with hyphens (02/22/2026) so half your audience flips month and day.
- Dropping the colon in offsets or using lowercase z—strict ISO expects
+05:30and uppercase letters.
Patterns you should keep handy
Date only: 2026-02-22 — use for deadlines measured in whole days.
Date + time UTC: 2026-02-22T18:45:00Z — runbooks, deploy windows, audit trails.
Date + local offset: 2026-02-22T18:45:00-05:00 — events tied to a specific city’s legal time (contractual maintenance, payroll). Keep these snippets in your clipboard manager so you’re not retyping every time.
Try the tools
Related guides
FAQ
- Can I omit seconds?
-
Yes. ISO allows
2026-02-22T18:45Z. Include seconds when precision matters to avoid assumptions. - What is the lowercase t I see sometimes?
-
Some systems accept lowercase
tandz. Stick to uppercase for reliability. - Why do ICS files look different?
- ICS uses a compact form (e.g., 20260222T184500Z). It is still ISO 8601 under the hood, just without dashes and colons.
Need to translate another timestamp? Use the Epoch converter.