forceCalendar
API Reference

RRuleParser

API reference for the RRuleParser static class.

import { RRuleParser } from '@forcecalendar/core';

All methods are static.

Methods

MethodSignatureReturns
parse(rrule: string | object) => RuleParsed rule object
buildRRule(rule: Rule) => stringRRULE string
getDescription(rule: Rule) => stringHuman-readable text

Rule Object Shape

interface Rule {
  freq: 'SECONDLY' | 'MINUTELY' | 'HOURLY' | 'DAILY' | 'WEEKLY' | 'MONTHLY' | 'YEARLY';
  interval: number;       // >= 1
  count: number | null;
  until: Date | null;
  byDay: string[];        // e.g., ['MO', '2TU', '-1FR']
  byWeekNo: number[];     // 1-53 or -53 to -1
  byMonth: number[];      // 1-12
  byMonthDay: number[];   // 1-31 or -31 to -1
  byYearDay: number[];    // 1-366 or -366 to -1
  bySetPos: number[];
  byHour: number[];       // 0-23
  byMinute: number[];     // 0-59
  bySecond: number[];     // 0-59
  wkst: string;           // Default 'MO'
  exceptions: Date[];
  tzid: string | null;
}

Private Methods

MethodSignatureDescription
parseFrequency(freq: string) => stringValidate frequency
parseByDay(value: string) => string[]Parse BYDAY
parseIntList(value: string) => number[]Parse integer CSV
parseDateTime(value: string) => DateParse RFC 5545 date
parseExceptionDates(value: string) => Date[]Parse EXDATE
validateRule(rule: Rule) => RuleValidate and clamp
formatDateTime(date: Date) => stringFormat as YYYYMMDDTHHMMSSZ