HTTP/1.1 200 OK Date: Dow, 01 Jan 2000 00:00:00 GMT DAV: 1, 2, 3, access-control, calendar-access, calendar-schedule DAV: extended-mkcol, calendar-proxy, bind, addressbook, calendar-auto-schedule Content-Length: 7623 Content-Type: text/plain #!/usr/bin/php Testing the RRule v2 Library =~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~= 20061103T073000 - RRULE:FREQ=DAILY;COUNT=7 Daily for 7 days PHP & SQL results are identical (-: =~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~= 20061102T100000 - RRULE:FREQ=WEEKLY;COUNT=26;INTERVAL=1;BYDAY=TH Weekly for 26 weeks PHP & SQL results are identical (-: =~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~= 20061103T160000 - RRULE:FREQ=WEEKLY;INTERVAL=2;COUNT=4 Fortnightly for 4 events PHP & SQL results are identical (-: =~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~= 20061103T160000 - RRULE:FREQ=WEEKLY;INTERVAL=2;UNTIL=20071122T235900 Fortnightly for 28 events PHP & SQL results are identical (-: =~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~= 20081101T160000 - RRULE:FREQ=WEEKLY;COUNT=15;INTERVAL=1;BYDAY=MO,WE,FR 3/wk for 5 weeks PHP & SQL results are identical (-: =~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~= 20061104T073000 - RRULE:FREQ=MONTHLY Monthly forever PHP & SQL results are identical (-: =~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~= 20061117T073000 - RRULE:FREQ=MONTHLY;BYDAY=1MO,2WE,3FR,-1SU Monthly, on the 1st monday, 2nd wednesday, 3rd friday and last sunday, forever PHP & SQL results are identical (-: =~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~= 20061107T113000 - RRULE:FREQ=MONTHLY;BYDAY=MO,TU,WE,TH,FR;UNTIL=20070101T000000 The working days of each month PHP & SQL results are identical (-: =~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~= 20061107T113000 - RRULE:FREQ=MONTHLY;BYDAY=MO,TU,WE,TH,FR;BYSETPOS=-1;COUNT=30 The last working day of each month PHP & SQL results are identical (-: =~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~= 20081020T103000 - RRULE:FREQ=MONTHLY;BYDAY=MO,TU,WE,TH,FR;COUNT=30 Every working day PHP & SQL results are identical (-: =~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~= 20081020T110000 - RRULE:FREQ=DAILY;INTERVAL=1;BYDAY=MO,TU,WE,TH,FR;COUNT=30 Every working day PHP & SQL results are identical (-: =~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~= 20110831 - RRULE:FREQ=MONTHLY;BYMONTHDAY=-1 The last day of each month PHP & SQL results are identical (-: =~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~= 20081001T133000 - RRULE:FREQ=MONTHLY;INTERVAL=1;BYDAY=1TU,2WE,3TH,4FR;BYMONTH=3,6,9,10,12 1st Tuesday, 2nd Wednesday, 3rd Thursday & 4th Friday, every March, June, September, October and December (SQL is wrong) PHP & SQL results differ :-( PHP Result: 2008-10-07 13:30:00 2008-10-08 13:30:00 2008-10-16 13:30:00 2008-10-24 13:30:00 2008-12-02 13:30:00 2008-12-10 13:30:00 2008-12-18 13:30:00 2008-12-26 13:30:00 2009-03-03 13:30:00 2009-03-11 13:30:00 2009-03-19 13:30:00 2009-03-27 13:30:00 2009-06-02 13:30:00 2009-06-10 13:30:00 2009-06-18 13:30:00 2009-06-26 13:30:00 2009-09-01 13:30:00 2009-09-09 13:30:00 2009-09-17 13:30:00 2009-09-25 13:30:00 2009-10-06 13:30:00 2009-10-14 13:30:00 2009-10-15 13:30:00 2009-10-23 13:30:00 2009-12-01 13:30:00 2009-12-09 13:30:00 2009-12-17 13:30:00 2009-12-25 13:30:00 2010-03-02 13:30:00 2010-03-10 13:30:00 SQL Result: 2008-10-07 13:30:00 2008-10-08 13:30:00 2008-10-16 13:30:00 2008-10-24 13:30:00 2008-11-04 13:30:00 2008-11-12 13:30:00 2008-11-20 13:30:00 2008-11-28 13:30:00 2008-12-02 13:30:00 2008-12-10 13:30:00 2008-12-18 13:30:00 2008-12-26 13:30:00 2009-01-06 13:30:00 2009-01-14 13:30:00 2009-01-15 13:30:00 2009-01-23 13:30:00 2009-02-03 13:30:00 2009-02-11 13:30:00 2009-02-19 13:30:00 2009-02-27 13:30:00 2009-03-03 13:30:00 2009-03-11 13:30:00 2009-03-19 13:30:00 2009-03-27 13:30:00 2009-04-07 13:30:00 2009-04-08 13:30:00 2009-04-16 13:30:00 2009-04-24 13:30:00 2009-05-05 13:30:00 2009-05-13 13:30:00 =~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~= 20081017T084500 - RRULE:FREQ=MONTHLY;INTERVAL=1;BYDAY=TU,FR;COUNT=30 Every tuesday and friday PHP & SQL results are identical (-: =~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~= 20081017T084500 - RRULE:FREQ=WEEKLY;INTERVAL=1;BYDAY=TU,FR;COUNT=30 Every tuesday and friday PHP & SQL results are identical (-: =~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~= 20081017T084500 - RRULE:FREQ=DAILY;INTERVAL=1;BYDAY=TU,FR;COUNT=30 Every tuesday and friday PHP & SQL results are identical (-: =~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~= 19700315T030000 - FREQ=YEARLY;INTERVAL=1;BYDAY=3SU;BYMONTH=3 Time zone 1 PHP & SQL results differ :-( PHP Result: 1970-03-15 03:00:00 1971-03-21 03:00:00 1972-03-19 03:00:00 1973-03-18 03:00:00 1974-03-17 03:00:00 1975-03-16 03:00:00 1976-03-21 03:00:00 1977-03-20 03:00:00 1978-03-19 03:00:00 1979-03-18 03:00:00 1980-03-16 03:00:00 1981-03-15 03:00:00 1982-03-21 03:00:00 1983-03-20 03:00:00 1984-03-18 03:00:00 1985-03-17 03:00:00 1986-03-16 03:00:00 1987-03-15 03:00:00 1988-03-20 03:00:00 1989-03-19 03:00:00 1990-03-18 03:00:00 1991-03-17 03:00:00 1992-03-15 03:00:00 1993-03-21 03:00:00 1994-03-20 03:00:00 1995-03-19 03:00:00 1996-03-17 03:00:00 1997-03-16 03:00:00 1998-03-15 03:00:00 1999-03-21 03:00:00 SQL Result: 1970-03-15 03:00:00 1971-03-21 03:00:00 1972-03-19 03:00:00 1973-03-18 03:00:00 1974-03-17 03:00:00 1975-03-16 03:00:00 1976-03-21 03:00:00 1977-03-20 03:00:00 1978-03-19 03:00:00 1979-03-18 03:00:00 1980-03-16 03:00:00 1981-03-15 03:00:00 1982-03-21 03:00:00 1983-03-20 03:00:00 1984-03-18 03:00:00 1985-03-17 03:00:00 1986-03-16 03:00:00 1987-03-15 03:00:00 1988-03-20 03:00:00 1989-03-19 03:00:00 1990-03-18 02:00:00 1991-03-17 02:00:00 1992-03-15 02:00:00 1993-03-21 02:00:00 1994-03-20 02:00:00 1995-03-19 02:00:00 1996-03-17 02:00:00 1997-03-16 02:00:00 1998-03-15 02:00:00 1999-03-21 02:00:00 =~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~= 19700927T020000 - FREQ=YEARLY;INTERVAL=1;BYDAY=-1SU;BYMONTH=9 Time zone 2 PHP & SQL results are identical (-: =~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~= 19810329T030000 - FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU Time zone 3 PHP & SQL results are identical (-: =~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~= 20000404T010000 - FREQ=YEARLY;BYDAY=1SU;BYMONTH=4;COUNT=15 Time zone 4 PHP & SQL results are identical (-: =~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~= 20110905 - FREQ=DAILY;BYDAY=MO,TU,WE,TH,FR;COUNT=6 Six Working Days PHP & SQL results are identical (-: =~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~= 20110905 - FREQ=WEEKLY;BYDAY=MO,TU,WE,TH,FR;COUNT=6 Six Working Days PHP & SQL results are identical (-: