@touch4it/ical-timezones
Version:
iCal timezone component generator
106 lines (83 loc) • 2.58 kB
Markdown
# VTIMEZONE iCalendar component generator
[](https://github.com/touch4it/ical-timezones/blob/master/lib/LICENSE.md)
[](https://www.npmjs.com/package/@touch4it/ical-timezones)
[](https://www.npmjs.com/package/@touch4it/ical-timezones)
[](https://www.npmjs.com/package/@touch4it/ical-timezones)
[](https://github.com/touch4it/ical-timezones)
Library to generate RFC 5545 VTIMEZONE iCalendar component
## Usage
### Installation
```bash
npm install @touch4it/ical-timezones
```
```javascript
const tz = require('@touch4it/ical-timezones');
```
### Generate VTIMEZONE calendar object
```javascript
const vtimezone = tz.getVtimezone('Europe/Bratislava');
```
or
```javascript
const vtimezone = await tz.getVtimezoneAsync('Europe/Bratislava');
```
Generated output
```ical
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
```javascript
const vtimezone = tz.getVtimezoneComponent('Europe/Bratislava');
```
or
```javascript
const vtimezone = await tz.getVtimezoneComponentAsync('Europe/Bratislava');
```
Generated output
```ical
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