Skip to content

waratuman/rfc5545-rrule

Repository files navigation

RFC5545 RRule

RFC5545 RRule library for JavaScript.

Installation

Using NPM:

npm install rfc5545-rrule

Using Yarn:

yarn add rfc5545-rrule

Usage

Node.js

let { RRule, Day } = require("rfc5545-rrule");

let rrule = RRule.fromString("RRULE:FREQ=YEARLY;INTERVAL=4;BYMONTH=11;BYDAY=TU;BYMONTHDAY=2,3,4,5,6,7,8");

console.log(rrule);
// RRule {
//     interval: 4,
//     weekStart: 1,
//     frequency: 'yearly',
//     byMonth: [ 10 ],
//     byDay: [ Day { value: 2, nth: undefined } ],
//     byMonthDay: [ 2, 3, 4, 5, 6, 7, 8 ]
// }

// A recurrence that repeats every Sunday of the week.
rrule = new RRule({ frequency: "weekly", byDay: [ new Day(0) ] });
rrule.toString(); // RRULE:FREQ=WEEKLY;BYDAY=SU

TypeScript

import { RRule } = from "rfc5545-rrule";

let rrule = RRule.fromString("RRULE:FREQ=YEARLY;INTERVAL=4;BYMONTH=11;BYDAY=TU;BYMONTHDAY=2,3,4,5,6,7,8");

License

ICS

Development

Compiling the grammar

npx nearleyc ./src/grammar.ne -o ./src/grammar.ts

Update ./src/grammar.ts to export ParserRules and ParserStart. Also, remove the wrapping function and export at the bottom of the file.

npm run compile