Taming iCalendar Recurring Events with Distance Functions

2025-04-17
Taming iCalendar Recurring Events with Distance Functions

The author encountered a challenge in handling recurring events while implementing a library for processing iCalendar files. iCalendar uses complex rules to define recurring events, and traditional implementations typically involve writing a lot of specific logic for different frequencies and parameters. The author took a different approach, viewing recurrence rules as SQL queries and borrowing ideas from signed distance functions (SDFs) in computer graphics, representing event occurrences using distance functions. This method decomposes complex rules into simple distance functions, iteratively calculating event occurrence times to avoid numerous conditional judgments, resulting in cleaner and easier-to-maintain code. Although the initial implementation wasn't very efficient, the author optimized it to handle complex recurrence rules in milliseconds.

(pwy.io)