How it works
Every calculation runs in your browser. Offsets come from the browser’s built-in copy of the IANA time zone database through the Intl API, which browsers update with their own releases. Because browsers do not reveal which tz release they ship, the version is shown as host-managed and unknown rather than guessed. City names and abbreviations are mapped to zones by a small self-authored pack; that pack contains no offsets.
Local times are resolved to zero, one or two instants. Nothing is converted silently when a time is skipped or repeated by a clock change. Times are handled to the millisecond; the timestamp converter keeps nanosecond digits exactly. Leap seconds are not represented (POSIX time scale).
Feature status
Requirement IDs from the product specification. Labels: NATIVE (built on browser APIs), APPROX (heuristic, review required), UNSUPPORTED (not available).
| ID | Requirement | Status | Label | Notes |
|---|---|---|---|---|
| TZ-001 | Named-zone database | Done | NATIVE | Host Intl IANA rules; zone list via Intl.supportedValuesOf with fallback; legacy aliases mapped; tzdata version shown as host-managed/unknown in browsers. |
| TZ-002 | Date-specific conversion | Done | NATIVE | Source date/time/zone to any targets with date, weekday, offset, DST status and day-change badge. |
| TZ-003 | Ambiguous/nonexistent local times | Done | NATIVE | Gap/fold detection; ask, reject, earlier, later, compatible policies; unit-tested PRD vectors. |
| TZ-004 | Fixed-offset conversion | Done | NATIVE | Separate FixedZone type, labelled cards, same-offset explanation. |
| TZ-005 | City/zone search | Done | NATIVE | Self-authored mapping pack (≈170 cities, 40 abbreviations) with version; abbreviations always ask. |
| TZ-006 | Multi-zone comparison | Done | NATIVE | Target cards with shared-instant 24h ribbons, date/week/daylight context. |
| TZ-007 | World clock | Done | NATIVE | Device-clock source stated; pauses when hidden and re-reads on resume. |
| TZ-008 | Meeting overlap | Done | NATIVE | Working hours, weekdays, breaks, overnight intervals; worker search up to 50 people × 90 days, cancellable. |
| TZ-009 | Meeting fairness score | Done | NATIVE | Named editable weights, worst-off tie-break, per-person breakdown. |
| TZ-010 | Duration calculator | Done | NATIVE | Elapsed vs local calendar difference; 23/25-hour day length. |
| TZ-011 | Timestamp conversion | Done | NATIVE | s/ms/µs/ns explicit, BigInt precision, exact bounds, negative epochs, plausibility warnings. |
| TZ-012 | DST transition explorer | Done | NATIVE | Per-year transitions to the millisecond with gap/fold explanation and CSV. |
| TZ-013 | Saved zone groups | Done | NATIVE | IndexedDB, local only. |
| TZ-014 | Copy/share text | Done | NATIVE | Text includes dates, zones, offsets, ambiguity policy and rule source. No share links (avoids putting input in URLs). |
| TZ-015 | ICS event export | Partial | NATIVE | UTC or TZID+generated VTIMEZONE, escaping, folding, UID/SEQUENCE, date-only events, unit-tested. Import into specific calendar apps not yet tested and recorded (TZ-107). |
| TZ-016 | CSV/table export | Done | NATIVE | RFC 4180 with formula guarding; includes instants, local displays, policies and rule source. |
| TZ-017 | Offline operation | Partial | NATIVE | All calculations are local; service worker caches visited first-party assets. Rule data is the browser’s — staleness probed, not versioned. |
| TZ-018 | Locale/time format | Done | NATIVE | 12/24-hour preference independent of calculation; dates shown with month names. |
| TZ-019 | Recurring meeting preview | Done | NATIVE | Wall-time vs instant anchor across DST; daily/weekly/monthly; up to 520 occurrences. |
| TZ-020 | Recurrence exceptions | Done | NATIVE | Skip/shift/flag gaps, earlier/later folds, per-date exclusions retained. |
| TZ-021 | Working-time calculator | Partial | NATIVE | Breaks, weekdays, overnight, user closed dates. No holiday source (see TZ-022). |
| TZ-022 | Holiday packs | Not done | UNSUPPORTED | Roadmap. No holiday data is bundled or invented. |
| TZ-023 | Shift roster planner | Not done | UNSUPPORTED | Roadmap. Overnight intervals are supported in the meeting planner. |
| TZ-024 | Travel itinerary timeline | Done | NATIVE | User-entered legs, elapsed time, connections, chronology checks, CSV. |
| TZ-025 | Countdown/deadline | Done | NATIVE | Zone instant vs viewer-local deadline; device-clock limitation shown. |
| TZ-026 | Batch conversion | Done | NATIVE | Worker, 20k rows, per-row errors, explicit slash/AM-PM/offset-conflict/epoch policies. |
| TZ-027 | Cron schedule preview | Done | NATIVE | 5-field Unix dialect declared; gap/fold policy; Quartz rejected; test-vector export. |
| TZ-028 | Zone-rule comparison | Partial | NATIVE | Saved recurrence snapshot recomputed with current host rules and diffed. No downloadable rule packs to compare against. |
| TZ-029 | Reproducible project export | Done | NATIVE | Project JSON with inputs, choices, rule source and mapping-pack version; validated import. |
| TZ-030 | Offset/date mismatch repair | Done | NATIVE | Batch converter: reject / prefer offset / prefer zone. |
| TZ-031 | Calendar import inspection | Partial | NATIVE | Basic ICS subset inspector; recurrence properties reported, not expanded. |
| TZ-032 | Expanded historical packs | Not done | UNSUPPORTED | History limited to what the browser’s tz data contains. |
| TZ-033 | Team planning scenarios | Not done | UNSUPPORTED | Roadmap. |
| TZ-034 | Guaranteed future political rules | Excluded | UNSUPPORTED | Impossible; future results are qualified everywhere. |
| TZ-035 | Server alarms/live calendar sync | Excluded | UNSUPPORTED | Out of scope; ICS files are artifacts only. |
| TZ-101 | Availability exception editor | Partial | NATIVE | Closed dates in the working-hours tool; not yet per participant in the planner. |
| TZ-102 | Rotating meeting fairness | Partial | APPROX | Greedy rotation suggestion with stated weights; for review only. |
| TZ-103 | Date-only arithmetic | Done | NATIVE | Days/months with clamp or reject overflow. |
| TZ-104 | Time input ambiguity inspector | Partial | NATIVE | Batch parser explains locale dates, AM/PM and abbreviations; no standalone inspector screen. |
| TZ-105 | Precision/rounding controls | Partial | NATIVE | Timestamps keep ns exactly; batch reports truncated sub-ms digits. Engine precision is ms. |
| TZ-106 | Recurring event exception export | Partial | NATIVE | Finite expanded series omits excluded/skipped occurrences; no RRULE/EXDATE output. |
| TZ-107 | Calendar interoperability report | Not done | UNSUPPORTED | Needs recorded manual import tests. |
| TZ-108 | Zone alias migration | Partial | NATIVE | Legacy IDs resolve to current names; original input retained in batch rows. |
| TZ-109 | Future rule-change review | Partial | NATIVE | Snapshot diff for recurring series only. |
| TZ-110 | Historic offset inspector | Partial | NATIVE | DST calculator works for past years within host data; no provenance horizon. |
| TZ-111 | Elapsed vs business-time comparison | Done | NATIVE | Working-hours tool shows both side by side. |
| TZ-112 | Travel connection checks | Done | NATIVE | User-supplied minimum connection. |
| TZ-113 | Named-zone vs fixed-offset audit | Not done | UNSUPPORTED | Roadmap. |
| TZ-114 | Offline rule health screen | Partial | NATIVE | About page: engine, unknown version, behavioural freshness probes. |
| TZ-115 | Schedule test-vector export | Done | NATIVE | Recurring and cron JSON vectors with dialect caveats. |