rrule-to-webex

0.1.0 • Public • Published

rrule-to-webex Build Status Coverage Status Stellaris Module

Converts iCalendar RFC-5545 recurrence rule to Cisco's WebEx XML <repeat> XML sub tree

This module uses RRule.js to process iCalendar RFC RRule strings, therefore it also supports the ability to create <repeat> trees with RRule.js's objects. It's recommended to please go over the documentation to understand some of the differences between iCalendar RFC.

Install

$ npm install --save rrule-to-webex

Usage

const convert = require('rrule-to-webex');
 
const RFCString = "FREQ=WEEKLY;INTERVAL=5;UNTIL=20130130T230000Z;BYDAY=MO,FR";
 
convert(RFCString);
// === Output ===
// <repeat>
//    <repeatType>WEEKLY</repeatType>
//    <interval>5</interval>
//    <expirationDate>01/30/2013 17:00:00</expirationDate>
//    <dayInWeek>
//      <day>MONDAY</day>
//      <day>FRIDAY</day>
//    </dayInWeek>
// </repeat>

Supported RFC Reccur Parts

WebEx only supports a subset of the available (RFC iCalendar Recurrence parts](https://tools.ietf.org/html/rfc5545#section-3.3.10), this module attempts to map the available properties as defined in the repeat schema below to their iCalendar counter parts.

Repeat Schema

Caveats:

  • dayInYear is deprecated, thus is not supported by this module

API

rruleToWebEx(RRule)

Returns a XML tree defined by the WebEx repeat schema.

RRule

Type: string (iCalendar RFC String) || object (RRule.js Object)

The iCalendar String or RRule.js object to be converted

Specific Methods

rrule-to-webex also provides access to particular RRule conversion methods for custom uses and individual part conversion.

.freq(frequencyTypes)

frequencyTypes

Type: RRule.[WEEKlY, DAILY, MONTHLY, YEARLY]

.count(number)

number

Type: number
Range: 1 ... 999

.interval(number)

number

Type: number
Range: 1 .. 99

.byweekday(weekday)

weekday

Type: RRule.[MO, TU, WE, TH, FR, SA]
Range: 1 .. 99

.bymonthday(number)

number

Type: number
Range: 1 .. 99

.until(date)

date

Uses moment.js to parse date strings

Type: date object || date string (ISO 8601, RFC 2822, new Date(dateString))

Stellaris Related Modules

This project is part of the Stellaris Ecosystem ✨, where you can find similar Cisco Collaboration modules to help facilitate in your development projects.

  • cisco-tp-client - A Node.js API client to interact with Cisco TelePresence endpoints/codecs (sx series, dx series, ex series)
  • tp-json-formatter - A module that formats HTTP Feedback JSON responses from Cisco TelePresence units in a simpler, flatter JSON format.

License

MIT © Cisco Innovation Edge

Package Sidebar

Install

npm i rrule-to-webex

Weekly Downloads

0

Version

0.1.0

License

MIT

Last publish

Collaborators

  • brh55