How about using a "view" to create a "lazy" sql recurrence.
For example: "FREQ=YEARLY;BYMONTH=3,6"
--- postgresql ---
CREATE TABLE YEARS ( N DATE UNIQUE PRIMARY KEY );
insert into years values ( date('1990-01-01') );
insert into years values ( date('1991-01-01') );
insert into years values ( date('1992-01-01') );
CREATE VIEW RECURR AS
select ( n + interval '2 month' ) from years union
select ( n + interval '5 month' ) from years;
----The sql statements could be generated automatically using a DateTime::Format module.
- Flavio
