icalzone

iCalzone is a light-weight VTIMEZONE provider

Usage no npm install needed!

<script type="module">
  import icalzone from 'https://cdn.skypack.dev/icalzone';
</script>

README

iCalzone πŸ—“πŸŒŽ

Build Status NPM version Size MIT License

iCalzone is a light-weight utility written in TypeScript that resolves time zone strings to iCalendar-compatible VTIMEZONE components fast.

All time zone information is stored in-memory and rendered on demand.

The time zone data is based on @touch4it/ical-timezones, but reduced and somewhat compressed. Opposed to @touch4it/ical-timezones, this library does not require runtime disk access to look up and parse ICS files, which makes iCalzone much faster, although a bit more memory may be used, of course.

To look up a time zone, you must use the TZ database name with the two-part format */*, such as America/Los_Angeles or Etc/UTC.

πŸ“¦ Installation

yarn add icalzone
# or
npm install icalzone

⚑️ Quick Start

import { getZoneLines, getZoneString } from 'icalzone';

const asArray = getZoneLines('Europe/London');
console.log(asArray);
/*
[
  'BEGIN:VTIMEZONE',
  'TZID:Europe/London',
  'BEGIN:STANDARD',
  'TZNAME:GMT',
  'TZOFFSETFROM:+0100',
  'TZOFFSETTO:+0000',
  'DTSTART:19701025T020000',
  'RRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU',
  'END:STANDARD',
  'BEGIN:DAYLIGHT',
  'TZNAME:BST',
  'TZOFFSETFROM:+0000',
  'TZOFFSETTO:+0100',
  'DTSTART:19700329T010000',
  'RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU',
  'END:DAYLIGHT',
  'END:VTIMEZONE'
]
*/

const asString = getZoneString('America/Los_Angeles');
console.log(asString);
/*
BEGIN:VTIMEZONE
TZID:America/Los_Angeles
BEGIN:STANDARD
TZNAME:PST
TZOFFSETFROM:-0700
TZOFFSETTO:-0800
DTSTART:19701101T020000
RRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU
END:STANDARD
BEGIN:DAYLIGHT
TZNAME:PDT
TZOFFSETFROM:-0800
TZOFFSETTO:-0700
DTSTART:19700308T020000
RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU
END:DAYLIGHT
END:VTIMEZONE
*/

Tip: If you don’t need the opening BEGIN:VTIMEZONE and closing END:VTIMEZONE lines, set the second optional argument of either function to false.