Show r/typescript: Chronera - zero-dep TS date engine with RFC 9557, Temporal ZonedDateTime, multi-cultural calendars
DEV Community

Show r/typescript: Chronera - zero-dep TS date engine with RFC 9557, Temporal ZonedDateTime, multi-cultural calendars

Hey everyone! ๐Ÿ‘‹ Working with dates in JavaScript has always been notoriously tricky. While TC39 Temporal is exciting, full engine availability is still on the horizon. Meanwhile, handling multi-cultural calendars (Buddhist, Hijri, Solar) and cross-border settlement holidays often requires heavy polyfills or fragile custom math.

Over the past few weeks, our team built Chronera - an immutable, type-safe date, calendar, and timezone toolkit written strictly in TypeScript with Zero Runtime Dependencies.

Key Highlights

  • RFC 9557 (IXDTF) Compliant: Full parser and serializer for the new IETF standard bracketed timezone and calendar annotations (e.g. 2026-10-03T01:13:43+07:00[Asia/Bangkok][u-ca=buddhist]).
  • Temporal Alignment: ZonedDateTime implementation with DST disambiguation (compatible, earlier, later, reject) and dual-mode calendar/clock arithmetic.
  • Multi-Cultural Calendars: First-class support for Buddhist, Hijri (tabular & astronomical), Japanese Era (Reiwa/Heisei), Persian, ROC, and Indian National calendars.
  • Cross-Border Holiday Engine: Supports simultaneous multi-region settlements (e.g. isBusinessDay(date, ["US", "SG"])) and custom corporate off-day/compensation overrides.
  • Fast-path Zero Allocation: Benchmarked at 13.5M ops/sec for ISO parsing and 22M ops/sec for instant instantiation (1.5x-1.6x faster than native Date).
  • Ecosystem Ready: First-class Zod schema helper (@intech-software/chronera/zod) for form validation and DTOs.
  • Modular Exports: Subpath splitting (./calendar, ./format, ./parse, ./holidays, ./scheduling, ./zod). The parse entry point is only 3.5 kB (Brotli).

Quick Example

import { chronera } from "@intech-software/chronera";
import { zChronera } from "@intech-software/chronera/zod";

// Fluent date manipulation
const d = chronera("2026-10-03T01:13:43+07:00[Asia/Bangkok][u-ca=buddhist]")
  .addBusinessDays(3, ["TH", "SG"]);

console.log(d.toIXDTF());

// Zod form validation
const formSchema = z.object({
  scheduledAt: zChronera({ future: true, businessDay: "TH" }),
});

We would love to hear your thoughts, architectural feedback, and feature suggestions!

Read on DEV Community ↗ ← Back to News

Comments

No comments yet. Start the discussion.