@touch4it/ical-timezones

iCal timezone component generator

Usage no npm install needed!

<script type="module">
  import touch4itIcalTimezones from 'https://cdn.skypack.dev/@touch4it/ical-timezones';
</script>

README

VTIMEZONE iCalendar component generator

GitHub license npm version node version vulnerabilities last commit

Library to generate RFC 5545 VTIMEZONE iCalendar component

Usage

Installation

npm install @touch4it/ical-timezones
const tz = require('@touch4it/ical-timezones');

Generate VTIMEZONE calendar object

const vtimezone = tz.getVtimezone('Europe/Bratislava');

or

const vtimezone = await tz.getVtimezoneAsync('Europe/Bratislava');

Generated output

BEGIN:VCALENDAR
PRODID:-//tzurl.org//NONSGML Olson 2018g-rearguard//EN
VERSION:2.0
BEGIN:VTIMEZONE
TZID:Europe/Bratislava
TZURL:http://tzurl.org/zoneinfo-outlook/Europe/Bratislava
X-LIC-LOCATION:Europe/Bratislava
BEGIN:DAYLIGHT
TZOFFSETFROM:+0100
TZOFFSETTO:+0200
TZNAME:CEST
DTSTART:19700329T020000
RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU
END:DAYLIGHT
BEGIN:STANDARD
TZOFFSETFROM:+0200
TZOFFSETTO:+0100
TZNAME:CET
DTSTART:19701025T030000
RRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU
END:STANDARD
END:VTIMEZONE
END:VCALENDAR

Generate VTIMEZONE calendar component

const vtimezone = tz.getVtimezoneComponent('Europe/Bratislava');

or

const vtimezone = await tz.getVtimezoneComponentAsync('Europe/Bratislava');

Generated output

BEGIN:VTIMEZONE
TZID:Europe/Bratislava
TZURL:http://tzurl.org/zoneinfo-outlook/Europe/Bratislava
X-LIC-LOCATION:Europe/Bratislava
BEGIN:DAYLIGHT
TZOFFSETFROM:+0100
TZOFFSETTO:+0200
TZNAME:CEST
DTSTART:19700329T020000
RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU
END:DAYLIGHT
BEGIN:STANDARD
TZOFFSETFROM:+0200
TZOFFSETTO:+0100
TZNAME:CET
DTSTART:19701025T030000
RRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU
END:STANDARD
END:VTIMEZONE

Data sources

https://github.com/benfortuna/tzurl

https://github.com/champtar/z-push/blob/master/src/lib/utils/timezoneutil.php

http://www.healthstream.com/hlchelp/Administrator/Classes/HLC_Time_Zone_Abbreviations.htm