# jkbrzt/rrule

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/jkbrzt-rrule).**

_How this analysis was created: the description and tags below were written by an AI model that read this project's README and public documentation pages; stars, license and language come straight from the GitHub API. The model does not read the source code._

3,720 stars · 549 forks · TypeScript · NOASSERTION

## Links

- GitHub: https://github.com/jkbrzt/rrule
- Homepage: https://jkbrzt.github.io/rrule
- awesome-repositories: https://awesome-repositories.com/repository/jkbrzt-rrule.md

## Topics

`calendar` `icalendar-rfc` `jakubroztocil` `javascript` `library` `python-dateutil` `recurrence-rules` `rfc` `rrule` `typescript`

## Description

This project is a date recurrence engine and iCalendar recurrence rule library. It provides tools for calculating lists of event instances from complex scheduling rules, managing inclusion or exclusion date sets, and calculating recurring event dates across different geographic timezone offsets.

The library features a natural language calendar parser that translates human-readable text descriptions into structured iCalendar recurrence configurations and vice versa. It supports bidirectional serialization, converting recurrence rules and sets into RFC-compliant strings and parsing those strings back into structured objects.

The system covers calendar event scheduling, event timeline composition, and timezone-aware scheduling. It handles the generation of future dates based on defined intervals and boundaries while ensuring interoperability with other calendar systems.

## Tags

### Business & Productivity Software

- [Recurrence Scheduling Engines](https://awesome-repositories.com/f/business-productivity-software/recurrence-scheduling-engines.md) — Generates lists of future dates for recurring appointments based on complex rules, intervals, and date boundaries.
- [Natural Language Schedule Translators](https://awesome-repositories.com/f/business-productivity-software/natural-language-schedule-translators.md) — Translates structured recurrence configurations into natural language sentences and parses descriptions back into rule objects.
- [Temporal Recurrence Patterns](https://awesome-repositories.com/f/business-productivity-software/recurrence-pattern-mapping/temporal-recurrence-patterns.md) — Calculates and manages repeating event dates following the iCalendar RFC standard for cross-platform compatibility.
- [Complex Timeline Composers](https://awesome-repositories.com/f/business-productivity-software/recurrence-pattern-mapping/temporal-recurrence-patterns/complex-timeline-composers.md) — Combines multiple recurrence rules with specific inclusion and exclusion dates to build sophisticated event timelines. ([source](https://cdn.jsdelivr.net/gh/jkbrzt/rrule@master/README.md))
- [Recurrence Set Managers](https://awesome-repositories.com/f/business-productivity-software/recurrence-set-managers.md) — Determines the final date timeline by merging multiple recurrence rules with specific addition and subtraction lists.

### Artificial Intelligence & ML

- [Natural Language Date Parsing](https://awesome-repositories.com/f/artificial-intelligence-ml/natural-language-date-parsing.md) — Converts human-readable text descriptions of schedules into structured recurrence rules and vice versa.
- [Natural Language Scheduling](https://awesome-repositories.com/f/artificial-intelligence-ml/natural-language-scheduling.md) — Translates structured recurrence configurations into plain-language sentences to describe schedules. ([source](https://jkbrzt.github.io/rrule))
- [Recurrence Rule Translations](https://awesome-repositories.com/f/artificial-intelligence-ml/natural-language-structuring/recurrence-rule-translations.md) — Translates recurrence rules into human-readable text and parses natural language descriptions back into structured configurations. ([source](https://cdn.jsdelivr.net/gh/jkbrzt/rrule@master/README.md))

### Part of an Awesome List

- [iCalendar Format Serializers](https://awesome-repositories.com/f/awesome-lists/data/serialization-and-formats/icalendar-format-serializers.md) — Converts recurrence rules and sets into RFC compliant strings to ensure interoperability with other calendar systems. ([source](https://cdn.jsdelivr.net/gh/jkbrzt/rrule@master/README.md))

### Data & Databases

- [Natural Language Temporal Parsers](https://awesome-repositories.com/f/data-databases/temporal-data-converters/natural-language-temporal-parsers.md) — Provides a utility to convert human-readable date and time descriptions into structured iCalendar recurrence configurations.
- [iCalendar Feed Parsers](https://awesome-repositories.com/f/data-databases/external-data-integrations/external-feed-integrations/icalendar-feed-parsers.md) — Converts iCalendar strings or natural language descriptions into structured recurrence configurations. ([source](https://jkbrzt.github.io/rrule))
- [iCalendar Parsers](https://awesome-repositories.com/f/data-databases/external-data-integrations/external-feed-integrations/icalendar-parsers.md) — Parses RFC-compliant iCalendar strings into structured recurrence rule objects. ([source](https://cdn.jsdelivr.net/gh/jkbrzt/rrule@master/README.md))

### Development Tools & Productivity

- [Date Sequence Generators](https://awesome-repositories.com/f/development-tools-productivity/date-and-time-utilities/calendar-date-calculations/date-sequence-generators.md) — Calculates sequences of future dates by iteratively applying recurrence constraints and boundaries.
- [iCalendar Recurrence Libraries](https://awesome-repositories.com/f/development-tools-productivity/icalendar-recurrence-libraries.md) — Provides a comprehensive JavaScript library for parsing, serializing, and calculating dates based on iCalendar RFC recurrence rules.
- [UTC Offset Calculations](https://awesome-repositories.com/f/development-tools-productivity/timezone-configuration/timezone-offset-mappings/utc-offset-calculations.md) — Applies UTC offsets and timezone identifiers to ensure recurrence local times remain accurate. ([source](https://cdn.jsdelivr.net/gh/jkbrzt/rrule@master/README.md))

### Software Engineering & Architecture

- [Timezone-Aware Date Calculators](https://awesome-repositories.com/f/software-engineering-architecture/timezone-aware-date-calculators.md) — Implements a system for calculating recurring event dates while maintaining accuracy across different geographic timezone offsets.
- [Bidirectional Serialization Mappings](https://awesome-repositories.com/f/software-engineering-architecture/bidirectional-serialization-mappings.md) — Provides bidirectional mapping between internal recurrence configuration objects and RFC-compliant iCalendar strings.
- [RFC Rule Serializers](https://awesome-repositories.com/f/software-engineering-architecture/naming-conventions/named-constants/enum-definitions/rfc-rule-serializers.md) — Converts a recurrence configuration into a standardized string format that follows the iCalendar RFC. ([source](https://jkbrzt.github.io/rrule))
- [Timezone-Aware Datetime Storages](https://awesome-repositories.com/f/software-engineering-architecture/timezone-management/timezone-aware-date-rendering/timezone-aware-datetime-storages.md) — Adjusts and localizes datetime objects using timezone identifiers to maintain accuracy across different geographic regions.

### User Interface & Experience

- [Temporal Timeline Composition](https://awesome-repositories.com/f/user-interface-experience/animation-and-motion-systems/timeline-sequence-management/animation-timelines/temporal-timeline-composition.md) — Builds sophisticated schedules by combining multiple recurrence rules with specific inclusion and exclusion dates.

### DevOps & Infrastructure

- [Timezone-Aware Schedulers](https://awesome-repositories.com/f/devops-infrastructure/automation-orchestration/task-execution-frameworks/task-job-management/task-schedulers/delayed-task-scheduling/timed-event-scheduling/timezone-aware-schedulers.md) — Handles repeating events across geographic regions by calculating recurrence dates with specific timezone offsets.

### Programming Languages & Runtimes

- [String Parsing](https://awesome-repositories.com/f/programming-languages-runtimes/string-parsing.md) — Implements tokenization and parsing of iCalendar formatted text into structured data objects.
