[3733] | 1 | -- -------------------------------------------------------------------- |
---|
| 2 | -- This file is a set of tests for the RRULE sql functions taken from |
---|
| 3 | -- the examples in RFC2445 section 4.8.5.4 |
---|
| 4 | -- -------------------------------------------------------------------- |
---|
| 5 | -- -------------------------------------------------------------------- |
---|
| 6 | -- Daily for 10 occurrences: |
---|
| 7 | -- |
---|
| 8 | -- DTSTART;TZID=US-Eastern:19970902T090000 |
---|
| 9 | -- RRULE:FREQ=DAILY;COUNT=10 |
---|
| 10 | -- |
---|
| 11 | -- ==> (1997 9:00 AM EDT)September 2-11 |
---|
| 12 | --- SET timezone TO 'US/Eastern'; SELECT * FROM event_instances('19970902T090000', 'FREQ=DAILY;COUNT=10' ); |
---|
| 13 | -- |
---|
| 14 | -- -------------------------------------------------------------------- |
---|
| 15 | -- Daily until December 24, 1997: |
---|
| 16 | -- |
---|
| 17 | -- DTSTART;TZID=US-Eastern:19970902T090000 |
---|
| 18 | -- RRULE:FREQ=DAILY;UNTIL=19971224T000000Z |
---|
| 19 | -- |
---|
| 20 | -- ==> (1997 9:00 AM EDT)September 2-30;October 1-25 |
---|
| 21 | -- (1997 9:00 AM EST)October 26-31;November 1-30;December 1-23 |
---|
| 22 | --- SET timezone TO 'US/Eastern'; SELECT * FROM event_instances('19970902T090000', 'FREQ=DAILY;UNTIL=19971224T000000' ); |
---|
| 23 | -- |
---|
| 24 | -- -------------------------------------------------------------------- |
---|
| 25 | -- Every other day - forever: |
---|
| 26 | -- |
---|
| 27 | -- DTSTART;TZID=US-Eastern:19970902T090000 |
---|
| 28 | -- RRULE:FREQ=DAILY;INTERVAL=2 |
---|
| 29 | -- ==> (1997 9:00 AM EDT)September2,4,6,8...24,26,28,30; |
---|
| 30 | -- October 2,4,6...20,22,24 |
---|
| 31 | -- (1997 9:00 AM EST)October 26,28,30;November 1,3,5,7...25,27,29; |
---|
| 32 | -- Dec 1,3,... |
---|
| 33 | -- |
---|
| 34 | --- SET timezone TO 'US/Eastern'; SELECT * FROM event_instances('19970902T090000', 'FREQ=DAILY;INTERVAL=2' ) LIMIT 50; |
---|
| 35 | -- -------------------------------------------------------------------- |
---|
| 36 | -- Every 10 days, 5 occurrences: |
---|
| 37 | -- |
---|
| 38 | -- DTSTART;TZID=US-Eastern:19970902T090000 |
---|
| 39 | -- RRULE:FREQ=DAILY;INTERVAL=10;COUNT=5 |
---|
| 40 | -- |
---|
| 41 | -- ==> (1997 9:00 AM EDT)September 2,12,22;October 2,12 |
---|
| 42 | -- |
---|
| 43 | --- SET timezone TO 'US/Eastern'; SELECT * FROM event_instances('19970902T090000', 'FREQ=DAILY;INTERVAL=10;COUNT=5' ); |
---|
| 44 | -- -------------------------------------------------------------------- |
---|
| 45 | -- Everyday in January, for 3 years: |
---|
| 46 | -- |
---|
| 47 | -- DTSTART;TZID=US-Eastern:19980101T090000 |
---|
| 48 | -- RRULE:FREQ=YEARLY;UNTIL=20000131T090000Z; |
---|
| 49 | -- BYMONTH=1;BYDAY=SU,MO,TU,WE,TH,FR,SA |
---|
| 50 | -- or |
---|
| 51 | -- RRULE:FREQ=DAILY;UNTIL=20000131T090000Z;BYMONTH=1 |
---|
| 52 | -- |
---|
| 53 | -- ==> (1998 9:00 AM EDT)January 1-31 |
---|
| 54 | -- (1999 9:00 AM EDT)January 1-31 |
---|
| 55 | -- (2000 9:00 AM EDT)January 1-31 |
---|
| 56 | -- |
---|
| 57 | --- ? No instance on January 31, since 9:00am EDT is after 2000-01-31 09:00:00 UTC. I think that is correct. |
---|
| 58 | --- ? SET timezone TO 'US/Eastern'; SELECT * FROM event_instances('19980101T090000', 'FREQ=YEARLY;UNTIL=20000131T090000Z;BYMONTH=1;BYDAY=SU,MO,TU,WE,TH,FR,SA' ); |
---|
| 59 | --- ? No instance on January 31, since 9:00am EDT is after 2000-01-31 09:00:00 UTC. I think that is correct. |
---|
| 60 | --- ? SET timezone TO 'US/Eastern'; SELECT * FROM event_instances('19980101T090000', 'FREQ=DAILY;UNTIL=20000131T090000Z;BYMONTH=1' ); |
---|
| 61 | -- -------------------------------------------------------------------- |
---|
| 62 | -- Weekly for 10 occurrences |
---|
| 63 | -- |
---|
| 64 | -- DTSTART;TZID=US-Eastern:19970902T090000 |
---|
| 65 | -- RRULE:FREQ=WEEKLY;COUNT=10 |
---|
| 66 | -- |
---|
| 67 | -- ==> (1997 9:00 AM EDT)September 2,9,16,23,30;October 7,14,21 |
---|
| 68 | -- (1997 9:00 AM EST)October 28;November 4 |
---|
| 69 | --- SET timezone TO 'US/Eastern'; SELECT * FROM event_instances('19970902T090000', 'FREQ=WEEKLY;COUNT=10' ); |
---|
| 70 | -- |
---|
| 71 | -- -------------------------------------------------------------------- |
---|
| 72 | -- Weekly until December 24, 1997 |
---|
| 73 | -- |
---|
| 74 | -- DTSTART;TZID=US-Eastern:19970902T090000 |
---|
| 75 | -- RRULE:FREQ=WEEKLY;UNTIL=19971224T000000Z |
---|
| 76 | -- |
---|
| 77 | -- ==> (1997 9:00 AM EDT)September 2,9,16,23,30;October 7,14,21 |
---|
| 78 | -- (1997 9:00 AM EST)October 28;November 4,11,18,25; |
---|
| 79 | -- December 2,9,16,23 |
---|
| 80 | --- SET timezone TO 'US/Eastern'; SELECT * FROM event_instances('19970902T090000', 'FREQ=WEEKLY;UNTIL=19971224T000000Z' ); |
---|
| 81 | -- |
---|
| 82 | -- -------------------------------------------------------------------- |
---|
| 83 | -- Every other week - forever: |
---|
| 84 | -- |
---|
| 85 | -- DTSTART;TZID=US-Eastern:19970902T090000 |
---|
| 86 | -- RRULE:FREQ=WEEKLY;INTERVAL=2;WKST=SU |
---|
| 87 | -- |
---|
| 88 | -- ==> (1997 9:00 AM EDT)September 2,16,30;October 14 |
---|
| 89 | -- (1997 9:00 AM EST)October 28;November 11,25;December 9,23 |
---|
| 90 | -- (1998 9:00 AM EST)January 6,20;February 3, 17 |
---|
| 91 | -- ... |
---|
| 92 | --- SET timezone TO 'US/Eastern'; SELECT * FROM event_instances('19970902T090000', 'FREQ=WEEKLY;INTERVAL=2;WKST=SU' ) LIMIT 13; |
---|
| 93 | -- |
---|
| 94 | -- -------------------------------------------------------------------- |
---|
| 95 | -- Weekly on Tuesday and Thursday for 5 weeks: |
---|
| 96 | -- |
---|
| 97 | -- DTSTART;TZID=US-Eastern:19970902T090000 |
---|
| 98 | -- RRULE:FREQ=WEEKLY;UNTIL=19971007T000000Z;WKST=SU;BYDAY=TU,TH |
---|
| 99 | -- or |
---|
| 100 | -- RRULE:FREQ=WEEKLY;COUNT=10;WKST=SU;BYDAY=TU,TH |
---|
| 101 | -- |
---|
| 102 | -- ==> (1997 9:00 AM EDT)September 2,4,9,11,16,18,23,25,30;October 2 |
---|
| 103 | --- SET timezone TO 'US/Eastern'; SELECT * FROM event_instances('19970902T090000', 'FREQ=WEEKLY;UNTIL=19971007T000000Z;WKST=SU;BYDAY=TU,TH' ); |
---|
| 104 | --- SET timezone TO 'US/Eastern'; SELECT * FROM event_instances('19970902T090000', 'FREQ=WEEKLY;COUNT=10;WKST=SU;BYDAY=TU,TH' ); |
---|
| 105 | -- |
---|
| 106 | -- -------------------------------------------------------------------- |
---|
| 107 | -- Every other week on Monday, Wednesday and Friday until December 24, |
---|
| 108 | -- 1997, but starting on Tuesday, September 2, 1997: |
---|
| 109 | -- |
---|
| 110 | -- DTSTART;TZID=US-Eastern:19970902T090000 |
---|
| 111 | -- RRULE:FREQ=WEEKLY;INTERVAL=2;UNTIL=19971224T000000Z;WKST=SU; |
---|
| 112 | -- BYDAY=MO,WE,FR |
---|
| 113 | -- ==> (1997 9:00 AM EDT)September 2,3,5,15,17,19,29;October |
---|
| 114 | -- 1,3,13,15,17 |
---|
| 115 | -- (1997 9:00 AM EST)October 27,29,31;November 10,12,14,24,26,28; |
---|
| 116 | -- December 8,10,12,22 |
---|
| 117 | -- !!! This is challenging, because it starts on DTSTART even though DTSTART fails the repeat criteria. In fact no known provide a UI that allows data like this to be created. |
---|
| 118 | --- !!! SET timezone TO 'US/Eastern'; SELECT * FROM event_instances('19970902T090000', 'FREQ=WEEKLY;INTERVAL=2;UNTIL=19971224T000000Z;WKST=SU;BYDAY=MO,WE,FR' ); |
---|
| 119 | -- |
---|
| 120 | -- -------------------------------------------------------------------- |
---|
| 121 | -- Every other week on Tuesday and Thursday, for 8 occurrences: |
---|
| 122 | -- |
---|
| 123 | -- DTSTART;TZID=US-Eastern:19970902T090000 |
---|
| 124 | -- RRULE:FREQ=WEEKLY;INTERVAL=2;COUNT=8;WKST=SU;BYDAY=TU,TH |
---|
| 125 | -- |
---|
| 126 | -- ==> (1997 9:00 AM EDT)September 2,4,16,18,30;October 2,14,16 |
---|
| 127 | --- SET timezone TO 'US/Eastern'; SELECT * FROM event_instances('19970902T090000', 'FREQ=WEEKLY;INTERVAL=2;COUNT=8;WKST=SU;BYDAY=TU,TH' ); |
---|
| 128 | -- |
---|
| 129 | -- -------------------------------------------------------------------- |
---|
| 130 | -- Monthly on the 1st Friday for ten occurrences: |
---|
| 131 | -- |
---|
| 132 | -- DTSTART;TZID=US-Eastern:19970905T090000 |
---|
| 133 | -- RRULE:FREQ=MONTHLY;COUNT=10;BYDAY=1FR |
---|
| 134 | -- |
---|
| 135 | -- ==> (1997 9:00 AM EDT)September 5;October 3 |
---|
| 136 | -- (1997 9:00 AM EST)November 7;Dec 5 |
---|
| 137 | -- (1998 9:00 AM EST)January 2;February 6;March 6;April 3 |
---|
| 138 | -- (1998 9:00 AM EDT)May 1;June 5 |
---|
| 139 | --- SET timezone TO 'US/Eastern'; SELECT * FROM event_instances('19970905T090000', 'FREQ=MONTHLY;COUNT=10;BYDAY=1FR' ); |
---|
| 140 | -- |
---|
| 141 | -- -------------------------------------------------------------------- |
---|
| 142 | -- Monthly on the 1st Friday until December 24, 1997: |
---|
| 143 | -- |
---|
| 144 | -- DTSTART;TZID=US-Eastern:19970905T090000 |
---|
| 145 | -- RRULE:FREQ=MONTHLY;UNTIL=19971224T000000Z;BYDAY=1FR |
---|
| 146 | -- |
---|
| 147 | -- ==> (1997 9:00 AM EDT)September 5;October 3 |
---|
| 148 | -- (1997 9:00 AM EST)November 7;December 5 |
---|
| 149 | --- SET timezone TO 'US/Eastern'; SELECT * FROM event_instances('19970905T090000', 'FREQ=MONTHLY;UNTIL=19971224T000000Z;BYDAY=1FR' ); |
---|
| 150 | -- |
---|
| 151 | -- -------------------------------------------------------------------- |
---|
| 152 | -- Every other month on the 1st and last Sunday of the month for 10 |
---|
| 153 | -- occurrences: |
---|
| 154 | -- |
---|
| 155 | -- DTSTART;TZID=US-Eastern:19970907T090000 |
---|
| 156 | -- RRULE:FREQ=MONTHLY;INTERVAL=2;COUNT=10;BYDAY=1SU,-1SU |
---|
| 157 | -- |
---|
| 158 | -- ==> (1997 9:00 AM EDT)September 7,28 |
---|
| 159 | -- (1997 9:00 AM EST)November 2,30 |
---|
| 160 | -- (1998 9:00 AM EST)January 4,25;March 1,29 |
---|
| 161 | -- (1998 9:00 AM EDT)May 3,31 |
---|
| 162 | --- SET timezone TO 'US/Eastern'; SELECT * FROM event_instances('19970907T090000', 'FREQ=MONTHLY;INTERVAL=2;COUNT=10;BYDAY=1SU,-1SU' ); |
---|
| 163 | -- |
---|
| 164 | -- -------------------------------------------------------------------- |
---|
| 165 | -- Monthly on the second to last Monday of the month for 6 months: |
---|
| 166 | -- |
---|
| 167 | -- DTSTART;TZID=US-Eastern:19970922T090000 |
---|
| 168 | -- RRULE:FREQ=MONTHLY;COUNT=6;BYDAY=-2MO |
---|
| 169 | -- |
---|
| 170 | -- ==> (1997 9:00 AM EDT)September 22;October 20 |
---|
| 171 | -- (1997 9:00 AM EST)November 17;December 22 |
---|
| 172 | -- (1998 9:00 AM EST)January 19;February 16 |
---|
| 173 | --- SET timezone TO 'US/Eastern'; SELECT * FROM event_instances('19970902T090000', 'FREQ=MONTHLY;COUNT=6;BYDAY=-2MO' ); |
---|
| 174 | -- |
---|
| 175 | -- -------------------------------------------------------------------- |
---|
| 176 | -- Monthly on the third to the last day of the month, forever: |
---|
| 177 | -- |
---|
| 178 | -- DTSTART;TZID=US-Eastern:19970928T090000 |
---|
| 179 | -- RRULE:FREQ=MONTHLY;BYMONTHDAY=-3 |
---|
| 180 | -- |
---|
| 181 | -- ==> (1997 9:00 AM EDT)September 28 |
---|
| 182 | -- (1997 9:00 AM EST)October 29;November 28;December 29 |
---|
| 183 | -- (1998 9:00 AM EST)January 29;February 26 |
---|
| 184 | -- ... |
---|
| 185 | --- SET timezone TO 'US/Eastern'; SELECT * FROM event_instances('19970902T090000', 'FREQ=MONTHLY;BYMONTHDAY=-3' ) LIMIT 6; |
---|
| 186 | -- |
---|
| 187 | -- -------------------------------------------------------------------- |
---|
| 188 | -- Monthly on the 2nd and 15th of the month for 10 occurrences: |
---|
| 189 | -- |
---|
| 190 | -- DTSTART;TZID=US-Eastern:19970902T090000 |
---|
| 191 | -- RRULE:FREQ=MONTHLY;COUNT=10;BYMONTHDAY=2,15 |
---|
| 192 | -- |
---|
| 193 | -- ==> (1997 9:00 AM EDT)September 2,15;October 2,15 |
---|
| 194 | -- (1997 9:00 AM EST)November 2,15;December 2,15 |
---|
| 195 | -- (1998 9:00 AM EST)January 2,15 |
---|
| 196 | --- SET timezone TO 'US/Eastern'; SELECT * FROM event_instances('19970902T090000', 'FREQ=MONTHLY;COUNT=10;BYMONTHDAY=2,15' ); |
---|
| 197 | -- |
---|
| 198 | -- -------------------------------------------------------------------- |
---|
| 199 | -- Monthly on the first and last day of the month for 10 occurrences: |
---|
| 200 | -- |
---|
| 201 | -- DTSTART;TZID=US-Eastern:19970930T090000 |
---|
| 202 | -- RRULE:FREQ=MONTHLY;COUNT=10;BYMONTHDAY=1,-1 |
---|
| 203 | -- |
---|
| 204 | -- ==> (1997 9:00 AM EDT)September 30;October 1 |
---|
| 205 | -- (1997 9:00 AM EST)October 31;November 1,30;December 1,31 |
---|
| 206 | -- (1998 9:00 AM EST)January 1,31;February 1 |
---|
| 207 | --- SET timezone TO 'US/Eastern'; SELECT * FROM event_instances('19970930T090000', 'FREQ=MONTHLY;COUNT=10;BYMONTHDAY=1,-1' ); |
---|
| 208 | -- |
---|
| 209 | -- -------------------------------------------------------------------- |
---|
| 210 | -- Every 18 months on the 10th thru 15th of the month for 10 |
---|
| 211 | -- occurrences: |
---|
| 212 | -- |
---|
| 213 | -- DTSTART;TZID=US-Eastern:19970910T090000 |
---|
| 214 | -- RRULE:FREQ=MONTHLY;INTERVAL=18;COUNT=10;BYMONTHDAY=10,11,12,13,14, |
---|
| 215 | -- 15 |
---|
| 216 | -- |
---|
| 217 | -- ==> (1997 9:00 AM EDT)September 10,11,12,13,14,15 |
---|
| 218 | -- (1999 9:00 AM EST)March 10,11,12,13 |
---|
| 219 | --- SET timezone TO 'US/Eastern'; SELECT * FROM event_instances('19970910T090000', 'FREQ=MONTHLY;INTERVAL=18;COUNT=10;BYMONTHDAY=10,11,12,13,14,15' ); |
---|
| 220 | -- |
---|
| 221 | -- -------------------------------------------------------------------- |
---|
| 222 | -- Every Tuesday, every other month: |
---|
| 223 | -- |
---|
| 224 | -- DTSTART;TZID=US-Eastern:19970902T090000 |
---|
| 225 | -- RRULE:FREQ=MONTHLY;INTERVAL=2;BYDAY=TU |
---|
| 226 | -- |
---|
| 227 | -- ==> (1997 9:00 AM EDT)September 2,9,16,23,30 |
---|
| 228 | -- (1997 9:00 AM EST)November 4,11,18,25 |
---|
| 229 | -- (1998 9:00 AM EST)January 6,13,20,27;March 3,10,17,24,31 |
---|
| 230 | -- ... |
---|
| 231 | --- SET timezone TO 'US/Eastern'; SELECT * FROM event_instances('19970902T090000', 'FREQ=MONTHLY;INTERVAL=2;BYDAY=TU' ) LIMIT 18; |
---|
| 232 | -- |
---|
| 233 | -- -------------------------------------------------------------------- |
---|
| 234 | -- Yearly in June and July for 10 occurrences: |
---|
| 235 | -- |
---|
| 236 | -- DTSTART;TZID=US-Eastern:19970610T090000 |
---|
| 237 | -- RRULE:FREQ=YEARLY;COUNT=10;BYMONTH=6,7 |
---|
| 238 | -- ==> (1997 9:00 AM EDT)June 10;July 10 |
---|
| 239 | -- (1998 9:00 AM EDT)June 10;July 10 |
---|
| 240 | -- (1999 9:00 AM EDT)June 10;July 10 |
---|
| 241 | -- (2000 9:00 AM EDT)June 10;July 10 |
---|
| 242 | -- (2001 9:00 AM EDT)June 10;July 10 |
---|
| 243 | -- Note: Since none of the BYDAY, BYMONTHDAY or BYYEARDAY components |
---|
| 244 | -- are specified, the day is gotten from DTSTART |
---|
| 245 | --- !!! We miss the first instance in June. Busted. |
---|
| 246 | --- !!! SET timezone TO 'US/Eastern'; SELECT * FROM event_instances('19970610T090000', 'FREQ=YEARLY;COUNT=10;BYMONTH=6,7' ); |
---|
| 247 | -- |
---|
| 248 | -- -------------------------------------------------------------------- |
---|
| 249 | -- Every other year on January, February, and March for 10 occurrences: |
---|
| 250 | -- |
---|
| 251 | -- DTSTART;TZID=US-Eastern:19970310T090000 |
---|
| 252 | -- RRULE:FREQ=YEARLY;INTERVAL=2;COUNT=10;BYMONTH=1,2,3 |
---|
| 253 | -- |
---|
| 254 | -- ==> (1997 9:00 AM EST)March 10 |
---|
| 255 | -- (1999 9:00 AM EST)January 10;February 10;March 10 |
---|
| 256 | -- (2001 9:00 AM EST)January 10;February 10;March 10 |
---|
| 257 | -- (2003 9:00 AM EST)January 10;February 10;March 10 |
---|
| 258 | --- !!! We miss the first instance in March. Busted. |
---|
| 259 | --- !!! SET timezone TO 'US/Eastern'; SELECT * FROM event_instances('19970310T090000', 'FREQ=YEARLY;INTERVAL=2;COUNT=10;BYMONTH=1,2,3' ); |
---|
| 260 | -- |
---|
| 261 | -- -------------------------------------------------------------------- |
---|
| 262 | -- Every 3rd year on the 1st, 100th and 200th day for 10 occurrences: |
---|
| 263 | -- |
---|
| 264 | -- DTSTART;TZID=US-Eastern:19970101T090000 |
---|
| 265 | -- RRULE:FREQ=YEARLY;INTERVAL=3;COUNT=10;BYYEARDAY=1,100,200 |
---|
| 266 | -- |
---|
| 267 | -- ==> (1997 9:00 AM EST)January 1 |
---|
| 268 | -- (1997 9:00 AM EDT)April 10;July 19 |
---|
| 269 | -- (2000 9:00 AM EST)January 1 |
---|
| 270 | -- (2000 9:00 AM EDT)April 9;July 18 |
---|
| 271 | -- (2003 9:00 AM EST)January 1 |
---|
| 272 | -- (2003 9:00 AM EDT)April 10;July 19 |
---|
| 273 | -- (2006 9:00 AM EST)January 1 |
---|
| 274 | --- ! We don't support BYYEARDAY yet. |
---|
| 275 | --- ! SET timezone TO 'US/Eastern'; SELECT * FROM event_instances('19970101T090000', 'FREQ=YEARLY;INTERVAL=3;COUNT=10;BYYEARDAY=1,100,200' ); |
---|
| 276 | -- |
---|
| 277 | -- -------------------------------------------------------------------- |
---|
| 278 | -- Every 20th Monday of the year, forever: |
---|
| 279 | -- DTSTART;TZID=US-Eastern:19970519T090000 |
---|
| 280 | -- RRULE:FREQ=YEARLY;BYDAY=20MO |
---|
| 281 | -- |
---|
| 282 | -- ==> (1997 9:00 AM EDT)May 19 |
---|
| 283 | -- (1998 9:00 AM EDT)May 18 |
---|
| 284 | -- (1999 9:00 AM EDT)May 17 |
---|
| 285 | -- ... |
---|
| 286 | --- ! We don't support BYDAY for yearly events. We don't support YEARLY at all well, TBH |
---|
| 287 | --- ! SET timezone TO 'US/Eastern'; SELECT * FROM event_instances('19970519T090000', 'FREQ=YEARLY;BYDAY=20MO' ) LIMIT 3; |
---|
| 288 | -- |
---|
| 289 | -- -------------------------------------------------------------------- |
---|
| 290 | -- Monday of week number 20 (where the default start of the week is |
---|
| 291 | -- Monday), forever: |
---|
| 292 | -- |
---|
| 293 | -- DTSTART;TZID=US-Eastern:19970512T090000 |
---|
| 294 | -- RRULE:FREQ=YEARLY;BYWEEKNO=20;BYDAY=MO |
---|
| 295 | -- |
---|
| 296 | -- ==> (1997 9:00 AM EDT)May 12 |
---|
| 297 | -- (1998 9:00 AM EDT)May 11 |
---|
| 298 | -- (1999 9:00 AM EDT)May 17 |
---|
| 299 | -- ... |
---|
| 300 | --- ! We don't support BYWEEKNO at all yet. |
---|
| 301 | --- ! SET timezone TO 'US/Eastern'; SELECT * FROM event_instances('19970512T090000', 'FREQ=YEARLY;BYWEEKNO=20;BYDAY=MO' ) LIMIT 3; |
---|
| 302 | -- |
---|
| 303 | -- -------------------------------------------------------------------- |
---|
| 304 | -- Every Thursday in March, forever: |
---|
| 305 | -- |
---|
| 306 | -- DTSTART;TZID=US-Eastern:19970313T090000 |
---|
| 307 | -- RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=TH |
---|
| 308 | -- |
---|
| 309 | -- ==> (1997 9:00 AM EST)March 13,20,27 |
---|
| 310 | -- (1998 9:00 AM EST)March 5,12,19,26 |
---|
| 311 | -- (1999 9:00 AM EST)March 4,11,18,25 |
---|
| 312 | -- ... |
---|
| 313 | --- SET timezone TO 'US/Eastern'; SELECT * FROM event_instances('19970313T090000', 'FREQ=YEARLY;BYMONTH=3;BYDAY=TH' ) LIMIT 11; |
---|
| 314 | -- |
---|
| 315 | -- -------------------------------------------------------------------- |
---|
| 316 | -- Every Thursday, but only during June, July, and August, forever: |
---|
| 317 | -- |
---|
| 318 | -- DTSTART;TZID=US-Eastern:19970605T090000 |
---|
| 319 | -- RRULE:FREQ=YEARLY;BYDAY=TH;BYMONTH=6,7,8 |
---|
| 320 | -- |
---|
| 321 | -- ==> (1997 9:00 AM EDT)June 5,12,19,26;July 3,10,17,24,31; |
---|
| 322 | -- August 7,14,21,28 |
---|
| 323 | -- (1998 9:00 AM EDT)June 4,11,18,25;July 2,9,16,23,30; |
---|
| 324 | -- August 6,13,20,27 |
---|
| 325 | -- (1999 9:00 AM EDT)June 3,10,17,24;July 1,8,15,22,29; |
---|
| 326 | -- August 5,12,19,26 |
---|
| 327 | -- ... |
---|
| 328 | --- SET timezone TO 'US/Eastern'; SELECT * FROM event_instances('19970605T090000', 'FREQ=YEARLY;BYDAY=TH;BYMONTH=6,7,8' ) LIMIT 39; |
---|
| 329 | -- |
---|
| 330 | -- -------------------------------------------------------------------- |
---|
| 331 | -- Every Friday the 13th, forever: |
---|
| 332 | -- |
---|
| 333 | -- DTSTART;TZID=US-Eastern:19970902T090000 |
---|
| 334 | -- EXDATE;TZID=US-Eastern:19970902T090000 |
---|
| 335 | -- RRULE:FREQ=MONTHLY;BYDAY=FR;BYMONTHDAY=13 |
---|
| 336 | -- |
---|
| 337 | -- ==> (1998 9:00 AM EST)February 13;March 13;November 13 |
---|
| 338 | -- (1999 9:00 AM EDT)August 13 |
---|
| 339 | -- (2000 9:00 AM EDT)October 13 |
---|
| 340 | -- ... |
---|
| 341 | --- SET timezone TO 'US/Eastern'; SELECT * FROM event_instances('19970902T090000', 'FREQ=MONTHLY;BYDAY=FR;BYMONTHDAY=13' ) LIMIT 35; |
---|
| 342 | -- |
---|
| 343 | -- -------------------------------------------------------------------- |
---|
| 344 | -- The first Saturday that follows the first Sunday of the month, |
---|
| 345 | -- forever: |
---|
| 346 | -- |
---|
| 347 | -- DTSTART;TZID=US-Eastern:19970913T090000 |
---|
| 348 | -- RRULE:FREQ=MONTHLY;BYDAY=SA;BYMONTHDAY=7,8,9,10,11,12,13 |
---|
| 349 | -- |
---|
| 350 | -- ==> (1997 9:00 AM EDT)September 13;October 11 |
---|
| 351 | -- (1997 9:00 AM EST)November 8;December 13 |
---|
| 352 | -- (1998 9:00 AM EST)January 10;February 7;March 7 |
---|
| 353 | -- (1998 9:00 AM EDT)April 11;May 9;June 13... |
---|
| 354 | -- ... |
---|
| 355 | --- SET timezone TO 'US/Eastern'; SELECT * FROM event_instances('19970913T090000', 'FREQ=MONTHLY;BYDAY=SA;BYMONTHDAY=7,8,9,10,11,12,13' ) LIMIT 10; |
---|
| 356 | -- |
---|
| 357 | -- -------------------------------------------------------------------- |
---|
| 358 | -- Every four years, the first Tuesday after a Monday in November, |
---|
| 359 | -- forever (U.S. Presidential Election day): |
---|
| 360 | -- |
---|
| 361 | -- DTSTART;TZID=US-Eastern:19961105T090000 |
---|
| 362 | -- RRULE:FREQ=YEARLY;INTERVAL=4;BYMONTH=11;BYDAY=TU;BYMONTHDAY=2,3,4, |
---|
| 363 | -- 5,6,7,8 |
---|
| 364 | -- |
---|
| 365 | -- ==> (1996 9:00 AM EST)November 5 |
---|
| 366 | -- (2000 9:00 AM EST)November 7 |
---|
| 367 | -- (2004 9:00 AM EST)November 2 |
---|
| 368 | -- ... |
---|
| 369 | --- SET timezone TO 'US/Eastern'; SELECT * FROM event_instances('19961105T090000', 'FREQ=YEARLY;INTERVAL=4;BYMONTH=11;BYDAY=TU;BYMONTHDAY=2,3,4,5,6,7,8' ) LIMIT 6; |
---|
| 370 | -- |
---|
| 371 | -- -------------------------------------------------------------------- |
---|
| 372 | -- The 3rd instance into the month of one of Tuesday, Wednesday or |
---|
| 373 | -- Thursday, for the next 3 months: |
---|
| 374 | -- |
---|
| 375 | -- DTSTART;TZID=US-Eastern:19970904T090000 |
---|
| 376 | -- RRULE:FREQ=MONTHLY;COUNT=3;BYDAY=TU,WE,TH;BYSETPOS=3 |
---|
| 377 | -- |
---|
| 378 | -- ==> (1997 9:00 AM EDT)September 4;October 7 |
---|
| 379 | -- (1997 9:00 AM EST)November 6 |
---|
| 380 | --- SET timezone TO 'US/Eastern'; SELECT * FROM event_instances('19970904T090000', 'FREQ=MONTHLY;COUNT=3;BYDAY=TU,WE,TH;BYSETPOS=3' ); |
---|
| 381 | -- |
---|
| 382 | -- -------------------------------------------------------------------- |
---|
| 383 | -- The 2nd to last weekday of the month: |
---|
| 384 | -- |
---|
| 385 | -- DTSTART;TZID=US-Eastern:19970929T090000 |
---|
| 386 | -- RRULE:FREQ=MONTHLY;BYDAY=MO,TU,WE,TH,FR;BYSETPOS=-2 |
---|
| 387 | -- |
---|
| 388 | -- ==> (1997 9:00 AM EDT)September 29 |
---|
| 389 | -- (1997 9:00 AM EST)October 30;November 27;December 30 |
---|
| 390 | -- (1998 9:00 AM EST)January 29;February 26;March 30 |
---|
| 391 | -- ... |
---|
| 392 | --- SET timezone TO 'US/Eastern'; SELECT * FROM event_instances('19970929T090000', 'FREQ=MONTHLY;BYDAY=MO,TU,WE,TH,FR;BYSETPOS=-2' ) LIMIT 8; |
---|
| 393 | -- |
---|
| 394 | -- -------------------------------------------------------------------- |
---|
| 395 | -- Every 3 hours from 9:00 AM to 5:00 PM on a specific day: |
---|
| 396 | -- |
---|
| 397 | -- DTSTART;TZID=US-Eastern:19970902T090000 |
---|
| 398 | -- RRULE:FREQ=HOURLY;INTERVAL=3;UNTIL=19970902T170000Z |
---|
| 399 | -- |
---|
| 400 | -- ==> (September 2, 1997 EDT)09:00,12:00,15:00 |
---|
| 401 | --- !! FREQ=HOURLY Not implemented |
---|
| 402 | --- !! SET timezone TO 'US/Eastern'; SELECT * FROM event_instances('19970902T090000', 'FREQ=HOURLY;INTERVAL=3;UNTIL=19970902T170000Z' ); |
---|
| 403 | -- |
---|
| 404 | -- -------------------------------------------------------------------- |
---|
| 405 | -- Every 15 minutes for 6 occurrences: |
---|
| 406 | -- |
---|
| 407 | -- DTSTART;TZID=US-Eastern:19970902T090000 |
---|
| 408 | -- RRULE:FREQ=MINUTELY;INTERVAL=15;COUNT=6 |
---|
| 409 | -- |
---|
| 410 | -- ==> (September 2, 1997 EDT)09:00,09:15,09:30,09:45,10:00,10:15 |
---|
| 411 | --- !! FREQ=MINUTELY Not implemented |
---|
| 412 | --- !! SET timezone TO 'US/Eastern'; SELECT * FROM event_instances('', '' ); |
---|
| 413 | -- |
---|
| 414 | -- -------------------------------------------------------------------- |
---|
| 415 | -- Every hour and a half for 4 occurrences: |
---|
| 416 | -- |
---|
| 417 | -- DTSTART;TZID=US-Eastern:19970902T090000 |
---|
| 418 | -- RRULE:FREQ=MINUTELY;INTERVAL=90;COUNT=4 |
---|
| 419 | -- |
---|
| 420 | -- ==> (September 2, 1997 EDT)09:00,10:30;12:00;13:30 |
---|
| 421 | --- !! FREQ=HOURLY Not implemented |
---|
| 422 | --- !! SET timezone TO 'US/Eastern'; SELECT * FROM event_instances('', '' ); |
---|
| 423 | -- |
---|
| 424 | -- -------------------------------------------------------------------- |
---|
| 425 | -- Every 20 minutes from 9:00 AM to 4:40 PM every day: |
---|
| 426 | -- |
---|
| 427 | -- DTSTART;TZID=US-Eastern:19970902T090000 |
---|
| 428 | -- RRULE:FREQ=DAILY;BYHOUR=9,10,11,12,13,14,15,16;BYMINUTE=0,20,40 |
---|
| 429 | -- or |
---|
| 430 | -- RRULE:FREQ=MINUTELY;INTERVAL=20;BYHOUR=9,10,11,12,13,14,15,16 |
---|
| 431 | -- |
---|
| 432 | -- ==> (September 2, 1997 EDT)9:00,9:20,9:40,10:00,10:20, |
---|
| 433 | -- ... 16:00,16:20,16:40 |
---|
| 434 | -- (September 3, 1997 EDT)9:00,9:20,9:40,10:00,10:20, |
---|
| 435 | -- ...16:00,16:20,16:40 |
---|
| 436 | -- ... |
---|
| 437 | --- !! FREQ=MINUTELY and/or BYHOUR Not implemented |
---|
| 438 | --- !! SET timezone TO 'US/Eastern'; SELECT * FROM event_instances('19970902T090000', 'FREQ=DAILY;BYHOUR=9,10,11,12,13,14,15,16;BYMINUTE=0,20,40' ) LIMIT 500; |
---|
| 439 | -- |
---|
| 440 | -- -------------------------------------------------------------------- |
---|
| 441 | -- An example where the days generated makes a difference because of |
---|
| 442 | -- WKST: |
---|
| 443 | -- |
---|
| 444 | -- DTSTART;TZID=US-Eastern:19970805T090000 |
---|
| 445 | -- RRULE:FREQ=WEEKLY;INTERVAL=2;COUNT=4;BYDAY=TU,SU;WKST=MO |
---|
| 446 | -- |
---|
| 447 | -- ==> (1997 EDT)Aug 5,10,19,24 |
---|
| 448 | -- |
---|
| 449 | -- changing only WKST from MO to SU, yields different results... |
---|
| 450 | -- |
---|
| 451 | -- DTSTART;TZID=US-Eastern:19970805T090000 |
---|
| 452 | -- RRULE:FREQ=WEEKLY;INTERVAL=2;COUNT=4;BYDAY=TU,SU;WKST=SU |
---|
| 453 | -- ==> (1997 EDT)August 5,17,19,31 |
---|
| 454 | -- |
---|
| 455 | --- !! WKST Not implemented. The second one works fine because WKST == SU in all our code. |
---|
| 456 | --- !! SET timezone TO 'US/Eastern'; SELECT * FROM event_instances('19970805T090000', 'FREQ=WEEKLY;INTERVAL=2;COUNT=4;BYDAY=TU,SU;WKST=MO' ); |
---|
| 457 | --- !! SET timezone TO 'US/Eastern'; SELECT * FROM event_instances('19970805T090000', 'FREQ=WEEKLY;INTERVAL=2;COUNT=4;BYDAY=TU,SU;WKST=SU' ); |
---|
| 458 | -- |
---|