DEV Community

Cover image for Show r/typescript: Chronera – zero-dep TS date engine with RFC 9557, Temporal ZonedDateTime, multi-cultural calendars
Pawapon Thammalangka
Pawapon Thammalangka

Posted on AI-assisted

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" }), });
Enter fullscreen mode Exit fullscreen mode

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

GitHub: https://github.com/INTECH-Software-House/chronera-js
NPM: https://www.npmjs.com/package/@intech-software/chronera

Top comments (0)