RRules (yes handling RSCALE) using only PL/pgSQL
9 days ago
- #RRULE
- #PostgreSQL
- #iCalendar
- Pure PL/pgSQL implementation of iCalendar RRULE (RFC 5545) for PostgreSQL without C extensions.
- Key features include full timezone support with DST handling, consistent behavior across environments, and production readiness with a comprehensive test suite.
- Offers 50-75x faster performance than Node.js for single-schedule operations and supports batch processing for multiple schedules.
- Compatible with various PostgreSQL services like Google AlloyDB, Amazon Aurora, and Azure Database for PostgreSQL.
- Includes standard RRULE patterns (DAILY, WEEKLY, MONTHLY, YEARLY) and supports sub-day operations (HOURLY, MINUTELY, SECONDLY) with security warnings.
- Provides functions for generating and querying occurrences, utilities for counting and checking overlaps, and supports both TIMESTAMP and TIMESTAMPTZ.
- Installation is simple with a single SQL file and includes detailed documentation for usage, API reference, and compliance with RFC standards.
- Encourages contributions with guidelines for testing, documentation updates, and adherence to RFC specifications.
- Performance advantages include set-based batch operations, streaming results, and early-exit optimizations.
- Requires PostgreSQL 12 or higher with no external dependencies or C extensions.