1     Definition 2     Functional Requirements 3     Syntax
4     Semantics 5    Conformance Testing 6     Performance Assessment

1      Definition

A Data Type that specifies how an event or time interval repeats over time based on RFC 5545.

2      Functional Requirements

  1. Representation
  • RRULE SHALL represent recurrence rules as defined in RFC 5545.
  • RRULE SHALL support two equivalent representations:
    • Textual form: A single line string following RFC 5545 grammar (e.g., FREQ=DAILY;INTERVAL=2;BYDAY=MO,WE).
    • Structured form: A JSON object with explicit fields corresponding to RRULE components.
  1. Mandatory and Optional Components
  • Mandatory:
    • FREQ (Frequency): One of SECONDLY, MINUTELY, HOURLY, DAILY, WEEKLY, MONTHLY, YEARLY.
  • Optional:
    • INTERVAL (integer ≥ 1, default = 1).
    • UNTIL (date-time or date-only, RFC 5545 format).
    • COUNT (integer ≥ 1).
    • BYSECOND, BYMINUTE, BYHOUR (arrays of integers within valid ranges).
    • BYDAY (array of weekday codes, optionally with ordinals for monthly/yearly rules).
    • BYMONTHDAY, BYYEARDAY, BYWEEKNO, BYMONTH, BYSETPOS (arrays of integers within RFC ranges).
    • WKST (week start day, default = MO).
  1. Constraints
  • COUNT and UNTIL SHALL NOT both appear in the same RRULE.
  • Value ranges SHALL follow RFC 5545:
    • Seconds/Minutes: 0–59
    • Hours: 0–23
    • Month: 1–12
    • Monthday: −31..−1 or 1..31
    • Yearday: −366..−1 or 1..366
    • Weekno: −53..−1 or 1..53
  • BYDAY ordinals SHALL be allowed only for MONTHLY and YEARLY frequencies.
  1. Default Values
  • INTERVAL defaults to 1 if omitted.
  • WKST defaults to MO if omitted.

3      Syntax

https://schemas.mpai.community/OSD/V1.4/data/BBRULE.json

4      Semantics

Label Description
Header BBRULE Header
– Standard-RRL The characters “OSD-RRL-V”
– Version Major version – 1 or 2 characters
– Dot-separator The character “.”
– Subversion Minor version – 1 or 2 characters
MInstanceID Identifier of the RRULE instance (unique within its context).
RRULEID Globally unique identifier for this RRULE definition.
RRULEData Core recurrence rule data, including:
– FREQ  Frequency of recurrence (SECONDLY, MINUTELY, HOURLY, etc.).
– INTERVAL  Interval between recurrences (default = 1).
– UNTIL  End date/time for recurrence.
– COUNT  Number of occurrences.
– BYxxx  Arrays for filtering (BYDAY, BYMONTHDAY, BYMONTH, etc.).
– WKST  Week start day (default = MO).
DescrMetadata Descriptive metadata about this RRULE instance (e.g., human-readable label, notes, provenance).

5     Conformance Testing

A Data instance Conforms with OSD-RRL RRULE (OSD-RRL) if:

  1.  Its JSON Object validates against its JSON Schema.
  2. Any included  JSON Object validates against its JSON Schema.
  3. All Data in the JSON Object:
    1. Have the specified Data Types.
    2. Conform with the Qualifiers signaled in their JSON Schemas.

6     Performance Assessment