diff options
Diffstat (limited to '')
-rw-r--r-- | tests/unit/vcomponent/annoying-events.scm (renamed from tests/test/annoying-events.scm) | 19 | ||||
-rw-r--r-- | tests/unit/vcomponent/create.scm (renamed from tests/test/create.scm) | 3 | ||||
-rw-r--r-- | tests/unit/vcomponent/param.scm (renamed from tests/test/param.scm) | 3 | ||||
-rw-r--r-- | tests/unit/vcomponent/recurrence-advanced.scm | 1555 | ||||
-rw-r--r-- | tests/unit/vcomponent/recurrence-simple.scm (renamed from tests/test/recurrence-simple.scm) | 11 | ||||
-rw-r--r-- | tests/unit/vcomponent/rrule-serialization.scm (renamed from tests/test/rrule-serialization.scm) | 2 | ||||
-rw-r--r-- | tests/unit/vcomponent/vcomponent-control.scm (renamed from tests/test/vcomponent-control.scm) | 2 | ||||
-rw-r--r-- | tests/unit/vcomponent/vcomponent-datetime.scm (renamed from tests/test/vcomponent-datetime.scm) | 17 | ||||
-rw-r--r-- | tests/unit/vcomponent/vcomponent-formats-common-types.scm (renamed from tests/test/vcomponent-formats-common-types.scm) | 8 | ||||
-rw-r--r-- | tests/unit/vcomponent/vcomponent.scm (renamed from tests/test/vcomponent.scm) | 4 |
10 files changed, 1602 insertions, 22 deletions
diff --git a/tests/test/annoying-events.scm b/tests/unit/vcomponent/annoying-events.scm index a6f5e946..0fa81adb 100644 --- a/tests/test/annoying-events.scm +++ b/tests/unit/vcomponent/annoying-events.scm @@ -8,8 +8,6 @@ stream->list stream-filter stream-take-while)) - :use-module ((vcomponent base) - :select (extract prop)) :use-module ((vcomponent datetime) :select (event-overlaps?)) :use-module ((datetime) :select (date date+ date<)) :use-module ((hnh util) :select (set!)) @@ -17,7 +15,7 @@ :use-module (vcomponent base)) -(define start #2021-11-01) +(define start (date year: 2021 month: 11 day: 01)) (define end (date+ start (date day: 8))) @@ -25,16 +23,16 @@ (stream (vevent ; should be part of the result summary: "A" - dtstart: #2021-10-01 - dtend: #2021-12-01) + dtstart: (date year: 2021 month: 10 day: 01) + dtend: (date year: 2021 month: 12 day: 01)) (vevent ; should NOT be part of the result summary: "B" - dtstart: #2021-10-10 - dtend: #2021-10-11) + dtstart: (date year: 2021 month: 10 day: 10) + dtend: (date year: 2021 month: 10 day: 11)) (vevent ; should also be part of the result summary: "C" - dtstart: #2021-11-02 - dtend: #2021-11-03))) + dtstart: (date year: 2021 month: 11 day: 02) + dtend: (date year: 2021 month: 11 day: 03)))) ;; (if (and (date< (prop ev 'DTSTART) start-date) ;; (date<= (prop ev 'DTEND) end-date)) @@ -65,3 +63,6 @@ ev-set))))) + +'((vcomponent base) + (vcomponent datetime)) diff --git a/tests/test/create.scm b/tests/unit/vcomponent/create.scm index 7cc00419..caf2d33c 100644 --- a/tests/test/create.scm +++ b/tests/unit/vcomponent/create.scm @@ -64,3 +64,6 @@ (test-assert (every vline? (prop* ev 'PROP))))) ;; (test-group "Parameters and lists" ) + + +'((vcomponent create)) diff --git a/tests/test/param.scm b/tests/unit/vcomponent/param.scm index 431a8f46..9611fd8a 100644 --- a/tests/test/param.scm +++ b/tests/unit/vcomponent/param.scm @@ -64,3 +64,6 @@ END:DUMMY" (test-error 'warning (vcomponent->sxcal component))) + +'((vcomponent base) + (vcomponent formats xcal output)) diff --git a/tests/unit/vcomponent/recurrence-advanced.scm b/tests/unit/vcomponent/recurrence-advanced.scm new file mode 100644 index 00000000..1bd4311a --- /dev/null +++ b/tests/unit/vcomponent/recurrence-advanced.scm @@ -0,0 +1,1555 @@ +;;; Commentary: +;; Tests of recurrence rule generation with focus on correct instances +;; being generated. For tests of basic recurrence functionallity, see +;; recurrence-simple.scm. +;; +;; This file also tests format-recurrence-rule, which checks that human +;; readable representations of the RRULES work. +;; +;; Also contains the tests for EXDATE. +;; +;; Most examples copied from RFC5545, some home written. +;;; Code: + +(define-module (test recurrence-advanced) + :use-module (srfi srfi-64) + :use-module (srfi srfi-88) + :use-module ((vcomponent recurrence) + :select (make-recur-rule)) + :use-module ((vcomponent recurrence generate) + :select (generate-recurrence-set)) + :use-module ((vcomponent recurrence display) + :select (format-recurrence-rule)) + :use-module ((vcomponent recurrence internal) + :select (count until)) + :use-module ((vcomponent base) + :select (prop prop* extract)) + :use-module (vcomponent create) + :use-module ((datetime) + :select (parse-ics-datetime + datetime + datetime-date + time + date + jan feb mar apr may jun jul aug sep oct nov dec + mon tue wed thu fri sat sun + datetime->string)) + :use-module ((hnh util) :select (-> set!)) + :use-module ((srfi srfi-41) :select (stream->list)) + :use-module ((srfi srfi-88) :select (keyword->string))) + +(test-expect-fail "REC: The third instance into the month of one of Tuesday, Wednesday, or Thursday, for the next 3 months") + +(test-expect-fail "STR: The third instance into the month of one of Tuesday, Wednesday, or Thursday, for the next 3 months") + +(test-expect-fail "REC: The second-to-last weekday of the month") + +(test-expect-fail "STR: The second-to-last weekday of the month") + +;; TODO this test is really slow, figure out why (takes approx. 25s to run) +(test-skip "REC: Every day in January, for 3 years (alt 2)") + +(define (run-test comp) + (test-equal + (string-append "REC: " (prop comp 'SUMMARY)) + (prop comp 'X-SET) + (let ((r (generate-recurrence-set comp))) + (map (extract 'DTSTART) + (if (or (until (prop comp 'RRULE)) + (count (prop comp 'RRULE))) + (stream->list r) + (stream->list 20 r))))) + (test-equal + (string-append "STR: " (prop comp 'SUMMARY)) + (prop comp 'X-SUMMARY) + ;; TODO setting language='en causes messages to be in english, but date + ;; strings still format LC_TIME (which I have set to swedish)... + ;; TODO possibly test with other languages + (format-recurrence-rule (prop comp 'RRULE) 'sv))) + +(map run-test + (list (vevent + summary: + "Daily for 10 occurrences" + dtstart: + (datetime year: 1997 month: 09 day: 02 hour: 09 minute: 00 second: 00) + rrule: + (make-recur-rule + freq: 'DAILY + count: 10) + x-summary: + "dagligen, totalt 10 gånger" + x-set: + (list (datetime year: 1997 month: 09 day: 02 hour: 09 minute: 00 second: 00) + (datetime year: 1997 month: 09 day: 03 hour: 09 minute: 00 second: 00) + (datetime year: 1997 month: 09 day: 04 hour: 09 minute: 00 second: 00) + (datetime year: 1997 month: 09 day: 05 hour: 09 minute: 00 second: 00) + (datetime year: 1997 month: 09 day: 06 hour: 09 minute: 00 second: 00) + (datetime year: 1997 month: 09 day: 07 hour: 09 minute: 00 second: 00) + (datetime year: 1997 month: 09 day: 08 hour: 09 minute: 00 second: 00) + (datetime year: 1997 month: 09 day: 09 hour: 09 minute: 00 second: 00) + (datetime year: 1997 month: 09 day: 10 hour: 09 minute: 00 second: 00) + (datetime year: 1997 month: 09 day: 11 hour: 09 minute: 00 second: 00))) + (vevent + summary: + "Daily until December 24, 1997" + dtstart: + (datetime year: 1997 month: 09 day: 02 hour: 09 minute: 00 second: 00) + rrule: + (make-recur-rule + freq: 'DAILY + until: (datetime year: 1997 month: 12 day: 24 hour: 00 minute: 00 second: 00 tz: "UTC")) + x-summary: + "dagligen, till och med den 24 december, 1997 kl. 0:00" + x-set: + (list (datetime year: 1997 month: 09 day: 02 hour: 09 minute: 00 second: 00) + (datetime year: 1997 month: 09 day: 03 hour: 09 minute: 00 second: 00) + (datetime year: 1997 month: 09 day: 04 hour: 09 minute: 00 second: 00) + (datetime year: 1997 month: 09 day: 05 hour: 09 minute: 00 second: 00) + (datetime year: 1997 month: 09 day: 06 hour: 09 minute: 00 second: 00) + (datetime year: 1997 month: 09 day: 07 hour: 09 minute: 00 second: 00) + (datetime year: 1997 month: 09 day: 08 hour: 09 minute: 00 second: 00) + (datetime year: 1997 month: 09 day: 09 hour: 09 minute: 00 second: 00) + (datetime year: 1997 month: 09 day: 10 hour: 09 minute: 00 second: 00) + (datetime year: 1997 month: 09 day: 11 hour: 09 minute: 00 second: 00) + (datetime year: 1997 month: 09 day: 12 hour: 09 minute: 00 second: 00) + (datetime year: 1997 month: 09 day: 13 hour: 09 minute: 00 second: 00) + (datetime year: 1997 month: 09 day: 14 hour: 09 minute: 00 second: 00) + (datetime year: 1997 month: 09 day: 15 hour: 09 minute: 00 second: 00) + (datetime year: 1997 month: 09 day: 16 hour: 09 minute: 00 second: 00) + (datetime year: 1997 month: 09 day: 17 hour: 09 minute: 00 second: 00) + (datetime year: 1997 month: 09 day: 18 hour: 09 minute: 00 second: 00) + (datetime year: 1997 month: 09 day: 19 hour: 09 minute: 00 second: 00) + (datetime year: 1997 month: 09 day: 20 hour: 09 minute: 00 second: 00) + (datetime year: 1997 month: 09 day: 21 hour: 09 minute: 00 second: 00) + (datetime year: 1997 month: 09 day: 22 hour: 09 minute: 00 second: 00) + (datetime year: 1997 month: 09 day: 23 hour: 09 minute: 00 second: 00) + (datetime year: 1997 month: 09 day: 24 hour: 09 minute: 00 second: 00) + (datetime year: 1997 month: 09 day: 25 hour: 09 minute: 00 second: 00) + (datetime year: 1997 month: 09 day: 26 hour: 09 minute: 00 second: 00) + (datetime year: 1997 month: 09 day: 27 hour: 09 minute: 00 second: 00) + (datetime year: 1997 month: 09 day: 28 hour: 09 minute: 00 second: 00) + (datetime year: 1997 month: 09 day: 29 hour: 09 minute: 00 second: 00) + (datetime year: 1997 month: 09 day: 30 hour: 09 minute: 00 second: 00) + (datetime year: 1997 month: 10 day: 01 hour: 09 minute: 00 second: 00) + (datetime year: 1997 month: 10 day: 02 hour: 09 minute: 00 second: 00) + (datetime year: 1997 month: 10 day: 03 hour: 09 minute: 00 second: 00) + (datetime year: 1997 month: 10 day: 04 hour: 09 minute: 00 second: 00) + (datetime year: 1997 month: 10 day: 05 hour: 09 minute: 00 second: 00) + (datetime year: 1997 month: 10 day: 06 hour: 09 minute: 00 second: 00) + (datetime year: 1997 month: 10 day: 07 hour: 09 minute: 00 second: 00) + (datetime year: 1997 month: 10 day: 08 hour: 09 minute: 00 second: 00) + (datetime year: 1997 month: 10 day: 09 hour: 09 minute: 00 second: 00) + (datetime year: 1997 month: 10 day: 10 hour: 09 minute: 00 second: 00) + (datetime year: 1997 month: 10 day: 11 hour: 09 minute: 00 second: 00) + (datetime year: 1997 month: 10 day: 12 hour: 09 minute: 00 second: 00) + (datetime year: 1997 month: 10 day: 13 hour: 09 minute: 00 second: 00) + (datetime year: 1997 month: 10 day: 14 hour: 09 minute: 00 second: 00) + (datetime year: 1997 month: 10 day: 15 hour: 09 minute: 00 second: 00) + (datetime year: 1997 month: 10 day: 16 hour: 09 minute: 00 second: 00) + (datetime year: 1997 month: 10 day: 17 hour: 09 minute: 00 second: 00) + (datetime year: 1997 month: 10 day: 18 hour: 09 minute: 00 second: 00) + (datetime year: 1997 month: 10 day: 19 hour: 09 minute: 00 second: 00) + (datetime year: 1997 month: 10 day: 20 hour: 09 minute: 00 second: 00) + (datetime year: 1997 month: 10 day: 21 hour: 09 minute: 00 second: 00) + (datetime year: 1997 month: 10 day: 22 hour: 09 minute: 00 second: 00) + (datetime year: 1997 month: 10 day: 23 hour: 09 minute: 00 second: 00) + (datetime year: 1997 month: 10 day: 24 hour: 09 minute: 00 second: 00) + (datetime year: 1997 month: 10 day: 25 hour: 09 minute: 00 second: 00) + (datetime year: 1997 month: 10 day: 26 hour: 09 minute: 00 second: 00) + (datetime year: 1997 month: 10 day: 27 hour: 09 minute: 00 second: 00) + (datetime year: 1997 month: 10 day: 28 hour: 09 minute: 00 second: 00) + (datetime year: 1997 month: 10 day: 29 hour: 09 minute: 00 second: 00) + (datetime year: 1997 month: 10 day: 30 hour: 09 minute: 00 second: 00) + (datetime year: 1997 month: 10 day: 31 hour: 09 minute: 00 second: 00) + (datetime year: 1997 month: 11 day: 01 hour: 09 minute: 00 second: 00) + (datetime year: 1997 month: 11 day: 02 hour: 09 minute: 00 second: 00) + (datetime year: 1997 month: 11 day: 03 hour: 09 minute: 00 second: 00) + (datetime year: 1997 month: 11 day: 04 hour: 09 minute: 00 second: 00) + (datetime year: 1997 month: 11 day: 05 hour: 09 minute: 00 second: 00) + (datetime year: 1997 month: 11 day: 06 hour: 09 minute: 00 second: 00) + (datetime year: 1997 month: 11 day: 07 hour: 09 minute: 00 second: 00) + (datetime year: 1997 month: 11 day: 08 hour: 09 minute: 00 second: 00) + (datetime year: 1997 month: 11 day: 09 hour: 09 minute: 00 second: 00) + (datetime year: 1997 month: 11 day: 10 hour: 09 minute: 00 second: 00) + (datetime year: 1997 month: 11 day: 11 hour: 09 minute: 00 second: 00) + (datetime year: 1997 month: 11 day: 12 hour: 09 minute: 00 second: 00) + (datetime year: 1997 month: 11 day: 13 hour: 09 minute: 00 second: 00) + (datetime year: 1997 month: 11 day: 14 hour: 09 minute: 00 second: 00) + (datetime year: 1997 month: 11 day: 15 hour: 09 minute: 00 second: 00) + (datetime year: 1997 month: 11 day: 16 hour: 09 minute: 00 second: 00) + (datetime year: 1997 month: 11 day: 17 hour: 09 minute: 00 second: 00) + (datetime year: 1997 month: 11 day: 18 hour: 09 minute: 00 second: 00) + (datetime year: 1997 month: 11 day: 19 hour: 09 minute: 00 second: 00) + (datetime year: 1997 month: 11 day: 20 hour: 09 minute: 00 second: 00) + (datetime year: 1997 month: 11 day: 21 hour: 09 minute: 00 second: 00) + (datetime year: 1997 month: 11 day: 22 hour: 09 minute: 00 second: 00) + (datetime year: 1997 month: 11 day: 23 hour: 09 minute: 00 second: 00) + (datetime year: 1997 month: 11 day: 24 hour: 09 minute: 00 second: 00) + (datetime year: 1997 month: 11 day: 25 hour: 09 minute: 00 second: 00) + (datetime year: 1997 month: 11 day: 26 hour: 09 minute: 00 second: 00) + (datetime year: 1997 month: 11 day: 27 hour: 09 minute: 00 second: 00) + (datetime year: 1997 month: 11 day: 28 hour: 09 minute: 00 second: 00) + (datetime year: 1997 month: 11 day: 29 hour: 09 minute: 00 second: 00) + (datetime year: 1997 month: 11 day: 30 hour: 09 minute: 00 second: 00) + (datetime year: 1997 month: 12 day: 01 hour: 09 minute: 00 second: 00) + (datetime year: 1997 month: 12 day: 02 hour: 09 minute: 00 second: 00) + (datetime year: 1997 month: 12 day: 03 hour: 09 minute: 00 second: 00) + (datetime year: 1997 month: 12 day: 04 hour: 09 minute: 00 second: 00) + (datetime year: 1997 month: 12 day: 05 hour: 09 minute: 00 second: 00) + (datetime year: 1997 month: 12 day: 06 hour: 09 minute: 00 second: 00) + (datetime year: 1997 month: 12 day: 07 hour: 09 minute: 00 second: 00) + (datetime year: 1997 month: 12 day: 08 hour: 09 minute: 00 second: 00) + (datetime year: 1997 month: 12 day: 09 hour: 09 minute: 00 second: 00) + (datetime year: 1997 month: 12 day: 10 hour: 09 minute: 00 second: 00) + (datetime year: 1997 month: 12 day: 11 hour: 09 minute: 00 second: 00) + (datetime year: 1997 month: 12 day: 12 hour: 09 minute: 00 second: 00) + (datetime year: 1997 month: 12 day: 13 hour: 09 minute: 00 second: 00) + (datetime year: 1997 month: 12 day: 14 hour: 09 minute: 00 second: 00) + (datetime year: 1997 month: 12 day: 15 hour: 09 minute: 00 second: 00) + (datetime year: 1997 month: 12 day: 16 hour: 09 minute: 00 second: 00) + (datetime year: 1997 month: 12 day: 17 hour: 09 minute: 00 second: 00) + (datetime year: 1997 month: 12 day: 18 hour: 09 minute: 00 second: 00) + (datetime year: 1997 month: 12 day: 19 hour: 09 minute: 00 second: 00) + (datetime year: 1997 month: 12 day: 20 hour: 09 minute: 00 second: 00) + (datetime year: 1997 month: 12 day: 21 hour: 09 minute: 00 second: 00) + (datetime year: 1997 month: 12 day: 22 hour: 09 minute: 00 second: 00) + (datetime year: 1997 month: 12 day: 23 hour: 09 minute: 00 second: 00))) + (vevent + summary: + "Every other day - forever" + dtstart: + (datetime year: 1997 month: 09 day: 02 hour: 09 minute: 00 second: 00) + rrule: + (make-recur-rule + freq: 'DAILY + interval: 2) + x-summary: + "varannan dag" + x-set: + (list (datetime year: 1997 month: 09 day: 02 hour: 09 minute: 00 second: 00) + (datetime year: 1997 month: 09 day: 04 hour: 09 minute: 00 second: 00) + (datetime year: 1997 month: 09 day: 06 hour: 09 minute: 00 second: 00) + (datetime year: 1997 month: 09 day: 08 hour: 09 minute: 00 second: 00) + (datetime year: 1997 month: 09 day: 10 hour: 09 minute: 00 second: 00) + (datetime year: 1997 month: 09 day: 12 hour: 09 minute: 00 second: 00) + (datetime year: 1997 month: 09 day: 14 hour: 09 minute: 00 second: 00) + (datetime year: 1997 month: 09 day: 16 hour: 09 minute: 00 second: 00) + (datetime year: 1997 month: 09 day: 18 hour: 09 minute: 00 second: 00) + (datetime year: 1997 month: 09 day: 20 hour: 09 minute: 00 second: 00) + (datetime year: 1997 month: 09 day: 22 hour: 09 minute: 00 second: 00) + (datetime year: 1997 month: 09 day: 24 hour: 09 minute: 00 second: 00) + (datetime year: 1997 month: 09 day: 26 hour: 09 minute: 00 second: 00) + (datetime year: 1997 month: 09 day: 28 hour: 09 minute: 00 second: 00) + (datetime year: 1997 month: 09 day: 30 hour: 09 minute: 00 second: 00) + (datetime year: 1997 month: 10 day: 02 hour: 09 minute: 00 second: 00) + (datetime year: 1997 month: 10 day: 04 hour: 09 minute: 00 second: 00) + (datetime year: 1997 month: 10 day: 06 hour: 09 minute: 00 second: 00) + (datetime year: 1997 month: 10 day: 08 hour: 09 minute: 00 second: 00) + (datetime year: 1997 month: 10 day: 10 hour: 09 minute: 00 second: 00))) + (vevent + summary: + "Every 10 days, 5 occurrences" + dtstart: + (datetime year: 1997 month: 09 day: 02 hour: 09 minute: 00 second: 00) + rrule: + (make-recur-rule + freq: 'DAILY + interval: 10 + count: 5) + x-summary: + "var tionde dag, totalt 5 gånger" + x-set: + (list (datetime year: 1997 month: 09 day: 02 hour: 09 minute: 00 second: 00) + (datetime year: 1997 month: 09 day: 12 hour: 09 minute: 00 second: 00) + (datetime year: 1997 month: 09 day: 22 hour: 09 minute: 00 second: 00) + (datetime year: 1997 month: 10 day: 02 hour: 09 minute: 00 second: 00) + (datetime year: 1997 month: 10 day: 12 hour: 09 minute: 00 second: 00))) + (vevent + summary: + "Every day in January, for 3 years (alt 1)" + dtstart: + (datetime year: 1998 month: 01 day: 01 hour: 09 minute: 00 second: 00) + rrule: + (make-recur-rule + freq: 'YEARLY + until: (datetime year: 2000 month: 01 day: 31 hour: 14 minute: 00 second: 00 tz: "UTC") + bymonth: (list jan) + byday: (list sun mon tue wed thu fri sat)) + x-summary: + "varje lördag, fredag, torsdag, onsdag, tisdag, måndag & söndag i januari, årligen, till och med den 31 januari, 2000 kl. 14:00" + x-set: + (list (datetime year: 1998 month: 01 day: 01 hour: 09 minute: 00 second: 00) + (datetime year: 1998 month: 01 day: 02 hour: 09 minute: 00 second: 00) + (datetime year: 1998 month: 01 day: 03 hour: 09 minute: 00 second: 00) + (datetime year: 1998 month: 01 day: 04 hour: 09 minute: 00 second: 00) + (datetime year: 1998 month: 01 day: 05 hour: 09 minute: 00 second: 00) + (datetime year: 1998 month: 01 day: 06 hour: 09 minute: 00 second: 00) + (datetime year: 1998 month: 01 day: 07 hour: 09 minute: 00 second: 00) + (datetime year: 1998 month: 01 day: 08 hour: 09 minute: 00 second: 00) + (datetime year: 1998 month: 01 day: 09 hour: 09 minute: 00 second: 00) + (datetime year: 1998 month: 01 day: 10 hour: 09 minute: 00 second: 00) + (datetime year: 1998 month: 01 day: 11 hour: 09 minute: 00 second: 00) + (datetime year: 1998 month: 01 day: 12 hour: 09 minute: 00 second: 00) + (datetime year: 1998 month: 01 day: 13 hour: 09 minute: 00 second: 00) + (datetime year: 1998 month: 01 day: 14 hour: 09 minute: 00 second: 00) + (datetime year: 1998 month: 01 day: 15 hour: 09 minute: 00 second: 00) + (datetime year: 1998 month: 01 day: 16 hour: 09 minute: 00 second: 00) + (datetime year: 1998 month: 01 day: 17 hour: 09 minute: 00 second: 00) + (datetime year: 1998 month: 01 day: 18 hour: 09 minute: 00 second: 00) + (datetime year: 1998 month: 01 day: 19 hour: 09 minute: 00 second: 00) + (datetime year: 1998 month: 01 day: 20 hour: 09 minute: 00 second: 00) + (datetime year: 1998 month: 01 day: 21 hour: 09 minute: 00 second: 00) + (datetime year: 1998 month: 01 day: 22 hour: 09 minute: 00 second: 00) + (datetime year: 1998 month: 01 day: 23 hour: 09 minute: 00 second: 00) + (datetime year: 1998 month: 01 day: 24 hour: 09 minute: 00 second: 00) + (datetime year: 1998 month: 01 day: 25 hour: 09 minute: 00 second: 00) + (datetime year: 1998 month: 01 day: 26 hour: 09 minute: 00 second: 00) + (datetime year: 1998 month: 01 day: 27 hour: 09 minute: 00 second: 00) + (datetime year: 1998 month: 01 day: 28 hour: 09 minute: 00 second: 00) + (datetime year: 1998 month: 01 day: 29 hour: 09 minute: 00 second: 00) + (datetime year: 1998 month: 01 day: 30 hour: 09 minute: 00 second: 00) + (datetime year: 1998 month: 01 day: 31 hour: 09 minute: 00 second: 00) + (datetime year: 1999 month: 01 day: 01 hour: 09 minute: 00 second: 00) + (datetime year: 1999 month: 01 day: 02 hour: 09 minute: 00 second: 00) + (datetime year: 1999 month: 01 day: 03 hour: 09 minute: 00 second: 00) + (datetime year: 1999 month: 01 day: 04 hour: 09 minute: 00 second: 00) + (datetime year: 1999 month: 01 day: 05 hour: 09 minute: 00 second: 00) + (datetime year: 1999 month: 01 day: 06 hour: 09 minute: 00 second: 00) + (datetime year: 1999 month: 01 day: 07 hour: 09 minute: 00 second: 00) + (datetime year: 1999 month: 01 day: 08 hour: 09 minute: 00 second: 00) + (datetime year: 1999 month: 01 day: 09 hour: 09 minute: 00 second: 00) + (datetime year: 1999 month: 01 day: 10 hour: 09 minute: 00 second: 00) + (datetime year: 1999 month: 01 day: 11 hour: 09 minute: 00 second: 00) + (datetime year: 1999 month: 01 day: 12 hour: 09 minute: 00 second: 00) + (datetime year: 1999 month: 01 day: 13 hour: 09 minute: 00 second: 00) + (datetime year: 1999 month: 01 day: 14 hour: 09 minute: 00 second: 00) + (datetime year: 1999 month: 01 day: 15 hour: 09 minute: 00 second: 00) + (datetime year: 1999 month: 01 day: 16 hour: 09 minute: 00 second: 00) + (datetime year: 1999 month: 01 day: 17 hour: 09 minute: 00 second: 00) + (datetime year: 1999 month: 01 day: 18 hour: 09 minute: 00 second: 00) + (datetime year: 1999 month: 01 day: 19 hour: 09 minute: 00 second: 00) + (datetime year: 1999 month: 01 day: 20 hour: 09 minute: 00 second: 00) + (datetime year: 1999 month: 01 day: 21 hour: 09 minute: 00 second: 00) + (datetime year: 1999 month: 01 day: 22 hour: 09 minute: 00 second: 00) + (datetime year: 1999 month: 01 day: 23 hour: 09 minute: 00 second: 00) + (datetime year: 1999 month: 01 day: 24 hour: 09 minute: 00 second: 00) + (datetime year: 1999 month: 01 day: 25 hour: 09 minute: 00 second: 00) + (datetime year: 1999 month: 01 day: 26 hour: 09 minute: 00 second: 00) + (datetime year: 1999 month: 01 day: 27 hour: 09 minute: 00 second: 00) + (datetime year: 1999 month: 01 day: 28 hour: 09 minute: 00 second: 00) + (datetime year: 1999 month: 01 day: 29 hour: 09 minute: 00 second: 00) + (datetime year: 1999 month: 01 day: 30 hour: 09 minute: 00 second: 00) + (datetime year: 1999 month: 01 day: 31 hour: 09 minute: 00 second: 00) + (datetime year: 2000 month: 01 day: 01 hour: 09 minute: 00 second: 00) + (datetime year: 2000 month: 01 day: 02 hour: 09 minute: 00 second: 00) + (datetime year: 2000 month: 01 day: 03 hour: 09 minute: 00 second: 00) + (datetime year: 2000 month: 01 day: 04 hour: 09 minute: 00 second: 00) + (datetime year: 2000 month: 01 day: 05 hour: 09 minute: 00 second: 00) + (datetime year: 2000 month: 01 day: 06 hour: 09 minute: 00 second: 00) + (datetime year: 2000 month: 01 day: 07 hour: 09 minute: 00 second: 00) + (datetime year: 2000 month: 01 day: 08 hour: 09 minute: 00 second: 00) + (datetime year: 2000 month: 01 day: 09 hour: 09 minute: 00 second: 00) + (datetime year: 2000 month: 01 day: 10 hour: 09 minute: 00 second: 00) + (datetime year: 2000 month: 01 day: 11 hour: 09 minute: 00 second: 00) + (datetime year: 2000 month: 01 day: 12 hour: 09 minute: 00 second: 00) + (datetime year: 2000 month: 01 day: 13 hour: 09 minute: 00 second: 00) + (datetime year: 2000 month: 01 day: 14 hour: 09 minute: 00 second: 00) + (datetime year: 2000 month: 01 day: 15 hour: 09 minute: 00 second: 00) + (datetime year: 2000 month: 01 day: 16 hour: 09 minute: 00 second: 00) + (datetime year: 2000 month: 01 day: 17 hour: 09 minute: 00 second: 00) + (datetime year: 2000 month: 01 day: 18 hour: 09 minute: 00 second: 00) + (datetime year: 2000 month: 01 day: 19 hour: 09 minute: 00 second: 00) + (datetime year: 2000 month: 01 day: 20 hour: 09 minute: 00 second: 00) + (datetime year: 2000 month: 01 day: 21 hour: 09 minute: 00 second: 00) + (datetime year: 2000 month: 01 day: 22 hour: 09 minute: 00 second: 00) + (datetime year: 2000 month: 01 day: 23 hour: 09 minute: 00 second: 00) + (datetime year: 2000 month: 01 day: 24 hour: 09 minute: 00 second: 00) + (datetime year: 2000 month: 01 day: 25 hour: 09 minute: 00 second: 00) + (datetime year: 2000 month: 01 day: 26 hour: 09 minute: 00 second: 00) + (datetime year: 2000 month: 01 day: 27 hour: 09 minute: 00 second: 00) + (datetime year: 2000 month: 01 day: 28 hour: 09 minute: 00 second: 00) + (datetime year: 2000 month: 01 day: 29 hour: 09 minute: 00 second: 00) + (datetime year: 2000 month: 01 day: 30 hour: 09 minute: 00 second: 00) + (datetime year: 2000 month: 01 day: 31 hour: 09 minute: 00 second: 00))) + (vevent + summary: + "Every day in January, for 3 years (alt 2)" + dtstart: + (datetime year: 1998 month: 01 day: 01 hour: 09 minute: 00 second: 00) + rrule: + (make-recur-rule + freq: 'DAILY + until: (datetime year: 2000 month: 01 day: 31 hour: 14 minute: 00 second: 00 tz: "UTC") + bymonth: 1) + x-summary: + "dagligen, till och med den 31 januari, 2000 kl. 14:00" + x-set: + (list (datetime year: 1998 month: 01 day: 01 hour: 09 minute: 00 second: 00) + (datetime year: 1998 month: 01 day: 02 hour: 09 minute: 00 second: 00) + (datetime year: 1998 month: 01 day: 03 hour: 09 minute: 00 second: 00) + (datetime year: 1998 month: 01 day: 04 hour: 09 minute: 00 second: 00) + (datetime year: 1998 month: 01 day: 05 hour: 09 minute: 00 second: 00) + (datetime year: 1998 month: 01 day: 06 hour: 09 minute: 00 second: 00) + (datetime year: 1998 month: 01 day: 07 hour: 09 minute: 00 second: 00) + (datetime year: 1998 month: 01 day: 08 hour: 09 minute: 00 second: 00) + (datetime year: 1998 month: 01 day: 09 hour: 09 minute: 00 second: 00) + (datetime year: 1998 month: 01 day: 10 hour: 09 minute: 00 second: 00) + (datetime year: 1998 month: 01 day: 11 hour: 09 minute: 00 second: 00) + (datetime year: 1998 month: 01 day: 12 hour: 09 minute: 00 second: 00) + (datetime year: 1998 month: 01 day: 13 hour: 09 minute: 00 second: 00) + (datetime year: 1998 month: 01 day: 14 hour: 09 minute: 00 second: 00) + (datetime year: 1998 month: 01 day: 15 hour: 09 minute: 00 second: 00) + (datetime year: 1998 month: 01 day: 16 hour: 09 minute: 00 second: 00) + (datetime year: 1998 month: 01 day: 17 hour: 09 minute: 00 second: 00) + (datetime year: 1998 month: 01 day: 18 hour: 09 minute: 00 second: 00) + (datetime year: 1998 month: 01 day: 19 hour: 09 minute: 00 second: 00) + (datetime year: 1998 month: 01 day: 20 hour: 09 minute: 00 second: 00) + (datetime year: 1998 month: 01 day: 21 hour: 09 minute: 00 second: 00) + (datetime year: 1998 month: 01 day: 22 hour: 09 minute: 00 second: 00) + (datetime year: 1998 month: 01 day: 23 hour: 09 minute: 00 second: 00) + (datetime year: 1998 month: 01 day: 24 hour: 09 minute: 00 second: 00) + (datetime year: 1998 month: 01 day: 25 hour: 09 minute: 00 second: 00) + (datetime year: 1998 month: 01 day: 26 hour: 09 minute: 00 second: 00) + (datetime year: 1998 month: 01 day: 27 hour: 09 minute: 00 second: 00) + (datetime year: 1998 month: 01 day: 28 hour: 09 minute: 00 second: 00) + (datetime year: 1998 month: 01 day: 29 hour: 09 minute: 00 second: 00) + (datetime year: 1998 month: 01 day: 30 hour: 09 minute: 00 second: 00) + (datetime year: 1998 month: 01 day: 31 hour: 09 minute: 00 second: 00) + (datetime year: 1999 month: 01 day: 01 hour: 09 minute: 00 second: 00) + (datetime year: 1999 month: 01 day: 02 hour: 09 minute: 00 second: 00) + (datetime year: 1999 month: 01 day: 03 hour: 09 minute: 00 second: 00) + (datetime year: 1999 month: 01 day: 04 hour: 09 minute: 00 second: 00) + (datetime year: 1999 month: 01 day: 05 hour: 09 minute: 00 second: 00) + (datetime year: 1999 month: 01 day: 06 hour: 09 minute: 00 second: 00) + (datetime year: 1999 month: 01 day: 07 hour: 09 minute: 00 second: 00) + (datetime year: 1999 month: 01 day: 08 hour: 09 minute: 00 second: 00) + (datetime year: 1999 month: 01 day: 09 hour: 09 minute: 00 second: 00) + (datetime year: 1999 month: 01 day: 10 hour: 09 minute: 00 second: 00) + (datetime year: 1999 month: 01 day: 11 hour: 09 minute: 00 second: 00) + (datetime year: 1999 month: 01 day: 12 hour: 09 minute: 00 second: 00) + (datetime year: 1999 month: 01 day: 13 hour: 09 minute: 00 second: 00) + (datetime year: 1999 month: 01 day: 14 hour: 09 minute: 00 second: 00) + (datetime year: 1999 month: 01 day: 15 hour: 09 minute: 00 second: 00) + (datetime year: 1999 month: 01 day: 16 hour: 09 minute: 00 second: 00) + (datetime year: 1999 month: 01 day: 17 hour: 09 minute: 00 second: 00) + (datetime year: 1999 month: 01 day: 18 hour: 09 minute: 00 second: 00) + (datetime year: 1999 month: 01 day: 19 hour: 09 minute: 00 second: 00) + (datetime year: 1999 month: 01 day: 20 hour: 09 minute: 00 second: 00) + (datetime year: 1999 month: 01 day: 21 hour: 09 minute: 00 second: 00) + (datetime year: 1999 month: 01 day: 22 hour: 09 minute: 00 second: 00) + (datetime year: 1999 month: 01 day: 23 hour: 09 minute: 00 second: 00) + (datetime year: 1999 month: 01 day: 24 hour: 09 minute: 00 second: 00) + (datetime year: 1999 month: 01 day: 25 hour: 09 minute: 00 second: 00) + (datetime year: 1999 month: 01 day: 26 hour: 09 minute: 00 second: 00) + (datetime year: 1999 month: 01 day: 27 hour: 09 minute: 00 second: 00) + (datetime year: 1999 month: 01 day: 28 hour: 09 minute: 00 second: 00) + (datetime year: 1999 month: 01 day: 29 hour: 09 minute: 00 second: 00) + (datetime year: 1999 month: 01 day: 30 hour: 09 minute: 00 second: 00) + (datetime year: 1999 month: 01 day: 31 hour: 09 minute: 00 second: 00) + (datetime year: 2000 month: 01 day: 01 hour: 09 minute: 00 second: 00) + (datetime year: 2000 month: 01 day: 02 hour: 09 minute: 00 second: 00) + (datetime year: 2000 month: 01 day: 03 hour: 09 minute: 00 second: 00) + (datetime year: 2000 month: 01 day: 04 hour: 09 minute: 00 second: 00) + (datetime year: 2000 month: 01 day: 05 hour: 09 minute: 00 second: 00) + (datetime year: 2000 month: 01 day: 06 hour: 09 minute: 00 second: 00) + (datetime year: 2000 month: 01 day: 07 hour: 09 minute: 00 second: 00) + (datetime year: 2000 month: 01 day: 08 hour: 09 minute: 00 second: 00) + (datetime year: 2000 month: 01 day: 09 hour: 09 minute: 00 second: 00) + (datetime year: 2000 month: 01 day: 10 hour: 09 minute: 00 second: 00) + (datetime year: 2000 month: 01 day: 11 hour: 09 minute: 00 second: 00) + (datetime year: 2000 month: 01 day: 12 hour: 09 minute: 00 second: 00) + (datetime year: 2000 month: 01 day: 13 hour: 09 minute: 00 second: 00) + (datetime year: 2000 month: 01 day: 14 hour: 09 minute: 00 second: 00) + (datetime year: 2000 month: 01 day: 15 hour: 09 minute: 00 second: 00) + (datetime year: 2000 month: 01 day: 16 hour: 09 minute: 00 second: 00) + (datetime year: 2000 month: 01 day: 17 hour: 09 minute: 00 second: 00) + (datetime year: 2000 month: 01 day: 18 hour: 09 minute: 00 second: 00) + (datetime year: 2000 month: 01 day: 19 hour: 09 minute: 00 second: 00) + (datetime year: 2000 month: 01 day: 20 hour: 09 minute: 00 second: 00) + (datetime year: 2000 month: 01 day: 21 hour: 09 minute: 00 second: 00) + (datetime year: 2000 month: 01 day: 22 hour: 09 minute: 00 second: 00) + (datetime year: 2000 month: 01 day: 23 hour: 09 minute: 00 second: 00) + (datetime year: 2000 month: 01 day: 24 hour: 09 minute: 00 second: 00) + (datetime year: 2000 month: 01 day: 25 hour: 09 minute: 00 second: 00) + (datetime year: 2000 month: 01 day: 26 hour: 09 minute: 00 second: 00) + (datetime year: 2000 month: 01 day: 27 hour: 09 minute: 00 second: 00) + (datetime year: 2000 month: 01 day: 28 hour: 09 minute: 00 second: 00) + (datetime year: 2000 month: 01 day: 29 hour: 09 minute: 00 second: 00) + (datetime year: 2000 month: 01 day: 30 hour: 09 minute: 00 second: 00) + (datetime year: 2000 month: 01 day: 31 hour: 09 minute: 00 second: 00))) + (vevent + summary: + "Weekly for 10 occurrences" + dtstart: + (datetime year: 1997 month: 09 day: 02 hour: 09 minute: 00 second: 00) + rrule: + (make-recur-rule + freq: 'WEEKLY + count: 10) + x-summary: + "varje vecka, totalt 10 gånger" + x-set: + (list (datetime year: 1997 month: 09 day: 02 hour: 09 minute: 00 second: 00) + (datetime year: 1997 month: 09 day: 09 hour: 09 minute: 00 second: 00) + (datetime year: 1997 month: 09 day: 16 hour: 09 minute: 00 second: 00) + (datetime year: 1997 month: 09 day: 23 hour: 09 minute: 00 second: 00) + (datetime year: 1997 month: 09 day: 30 hour: 09 minute: 00 second: 00) + (datetime year: 1997 month: 10 day: 07 hour: 09 minute: 00 second: 00) + (datetime year: 1997 month: 10 day: 14 hour: 09 minute: 00 second: 00) + (datetime year: 1997 month: 10 day: 21 hour: 09 minute: 00 second: 00) + (datetime year: 1997 month: 10 day: 28 hour: 09 minute: 00 second: 00) + (datetime year: 1997 month: 11 day: 04 hour: 09 minute: 00 second: 00))) + (vevent + summary: + "Weekly until December 24, 1997" + dtstart: + (datetime year: 1997 month: 09 day: 02 hour: 09 minute: 00 second: 00) + rrule: + (make-recur-rule + freq: 'WEEKLY + until: (datetime year: 1997 month: 12 day: 24 hour: 00 minute: 00 second: 00 tz: "UTC")) + x-summary: + "varje vecka, till och med den 24 december, 1997 kl. 0:00" + x-set: + (list (datetime year: 1997 month: 09 day: 02 hour: 09 minute: 00 second: 00) + (datetime year: 1997 month: 09 day: 09 hour: 09 minute: 00 second: 00) + (datetime year: 1997 month: 09 day: 16 hour: 09 minute: 00 second: 00) + (datetime year: 1997 month: 09 day: 23 hour: 09 minute: 00 second: 00) + (datetime year: 1997 month: 09 day: 30 hour: 09 minute: 00 second: 00) + (datetime year: 1997 month: 10 day: 07 hour: 09 minute: 00 second: 00) + (datetime year: 1997 month: 10 day: 14 hour: 09 minute: 00 second: 00) + (datetime year: 1997 month: 10 day: 21 hour: 09 minute: 00 second: 00) + (datetime year: 1997 month: 10 day: 28 hour: 09 minute: 00 second: 00) + (datetime year: 1997 month: 11 day: 04 hour: 09 minute: 00 second: 00) + (datetime year: 1997 month: 11 day: 11 hour: 09 minute: 00 second: 00) + (datetime year: 1997 month: 11 day: 18 hour: 09 minute: 00 second: 00) + (datetime year: 1997 month: 11 day: 25 hour: 09 minute: 00 second: 00) + (datetime year: 1997 month: 12 day: 02 hour: 09 minute: 00 second: 00) + (datetime year: 1997 month: 12 day: 09 hour: 09 minute: 00 second: 00) + (datetime year: 1997 month: 12 day: 16 hour: 09 minute: 00 second: 00) + (datetime year: 1997 month: 12 day: 23 hour: 09 minute: 00 second: 00))) + (vevent + summary: + "Every other week - forever" + dtstart: + (datetime year: 1997 month: 09 day: 02 hour: 09 minute: 00 second: 00) + rrule: + (make-recur-rule + freq: 'WEEKLY + interval: 2 + wkst: sun) + x-summary: + "varannan vecka" + x-set: + (list (datetime year: 1997 month: 09 day: 02 hour: 09 minute: 00 second: 00) + (datetime year: 1997 month: 09 day: 16 hour: 09 minute: 00 second: 00) + (datetime year: 1997 month: 09 day: 30 hour: 09 minute: 00 second: 00) + (datetime year: 1997 month: 10 day: 14 hour: 09 minute: 00 second: 00) + (datetime year: 1997 month: 10 day: 28 hour: 09 minute: 00 second: 00) + (datetime year: 1997 month: 11 day: 11 hour: 09 minute: 00 second: 00) + (datetime year: 1997 month: 11 day: 25 hour: 09 minute: 00 second: 00) + (datetime year: 1997 month: 12 day: 09 hour: 09 minute: 00 second: 00) + (datetime year: 1997 month: 12 day: 23 hour: 09 minute: 00 second: 00) + (datetime year: 1998 month: 01 day: 06 hour: 09 minute: 00 second: 00) + (datetime year: 1998 month: 01 day: 20 hour: 09 minute: 00 second: 00) + (datetime year: 1998 month: 02 day: 03 hour: 09 minute: 00 second: 00) + (datetime year: 1998 month: 02 day: 17 hour: 09 minute: 00 second: 00) + (datetime year: 1998 month: 03 day: 03 hour: 09 minute: 00 second: 00) + (datetime year: 1998 month: 03 day: 17 hour: 09 minute: 00 second: 00) + (datetime year: 1998 month: 03 day: 31 hour: 09 minute: 00 second: 00) + (datetime year: 1998 month: 04 day: 14 hour: 09 minute: 00 second: 00) + (datetime year: 1998 month: 04 day: 28 hour: 09 minute: 00 second: 00) + (datetime year: 1998 month: 05 day: 12 hour: 09 minute: 00 second: 00) + (datetime year: 1998 month: 05 day: 26 hour: 09 minute: 00 second: 00))) + (vevent + summary: + "Weekly on Tuesday and Thursday for five weeks (alt 1)" + dtstart: + (datetime year: 1997 month: 09 day: 02 hour: 09 minute: 00 second: 00) + rrule: + (make-recur-rule + freq: 'WEEKLY + until: (datetime year: 1997 month: 10 day: 07 hour: 00 minute: 00 second: 00 tz: "UTC") + wkst: sun + byday: (list tue thu)) + x-summary: + "varje tisdag & torsdag, till och med den 07 oktober, 1997 kl. 0:00" + x-set: + (list (datetime year: 1997 month: 09 day: 02 hour: 09 minute: 00 second: 00) + (datetime year: 1997 month: 09 day: 04 hour: 09 minute: 00 second: 00) + (datetime year: 1997 month: 09 day: 09 hour: 09 minute: 00 second: 00) + (datetime year: 1997 month: 09 day: 11 hour: 09 minute: 00 second: 00) + (datetime year: 1997 month: 09 day: 16 hour: 09 minute: 00 second: 00) + (datetime year: 1997 month: 09 day: 18 hour: 09 minute: 00 second: 00) + (datetime year: 1997 month: 09 day: 23 hour: 09 minute: 00 second: 00) + (datetime year: 1997 month: 09 day: 25 hour: 09 minute: 00 second: 00) + (datetime year: 1997 month: 09 day: 30 hour: 09 minute: 00 second: 00) + (datetime year: 1997 month: 10 day: 02 hour: 09 minute: 00 second: 00))) + (vevent + summary: + "Weekly on Tuesday and Thursday for five weeks (alt 2)" + dtstart: + (datetime year: 1997 month: 09 day: 02 hour: 09 minute: 00 second: 00) + rrule: + (make-recur-rule + freq: 'WEEKLY + count: 10 + wkst: sun + byday: (list tue thu)) + x-summary: + "varje tisdag & torsdag, totalt 10 gånger" + x-set: + (list (datetime year: 1997 month: 09 day: 02 hour: 09 minute: 00 second: 00) + (datetime year: 1997 month: 09 day: 04 hour: 09 minute: 00 second: 00) + (datetime year: 1997 month: 09 day: 09 hour: 09 minute: 00 second: 00) + (datetime year: 1997 month: 09 day: 11 hour: 09 minute: 00 second: 00) + (datetime year: 1997 month: 09 day: 16 hour: 09 minute: 00 second: 00) + (datetime year: 1997 month: 09 day: 18 hour: 09 minute: 00 second: 00) + (datetime year: 1997 month: 09 day: 23 hour: 09 minute: 00 second: 00) + (datetime year: 1997 month: 09 day: 25 hour: 09 minute: 00 second: 00) + (datetime year: 1997 month: 09 day: 30 hour: 09 minute: 00 second: 00) + (datetime year: 1997 month: 10 day: 02 hour: 09 minute: 00 second: 00))) + (vevent + summary: + "Every other week on Monday, Wednesday, and Friday until December 24, 1997, starting on Monday, September 1, 1997:" + dtstart: + (datetime year: 1997 month: 09 day: 01 hour: 09 minute: 00 second: 00) + rrule: + (make-recur-rule + freq: 'WEEKLY + interval: 2 + until: (datetime year: 1997 month: 12 day: 24 hour: 00 minute: 00 second: 00 tz: "UTC") + wkst: sun + byday: (list mon wed fri)) + x-summary: + "varannan måndag, onsdag & fredag, till och med den 24 december, 1997 kl. 0:00" + x-set: + (list (datetime year: 1997 month: 09 day: 01 hour: 09 minute: 00 second: 00) + (datetime year: 1997 month: 09 day: 03 hour: 09 minute: 00 second: 00) + (datetime year: 1997 month: 09 day: 05 hour: 09 minute: 00 second: 00) + (datetime year: 1997 month: 09 day: 15 hour: 09 minute: 00 second: 00) + (datetime year: 1997 month: 09 day: 17 hour: 09 minute: 00 second: 00) + (datetime year: 1997 month: 09 day: 19 hour: 09 minute: 00 second: 00) + (datetime year: 1997 month: 09 day: 29 hour: 09 minute: 00 second: 00) + (datetime year: 1997 month: 10 day: 01 hour: 09 minute: 00 second: 00) + (datetime year: 1997 month: 10 day: 03 hour: 09 minute: 00 second: 00) + (datetime year: 1997 month: 10 day: 13 hour: 09 minute: 00 second: 00) + (datetime year: 1997 month: 10 day: 15 hour: 09 minute: 00 second: 00) + (datetime year: 1997 month: 10 day: 17 hour: 09 minute: 00 second: 00) + (datetime year: 1997 month: 10 day: 27 hour: 09 minute: 00 second: 00) + (datetime year: 1997 month: 10 day: 29 hour: 09 minute: 00 second: 00) + (datetime year: 1997 month: 10 day: 31 hour: 09 minute: 00 second: 00) + (datetime year: 1997 month: 11 day: 10 hour: 09 minute: 00 second: 00) + (datetime year: 1997 month: 11 day: 12 hour: 09 minute: 00 second: 00) + (datetime year: 1997 month: 11 day: 14 hour: 09 minute: 00 second: 00) + (datetime year: 1997 month: 11 day: 24 hour: 09 minute: 00 second: 00) + (datetime year: 1997 month: 11 day: 26 hour: 09 minute: 00 second: 00) + (datetime year: 1997 month: 11 day: 28 hour: 09 minute: 00 second: 00) + (datetime year: 1997 month: 12 day: 08 hour: 09 minute: 00 second: 00) + (datetime year: 1997 month: 12 day: 10 hour: 09 minute: 00 second: 00) + (datetime year: 1997 month: 12 day: 12 hour: 09 minute: 00 second: 00) + (datetime year: 1997 month: 12 day: 22 hour: 09 minute: 00 second: 00))) + (vevent + summary: + "Every other week on Tuesday and Thursday, for 8 occurrences" + dtstart: + (datetime year: 1997 month: 09 day: 02 hour: 09 minute: 00 second: 00) + rrule: + (make-recur-rule + freq: 'WEEKLY + interval: 2 + count: 8 + wkst: sun + byday: (list tue thu)) + x-summary: + "varannan tisdag & torsdag, totalt 8 gånger" + x-set: + (list (datetime year: 1997 month: 09 day: 02 hour: 09 minute: 00 second: 00) + (datetime year: 1997 month: 09 day: 04 hour: 09 minute: 00 second: 00) + (datetime year: 1997 month: 09 day: 16 hour: 09 minute: 00 second: 00) + (datetime year: 1997 month: 09 day: 18 hour: 09 minute: 00 second: 00) + (datetime year: 1997 month: 09 day: 30 hour: 09 minute: 00 second: 00) + (datetime year: 1997 month: 10 day: 02 hour: 09 minute: 00 second: 00) + (datetime year: 1997 month: 10 day: 14 hour: 09 minute: 00 second: 00) + (datetime year: 1997 month: 10 day: 16 hour: 09 minute: 00 second: 00))) + (vevent + summary: + "Monthly on the first Friday for 10 occurrences" + dtstart: + (datetime year: 1997 month: 09 day: 05 hour: 09 minute: 00 second: 00) + rrule: + (make-recur-rule + freq: 'MONTHLY + count: 10 + byday: (list (cons 1 fri))) + x-summary: + "första fredagen varje månad, totalt 10 gånger" + x-set: + (list (datetime year: 1997 month: 09 day: 05 hour: 09 minute: 00 second: 00) + (datetime year: 1997 month: 10 day: 03 hour: 09 minute: 00 second: 00) + (datetime year: 1997 month: 11 day: 07 hour: 09 minute: 00 second: 00) + (datetime year: 1997 month: 12 day: 05 hour: 09 minute: 00 second: 00) + (datetime year: 1998 month: 01 day: 02 hour: 09 minute: 00 second: 00) + (datetime year: 1998 month: 02 day: 06 hour: 09 minute: 00 second: 00) + (datetime year: 1998 month: 03 day: 06 hour: 09 minute: 00 second: 00) + (datetime year: 1998 month: 04 day: 03 hour: 09 minute: 00 second: 00) + (datetime year: 1998 month: 05 day: 01 hour: 09 minute: 00 second: 00) + (datetime year: 1998 month: 06 day: 05 hour: 09 minute: 00 second: 00))) + (vevent + summary: + "Monthly on the first Friday until December 24, 1997" + dtstart: + (datetime year: 1997 month: 09 day: 05 hour: 09 minute: 00 second: 00) + rrule: + (make-recur-rule + freq: 'MONTHLY + until: (datetime year: 1997 month: 12 day: 24 hour: 00 minute: 00 second: 00 tz: "UTC") + byday: (list (cons 1 fri))) + x-summary: + "första fredagen varje månad, till och med den 24 december, 1997 kl. 0:00" + x-set: + (list (datetime year: 1997 month: 09 day: 05 hour: 09 minute: 00 second: 00) + (datetime year: 1997 month: 10 day: 03 hour: 09 minute: 00 second: 00) + (datetime year: 1997 month: 11 day: 07 hour: 09 minute: 00 second: 00) + (datetime year: 1997 month: 12 day: 05 hour: 09 minute: 00 second: 00))) + (vevent + summary: + "Every other month on the first and last Sunday of the month for 10 occurrences" + dtstart: + (datetime year: 1997 month: 09 day: 07 hour: 09 minute: 00 second: 00) + rrule: + (make-recur-rule + freq: 'MONTHLY + interval: 2 + count: 10 + byday: (list (cons 1 sun) + (cons -1 sun))) + x-summary: + "första söndagen samt sista söndagen varannan månad, totalt 10 gånger" + x-set: + (list (datetime year: 1997 month: 09 day: 07 hour: 09 minute: 00 second: 00) + (datetime year: 1997 month: 09 day: 28 hour: 09 minute: 00 second: 00) + (datetime year: 1997 month: 11 day: 02 hour: 09 minute: 00 second: 00) + (datetime year: 1997 month: 11 day: 30 hour: 09 minute: 00 second: 00) + (datetime year: 1998 month: 01 day: 04 hour: 09 minute: 00 second: 00) + (datetime year: 1998 month: 01 day: 25 hour: 09 minute: 00 second: 00) + (datetime year: 1998 month: 03 day: 01 hour: 09 minute: 00 second: 00) + (datetime year: 1998 month: 03 day: 29 hour: 09 minute: 00 second: 00) + (datetime year: 1998 month: 05 day: 03 hour: 09 minute: 00 second: 00) + (datetime year: 1998 month: 05 day: 31 hour: 09 minute: 00 second: 00))) + (vevent + summary: + "Monthly on the second-to-last Monday of the month for 6 months" + dtstart: + (datetime year: 1997 month: 09 day: 22 hour: 09 minute: 00 second: 00) + rrule: + (make-recur-rule + freq: 'MONTHLY + count: 6 + byday: (list (cons -2 mon))) + x-summary: + "näst sista måndagen varje månad, totalt 6 gånger" + x-set: + (list (datetime year: 1997 month: 09 day: 22 hour: 09 minute: 00 second: 00) + (datetime year: 1997 month: 10 day: 20 hour: 09 minute: 00 second: 00) + (datetime year: 1997 month: 11 day: 17 hour: 09 minute: 00 second: 00) + (datetime year: 1997 month: 12 day: 22 hour: 09 minute: 00 second: 00) + (datetime year: 1998 month: 01 day: 19 hour: 09 minute: 00 second: 00) + (datetime year: 1998 month: 02 day: 16 hour: 09 minute: 00 second: 00))) + (vevent + summary: + "Monthly on the third-to-the-last day of the month, forever" + dtstart: + (datetime year: 1997 month: 09 day: 28 hour: 09 minute: 00 second: 00) + rrule: + (make-recur-rule + freq: 'MONTHLY + bymonthday: (list -3)) + x-summary: + "den tredje sista varje månad" + x-set: + (list (datetime year: 1997 month: 09 day: 28 hour: 09 minute: 00 second: 00) + (datetime year: 1997 month: 10 day: 29 hour: 09 minute: 00 second: 00) + (datetime year: 1997 month: 11 day: 28 hour: 09 minute: 00 second: 00) + (datetime year: 1997 month: 12 day: 29 hour: 09 minute: 00 second: 00) + (datetime year: 1998 month: 01 day: 29 hour: 09 minute: 00 second: 00) + (datetime year: 1998 month: 02 day: 26 hour: 09 minute: 00 second: 00) + (datetime year: 1998 month: 03 day: 29 hour: 09 minute: 00 second: 00) + (datetime year: 1998 month: 04 day: 28 hour: 09 minute: 00 second: 00) + (datetime year: 1998 month: 05 day: 29 hour: 09 minute: 00 second: 00) + (datetime year: 1998 month: 06 day: 28 hour: 09 minute: 00 second: 00) + (datetime year: 1998 month: 07 day: 29 hour: 09 minute: 00 second: 00) + (datetime year: 1998 month: 08 day: 29 hour: 09 minute: 00 second: 00) + (datetime year: 1998 month: 09 day: 28 hour: 09 minute: 00 second: 00) + (datetime year: 1998 month: 10 day: 29 hour: 09 minute: 00 second: 00) + (datetime year: 1998 month: 11 day: 28 hour: 09 minute: 00 second: 00) + (datetime year: 1998 month: 12 day: 29 hour: 09 minute: 00 second: 00) + (datetime year: 1999 month: 01 day: 29 hour: 09 minute: 00 second: 00) + (datetime year: 1999 month: 02 day: 26 hour: 09 minute: 00 second: 00) + (datetime year: 1999 month: 03 day: 29 hour: 09 minute: 00 second: 00) + (datetime year: 1999 month: 04 day: 28 hour: 09 minute: 00 second: 00))) + (vevent + summary: + "Monthly on the 2nd and 15th of the month for 10 occurrences" + dtstart: + (datetime year: 1997 month: 09 day: 02 hour: 09 minute: 00 second: 00) + rrule: + (make-recur-rule + freq: 'MONTHLY + count: 10 + bymonthday: (list 2 15)) + x-summary: + "den andre & femtonde varje månad, totalt 10 gånger" + x-set: + (list (datetime year: 1997 month: 09 day: 02 hour: 09 minute: 00 second: 00) + (datetime year: 1997 month: 09 day: 15 hour: 09 minute: 00 second: 00) + (datetime year: 1997 month: 10 day: 02 hour: 09 minute: 00 second: 00) + (datetime year: 1997 month: 10 day: 15 hour: 09 minute: 00 second: 00) + (datetime year: 1997 month: 11 day: 02 hour: 09 minute: 00 second: 00) + (datetime year: 1997 month: 11 day: 15 hour: 09 minute: 00 second: 00) + (datetime year: 1997 month: 12 day: 02 hour: 09 minute: 00 second: 00) + (datetime year: 1997 month: 12 day: 15 hour: 09 minute: 00 second: 00) + (datetime year: 1998 month: 01 day: 02 hour: 09 minute: 00 second: 00) + (datetime year: 1998 month: 01 day: 15 hour: 09 minute: 00 second: 00))) + (vevent + summary: + "Monthly on the first and last day of the month for 10 occurrences" + dtstart: + (datetime year: 1997 month: 09 day: 30 hour: 09 minute: 00 second: 00) + rrule: + (make-recur-rule + freq: 'MONTHLY + count: 10 + bymonthday: (list 1 -1)) + x-summary: + "den förste & sista varje månad, totalt 10 gånger" + x-set: + (list (datetime year: 1997 month: 09 day: 30 hour: 09 minute: 00 second: 00) + (datetime year: 1997 month: 10 day: 01 hour: 09 minute: 00 second: 00) + (datetime year: 1997 month: 10 day: 31 hour: 09 minute: 00 second: 00) + (datetime year: 1997 month: 11 day: 01 hour: 09 minute: 00 second: 00) + (datetime year: 1997 month: 11 day: 30 hour: 09 minute: 00 second: 00) + (datetime year: 1997 month: 12 day: 01 hour: 09 minute: 00 second: 00) + (datetime year: 1997 month: 12 day: 31 hour: 09 minute: 00 second: 00) + (datetime year: 1998 month: 01 day: 01 hour: 09 minute: 00 second: 00) + (datetime year: 1998 month: 01 day: 31 hour: 09 minute: 00 second: 00) + (datetime year: 1998 month: 03 day: 01 hour: 09 minute: 00 second: 00))) + (vevent + summary: + "Every 18 months on the 10th thru 15th of the month for 10 occurrences" + dtstart: + (datetime year: 1997 month: 09 day: 10 hour: 09 minute: 00 second: 00) + rrule: + (make-recur-rule + freq: 'MONTHLY + interval: 18 + count: 10 + bymonthday: (list 10 11 12 13 14 15)) + x-summary: + "den tionde, elfte, tolfte, trettonde, fjortonde & femtonde var artonde månad, totalt 10 gånger" + x-set: + (list (datetime year: 1997 month: 09 day: 10 hour: 09 minute: 00 second: 00) + (datetime year: 1997 month: 09 day: 11 hour: 09 minute: 00 second: 00) + (datetime year: 1997 month: 09 day: 12 hour: 09 minute: 00 second: 00) + (datetime year: 1997 month: 09 day: 13 hour: 09 minute: 00 second: 00) + (datetime year: 1997 month: 09 day: 14 hour: 09 minute: 00 second: 00) + (datetime year: 1997 month: 09 day: 15 hour: 09 minute: 00 second: 00) + (datetime year: 1999 month: 03 day: 10 hour: 09 minute: 00 second: 00) + (datetime year: 1999 month: 03 day: 11 hour: 09 minute: 00 second: 00) + (datetime year: 1999 month: 03 day: 12 hour: 09 minute: 00 second: 00) + (datetime year: 1999 month: 03 day: 13 hour: 09 minute: 00 second: 00))) + (vevent + summary: + "Every Tuesday, every other month" + dtstart: + (datetime year: 1997 month: 09 day: 02 hour: 09 minute: 00 second: 00) + rrule: + (make-recur-rule + freq: 'MONTHLY + interval: 2 + byday: (list tue)) + x-summary: + "varje tisdag varannan månad" + x-set: + (list (datetime year: 1997 month: 09 day: 02 hour: 09 minute: 00 second: 00) + (datetime year: 1997 month: 09 day: 09 hour: 09 minute: 00 second: 00) + (datetime year: 1997 month: 09 day: 16 hour: 09 minute: 00 second: 00) + (datetime year: 1997 month: 09 day: 23 hour: 09 minute: 00 second: 00) + (datetime year: 1997 month: 09 day: 30 hour: 09 minute: 00 second: 00) + (datetime year: 1997 month: 11 day: 04 hour: 09 minute: 00 second: 00) + (datetime year: 1997 month: 11 day: 11 hour: 09 minute: 00 second: 00) + (datetime year: 1997 month: 11 day: 18 hour: 09 minute: 00 second: 00) + (datetime year: 1997 month: 11 day: 25 hour: 09 minute: 00 second: 00) + (datetime year: 1998 month: 01 day: 06 hour: 09 minute: 00 second: 00) + (datetime year: 1998 month: 01 day: 13 hour: 09 minute: 00 second: 00) + (datetime year: 1998 month: 01 day: 20 hour: 09 minute: 00 second: 00) + (datetime year: 1998 month: 01 day: 27 hour: 09 minute: 00 second: 00) + (datetime year: 1998 month: 03 day: 03 hour: 09 minute: 00 second: 00) + (datetime year: 1998 month: 03 day: 10 hour: 09 minute: 00 second: 00) + (datetime year: 1998 month: 03 day: 17 hour: 09 minute: 00 second: 00) + (datetime year: 1998 month: 03 day: 24 hour: 09 minute: 00 second: 00) + (datetime year: 1998 month: 03 day: 31 hour: 09 minute: 00 second: 00) + (datetime year: 1998 month: 05 day: 05 hour: 09 minute: 00 second: 00) + (datetime year: 1998 month: 05 day: 12 hour: 09 minute: 00 second: 00))) + (vevent + summary: + "Yearly in June and July for 10 occurrences:\n: Since none of the BYDAY, BYMONTHDAY, or BYYEARDAY\nonents are specified, the day is gotten from \"DTSTART\"" + dtstart: + (datetime year: 1997 month: 06 day: 10 hour: 09 minute: 00 second: 00) + rrule: + (make-recur-rule + freq: 'YEARLY + count: 10 + bymonth: (list 6 7)) + x-summary: + "juni & juli, årligen, totalt 10 gånger" + x-set: + (list (datetime year: 1997 month: 06 day: 10 hour: 09 minute: 00 second: 00) + (datetime year: 1997 month: 07 day: 10 hour: 09 minute: 00 second: 00) + (datetime year: 1998 month: 06 day: 10 hour: 09 minute: 00 second: 00) + (datetime year: 1998 month: 07 day: 10 hour: 09 minute: 00 second: 00) + (datetime year: 1999 month: 06 day: 10 hour: 09 minute: 00 second: 00) + (datetime year: 1999 month: 07 day: 10 hour: 09 minute: 00 second: 00) + (datetime year: 2000 month: 06 day: 10 hour: 09 minute: 00 second: 00) + (datetime year: 2000 month: 07 day: 10 hour: 09 minute: 00 second: 00) + (datetime year: 2001 month: 06 day: 10 hour: 09 minute: 00 second: 00) + (datetime year: 2001 month: 07 day: 10 hour: 09 minute: 00 second: 00))) + (vevent + summary: + "Every other year on January, February, and March for 10 occurrences" + dtstart: + (datetime year: 1997 month: 03 day: 10 hour: 09 minute: 00 second: 00) + rrule: + (make-recur-rule + freq: 'YEARLY + interval: 2 + count: 10 + bymonth: (list jan feb mar)) + x-summary: + "januari, februari & mars vartannat år, totalt 10 gånger" + x-set: + (list (datetime year: 1997 month: 03 day: 10 hour: 09 minute: 00 second: 00) + (datetime year: 1999 month: 01 day: 10 hour: 09 minute: 00 second: 00) + (datetime year: 1999 month: 02 day: 10 hour: 09 minute: 00 second: 00) + (datetime year: 1999 month: 03 day: 10 hour: 09 minute: 00 second: 00) + (datetime year: 2001 month: 01 day: 10 hour: 09 minute: 00 second: 00) + (datetime year: 2001 month: 02 day: 10 hour: 09 minute: 00 second: 00) + (datetime year: 2001 month: 03 day: 10 hour: 09 minute: 00 second: 00) + (datetime year: 2003 month: 01 day: 10 hour: 09 minute: 00 second: 00) + (datetime year: 2003 month: 02 day: 10 hour: 09 minute: 00 second: 00) + (datetime year: 2003 month: 03 day: 10 hour: 09 minute: 00 second: 00))) + (vevent + summary: + "Every third year on the 1st, 100th, and 200th day for 10 occurrences" + dtstart: + (datetime year: 1997 month: 01 day: 01 hour: 09 minute: 00 second: 00) + rrule: + (make-recur-rule + freq: 'YEARLY + interval: 3 + count: 10 + byyearday: (list 1 100 200)) + x-summary: + "dag 1, 100 & 200 vart tredje år, totalt 10 gånger" + x-set: + (list (datetime year: 1997 month: 01 day: 01 hour: 09 minute: 00 second: 00) + (datetime year: 1997 month: 04 day: 10 hour: 09 minute: 00 second: 00) + (datetime year: 1997 month: 07 day: 19 hour: 09 minute: 00 second: 00) + (datetime year: 2000 month: 01 day: 01 hour: 09 minute: 00 second: 00) + (datetime year: 2000 month: 04 day: 09 hour: 09 minute: 00 second: 00) + (datetime year: 2000 month: 07 day: 18 hour: 09 minute: 00 second: 00) + (datetime year: 2003 month: 01 day: 01 hour: 09 minute: 00 second: 00) + (datetime year: 2003 month: 04 day: 10 hour: 09 minute: 00 second: 00) + (datetime year: 2003 month: 07 day: 19 hour: 09 minute: 00 second: 00) + (datetime year: 2006 month: 01 day: 01 hour: 09 minute: 00 second: 00))) + (vevent + summary: + "Every 20th Monday of the year, forever" + dtstart: + (datetime year: 1997 month: 05 day: 19 hour: 09 minute: 00 second: 00) + rrule: + (make-recur-rule + freq: 'YEARLY + byday: (list (cons 20 mon))) + x-summary: + "tjugonde måndagen, årligen" + x-set: + (list (datetime year: 1997 month: 05 day: 19 hour: 09 minute: 00 second: 00) + (datetime year: 1998 month: 05 day: 18 hour: 09 minute: 00 second: 00) + (datetime year: 1999 month: 05 day: 17 hour: 09 minute: 00 second: 00) + (datetime year: 2000 month: 05 day: 15 hour: 09 minute: 00 second: 00) + (datetime year: 2001 month: 05 day: 14 hour: 09 minute: 00 second: 00) + (datetime year: 2002 month: 05 day: 20 hour: 09 minute: 00 second: 00) + (datetime year: 2003 month: 05 day: 19 hour: 09 minute: 00 second: 00) + (datetime year: 2004 month: 05 day: 17 hour: 09 minute: 00 second: 00) + (datetime year: 2005 month: 05 day: 16 hour: 09 minute: 00 second: 00) + (datetime year: 2006 month: 05 day: 15 hour: 09 minute: 00 second: 00) + (datetime year: 2007 month: 05 day: 14 hour: 09 minute: 00 second: 00) + (datetime year: 2008 month: 05 day: 19 hour: 09 minute: 00 second: 00) + (datetime year: 2009 month: 05 day: 18 hour: 09 minute: 00 second: 00) + (datetime year: 2010 month: 05 day: 17 hour: 09 minute: 00 second: 00) + (datetime year: 2011 month: 05 day: 16 hour: 09 minute: 00 second: 00) + (datetime year: 2012 month: 05 day: 14 hour: 09 minute: 00 second: 00) + (datetime year: 2013 month: 05 day: 20 hour: 09 minute: 00 second: 00) + (datetime year: 2014 month: 05 day: 19 hour: 09 minute: 00 second: 00) + (datetime year: 2015 month: 05 day: 18 hour: 09 minute: 00 second: 00) + (datetime year: 2016 month: 05 day: 16 hour: 09 minute: 00 second: 00))) + (vevent + summary: + "Monday of week number 20 (where the default start of the week is Monday), forever" + dtstart: + (datetime year: 1997 month: 05 day: 12 hour: 09 minute: 00 second: 00) + rrule: + (make-recur-rule + freq: 'YEARLY + byweekno: (list 20) + byday: (list mon)) + x-summary: + "varje måndag v.20, årligen" + x-set: + (list (datetime year: 1997 month: 05 day: 12 hour: 09 minute: 00 second: 00) + (datetime year: 1998 month: 05 day: 11 hour: 09 minute: 00 second: 00) + (datetime year: 1999 month: 05 day: 17 hour: 09 minute: 00 second: 00) + (datetime year: 2000 month: 05 day: 15 hour: 09 minute: 00 second: 00) + (datetime year: 2001 month: 05 day: 14 hour: 09 minute: 00 second: 00) + (datetime year: 2002 month: 05 day: 13 hour: 09 minute: 00 second: 00) + (datetime year: 2003 month: 05 day: 12 hour: 09 minute: 00 second: 00) + (datetime year: 2004 month: 05 day: 10 hour: 09 minute: 00 second: 00) + (datetime year: 2005 month: 05 day: 16 hour: 09 minute: 00 second: 00) + (datetime year: 2006 month: 05 day: 15 hour: 09 minute: 00 second: 00) + (datetime year: 2007 month: 05 day: 14 hour: 09 minute: 00 second: 00) + (datetime year: 2008 month: 05 day: 12 hour: 09 minute: 00 second: 00) + (datetime year: 2009 month: 05 day: 11 hour: 09 minute: 00 second: 00) + (datetime year: 2010 month: 05 day: 17 hour: 09 minute: 00 second: 00) + (datetime year: 2011 month: 05 day: 16 hour: 09 minute: 00 second: 00) + (datetime year: 2012 month: 05 day: 14 hour: 09 minute: 00 second: 00) + (datetime year: 2013 month: 05 day: 13 hour: 09 minute: 00 second: 00) + (datetime year: 2014 month: 05 day: 12 hour: 09 minute: 00 second: 00) + (datetime year: 2015 month: 05 day: 11 hour: 09 minute: 00 second: 00) + (datetime year: 2016 month: 05 day: 16 hour: 09 minute: 00 second: 00))) + (vevent + summary: + "Every Thursday in March, forever" + dtstart: + (datetime year: 1997 month: 03 day: 13 hour: 09 minute: 00 second: 00) + rrule: + (make-recur-rule + freq: 'YEARLY + bymonth: (list mar) + byday: (list thu)) + x-summary: + "varje torsdag i mars, årligen" + x-set: + (list (datetime year: 1997 month: 03 day: 13 hour: 09 minute: 00 second: 00) + (datetime year: 1997 month: 03 day: 20 hour: 09 minute: 00 second: 00) + (datetime year: 1997 month: 03 day: 27 hour: 09 minute: 00 second: 00) + (datetime year: 1998 month: 03 day: 05 hour: 09 minute: 00 second: 00) + (datetime year: 1998 month: 03 day: 12 hour: 09 minute: 00 second: 00) + (datetime year: 1998 month: 03 day: 19 hour: 09 minute: 00 second: 00) + (datetime year: 1998 month: 03 day: 26 hour: 09 minute: 00 second: 00) + (datetime year: 1999 month: 03 day: 04 hour: 09 minute: 00 second: 00) + (datetime year: 1999 month: 03 day: 11 hour: 09 minute: 00 second: 00) + (datetime year: 1999 month: 03 day: 18 hour: 09 minute: 00 second: 00) + (datetime year: 1999 month: 03 day: 25 hour: 09 minute: 00 second: 00) + (datetime year: 2000 month: 03 day: 02 hour: 09 minute: 00 second: 00) + (datetime year: 2000 month: 03 day: 09 hour: 09 minute: 00 second: 00) + (datetime year: 2000 month: 03 day: 16 hour: 09 minute: 00 second: 00) + (datetime year: 2000 month: 03 day: 23 hour: 09 minute: 00 second: 00) + (datetime year: 2000 month: 03 day: 30 hour: 09 minute: 00 second: 00) + (datetime year: 2001 month: 03 day: 01 hour: 09 minute: 00 second: 00) + (datetime year: 2001 month: 03 day: 08 hour: 09 minute: 00 second: 00) + (datetime year: 2001 month: 03 day: 15 hour: 09 minute: 00 second: 00) + (datetime year: 2001 month: 03 day: 22 hour: 09 minute: 00 second: 00))) + (vevent + summary: + "Every Thursday, but only during June, July, and August, forever" + dtstart: + (datetime year: 1997 month: 06 day: 05 hour: 09 minute: 00 second: 00) + rrule: + (make-recur-rule + freq: 'YEARLY + byday: (list thu) + bymonth: (list 6 7 8)) + x-summary: + "varje torsdag i juni, juli & augusti, årligen" + x-set: + (list (datetime year: 1997 month: 06 day: 05 hour: 09 minute: 00 second: 00) + (datetime year: 1997 month: 06 day: 12 hour: 09 minute: 00 second: 00) + (datetime year: 1997 month: 06 day: 19 hour: 09 minute: 00 second: 00) + (datetime year: 1997 month: 06 day: 26 hour: 09 minute: 00 second: 00) + (datetime year: 1997 month: 07 day: 03 hour: 09 minute: 00 second: 00) + (datetime year: 1997 month: 07 day: 10 hour: 09 minute: 00 second: 00) + (datetime year: 1997 month: 07 day: 17 hour: 09 minute: 00 second: 00) + (datetime year: 1997 month: 07 day: 24 hour: 09 minute: 00 second: 00) + (datetime year: 1997 month: 07 day: 31 hour: 09 minute: 00 second: 00) + (datetime year: 1997 month: 08 day: 07 hour: 09 minute: 00 second: 00) + (datetime year: 1997 month: 08 day: 14 hour: 09 minute: 00 second: 00) + (datetime year: 1997 month: 08 day: 21 hour: 09 minute: 00 second: 00) + (datetime year: 1997 month: 08 day: 28 hour: 09 minute: 00 second: 00) + (datetime year: 1998 month: 06 day: 04 hour: 09 minute: 00 second: 00) + (datetime year: 1998 month: 06 day: 11 hour: 09 minute: 00 second: 00) + (datetime year: 1998 month: 06 day: 18 hour: 09 minute: 00 second: 00) + (datetime year: 1998 month: 06 day: 25 hour: 09 minute: 00 second: 00) + (datetime year: 1998 month: 07 day: 02 hour: 09 minute: 00 second: 00) + (datetime year: 1998 month: 07 day: 09 hour: 09 minute: 00 second: 00) + (datetime year: 1998 month: 07 day: 16 hour: 09 minute: 00 second: 00))) + (vevent + summary: + "Every Friday the 13th, forever" + dtstart: + (datetime year: 1997 month: 09 day: 02 hour: 09 minute: 00 second: 00) + exdate: + (as-list + (list (datetime year: 1997 month: 09 day: 02 hour: 09 minute: 00 second: 00))) + rrule: + (make-recur-rule + freq: 'MONTHLY + byday: (list fri) + bymonthday: (list 13)) + x-summary: + "varje fredag den trettonde varje månad" + x-set: + (list (datetime year: 1998 month: 02 day: 13 hour: 09 minute: 00 second: 00) + (datetime year: 1998 month: 03 day: 13 hour: 09 minute: 00 second: 00) + (datetime year: 1998 month: 11 day: 13 hour: 09 minute: 00 second: 00) + (datetime year: 1999 month: 08 day: 13 hour: 09 minute: 00 second: 00) + (datetime year: 2000 month: 10 day: 13 hour: 09 minute: 00 second: 00) + (datetime year: 2001 month: 04 day: 13 hour: 09 minute: 00 second: 00) + (datetime year: 2001 month: 07 day: 13 hour: 09 minute: 00 second: 00) + (datetime year: 2002 month: 09 day: 13 hour: 09 minute: 00 second: 00) + (datetime year: 2002 month: 12 day: 13 hour: 09 minute: 00 second: 00) + (datetime year: 2003 month: 06 day: 13 hour: 09 minute: 00 second: 00) + (datetime year: 2004 month: 02 day: 13 hour: 09 minute: 00 second: 00) + (datetime year: 2004 month: 08 day: 13 hour: 09 minute: 00 second: 00) + (datetime year: 2005 month: 05 day: 13 hour: 09 minute: 00 second: 00) + (datetime year: 2006 month: 01 day: 13 hour: 09 minute: 00 second: 00) + (datetime year: 2006 month: 10 day: 13 hour: 09 minute: 00 second: 00) + (datetime year: 2007 month: 04 day: 13 hour: 09 minute: 00 second: 00) + (datetime year: 2007 month: 07 day: 13 hour: 09 minute: 00 second: 00) + (datetime year: 2008 month: 06 day: 13 hour: 09 minute: 00 second: 00) + (datetime year: 2009 month: 02 day: 13 hour: 09 minute: 00 second: 00) + (datetime year: 2009 month: 03 day: 13 hour: 09 minute: 00 second: 00))) + (vevent + summary: + "The first Saturday that follows the first Sunday of the month, forever" + dtstart: + (datetime year: 1997 month: 09 day: 13 hour: 09 minute: 00 second: 00) + rrule: + (make-recur-rule + freq: 'MONTHLY + byday: (list sat) + bymonthday: (list 7 8 9 10 11 12 13)) + x-summary: + "varje lördag den sjunde, åttonde, nionde, tionde, elfte, tolfte & trettonde varje månad" + x-set: + (list (datetime year: 1997 month: 09 day: 13 hour: 09 minute: 00 second: 00) + (datetime year: 1997 month: 10 day: 11 hour: 09 minute: 00 second: 00) + (datetime year: 1997 month: 11 day: 08 hour: 09 minute: 00 second: 00) + (datetime year: 1997 month: 12 day: 13 hour: 09 minute: 00 second: 00) + (datetime year: 1998 month: 01 day: 10 hour: 09 minute: 00 second: 00) + (datetime year: 1998 month: 02 day: 07 hour: 09 minute: 00 second: 00) + (datetime year: 1998 month: 03 day: 07 hour: 09 minute: 00 second: 00) + (datetime year: 1998 month: 04 day: 11 hour: 09 minute: 00 second: 00) + (datetime year: 1998 month: 05 day: 09 hour: 09 minute: 00 second: 00) + (datetime year: 1998 month: 06 day: 13 hour: 09 minute: 00 second: 00) + (datetime year: 1998 month: 07 day: 11 hour: 09 minute: 00 second: 00) + (datetime year: 1998 month: 08 day: 08 hour: 09 minute: 00 second: 00) + (datetime year: 1998 month: 09 day: 12 hour: 09 minute: 00 second: 00) + (datetime year: 1998 month: 10 day: 10 hour: 09 minute: 00 second: 00) + (datetime year: 1998 month: 11 day: 07 hour: 09 minute: 00 second: 00) + (datetime year: 1998 month: 12 day: 12 hour: 09 minute: 00 second: 00) + (datetime year: 1999 month: 01 day: 09 hour: 09 minute: 00 second: 00) + (datetime year: 1999 month: 02 day: 13 hour: 09 minute: 00 second: 00) + (datetime year: 1999 month: 03 day: 13 hour: 09 minute: 00 second: 00) + (datetime year: 1999 month: 04 day: 10 hour: 09 minute: 00 second: 00))) + (vevent + summary: + "Every 4 years, the first Tuesday after a Monday in November,\nver (U.S. Presidential Election day)" + dtstart: + (datetime year: 1996 month: 11 day: 05 hour: 09 minute: 00 second: 00) + rrule: + (make-recur-rule + freq: 'YEARLY + interval: 4 + bymonth: (list nov) + byday: (list tue) + bymonthday: (list 2 3 4 5 6 7 8)) + x-summary: + "varje tisdag den andre, tredje, fjärde, femte, sjätte, sjunde eller åttonde i november vart fjärde år" + x-set: + (list (datetime year: 1996 month: 11 day: 05 hour: 09 minute: 00 second: 00) + (datetime year: 2000 month: 11 day: 07 hour: 09 minute: 00 second: 00) + (datetime year: 2004 month: 11 day: 02 hour: 09 minute: 00 second: 00) + (datetime year: 2008 month: 11 day: 04 hour: 09 minute: 00 second: 00) + (datetime year: 2012 month: 11 day: 06 hour: 09 minute: 00 second: 00) + (datetime year: 2016 month: 11 day: 08 hour: 09 minute: 00 second: 00) + (datetime year: 2020 month: 11 day: 03 hour: 09 minute: 00 second: 00) + (datetime year: 2024 month: 11 day: 05 hour: 09 minute: 00 second: 00) + (datetime year: 2028 month: 11 day: 07 hour: 09 minute: 00 second: 00) + (datetime year: 2032 month: 11 day: 02 hour: 09 minute: 00 second: 00) + (datetime year: 2036 month: 11 day: 04 hour: 09 minute: 00 second: 00) + (datetime year: 2040 month: 11 day: 06 hour: 09 minute: 00 second: 00) + (datetime year: 2044 month: 11 day: 08 hour: 09 minute: 00 second: 00) + (datetime year: 2048 month: 11 day: 03 hour: 09 minute: 00 second: 00) + (datetime year: 2052 month: 11 day: 05 hour: 09 minute: 00 second: 00) + (datetime year: 2056 month: 11 day: 07 hour: 09 minute: 00 second: 00) + (datetime year: 2060 month: 11 day: 02 hour: 09 minute: 00 second: 00) + (datetime year: 2064 month: 11 day: 04 hour: 09 minute: 00 second: 00) + (datetime year: 2068 month: 11 day: 06 hour: 09 minute: 00 second: 00) + (datetime year: 2072 month: 11 day: 08 hour: 09 minute: 00 second: 00))) + (vevent + summary: + "The third instance into the month of one of Tuesday, Wednesday, or Thursday, for the next 3 months" + dtstart: + (datetime year: 1997 month: 09 day: 04 hour: 09 minute: 00 second: 00) + rrule: + (make-recur-rule + freq: 'MONTHLY + count: 3 + byday: (list tue wed thu) + bysetpos: (list 3)) + x-summary: + "NOT YET IMPLEMENTED" + x-set: + (list (datetime year: 1997 month: 09 day: 04 hour: 09 minute: 00 second: 00) + (datetime year: 1997 month: 10 day: 07 hour: 09 minute: 00 second: 00) + (datetime year: 1997 month: 11 day: 06 hour: 09 minute: 00 second: 00))) + (vevent + summary: + "The second-to-last weekday of the month" + dtstart: + (datetime year: 1997 month: 09 day: 29 hour: 09 minute: 00 second: 00) + rrule: + (make-recur-rule + freq: 'MONTHLY + byday: (list mon tue wed thu fri) + bysetpos: (list -2)) + x-summary: + "NOT YET IMPLEMENTED" + x-set: + (list (datetime year: 1997 month: 09 day: 29 hour: 09 minute: 00 second: 00) + (datetime year: 1997 month: 10 day: 30 hour: 09 minute: 00 second: 00) + (datetime year: 1997 month: 11 day: 27 hour: 09 minute: 00 second: 00) + (datetime year: 1997 month: 12 day: 30 hour: 09 minute: 00 second: 00) + (datetime year: 1998 month: 01 day: 29 hour: 09 minute: 00 second: 00))) + (vevent + summary: + "Every 3 hours from 9:00 AM to 5:00 PM on a specific day" + dtstart: + (datetime year: 1997 month: 09 day: 02 hour: 09 minute: 00 second: 00) + rrule: + (make-recur-rule + freq: 'HOURLY + interval: 3 + until: (datetime year: 1997 month: 09 day: 02 hour: 17 minute: 00 second: 00 tz: "UTC")) + x-summary: + "var tredje timme, till och med den 02 september, 1997 kl. 17:00" + x-set: + (list (datetime year: 1997 month: 09 day: 02 hour: 09 minute: 00 second: 00) + (datetime year: 1997 month: 09 day: 02 hour: 12 minute: 00 second: 00) + (datetime year: 1997 month: 09 day: 02 hour: 15 minute: 00 second: 00))) + (vevent + summary: + "Every 15 minutes for 6 occurrences" + dtstart: + (datetime year: 1997 month: 09 day: 02 hour: 09 minute: 00 second: 00) + rrule: + (make-recur-rule + freq: 'MINUTELY + interval: 15 + count: 6) + x-summary: + "varje kvart, totalt 6 gånger" + x-set: + (list (datetime year: 1997 month: 09 day: 02 hour: 09 minute: 00 second: 00) + (datetime year: 1997 month: 09 day: 02 hour: 09 minute: 15 second: 00) + (datetime year: 1997 month: 09 day: 02 hour: 09 minute: 30 second: 00) + (datetime year: 1997 month: 09 day: 02 hour: 09 minute: 45 second: 00) + (datetime year: 1997 month: 09 day: 02 hour: 10 minute: 00 second: 00) + (datetime year: 1997 month: 09 day: 02 hour: 10 minute: 15 second: 00))) + (vevent + summary: + "Every hour and a half for 4 occurrences" + dtstart: + (datetime year: 1997 month: 09 day: 02 hour: 09 minute: 00 second: 00) + rrule: + (make-recur-rule + freq: 'MINUTELY + interval: 90 + count: 4) + x-summary: + "var sjätte kvart, totalt 4 gånger" + x-set: + (list (datetime year: 1997 month: 09 day: 02 hour: 09 minute: 00 second: 00) + (datetime year: 1997 month: 09 day: 02 hour: 10 minute: 30 second: 00) + (datetime year: 1997 month: 09 day: 02 hour: 12 minute: 00 second: 00) + (datetime year: 1997 month: 09 day: 02 hour: 13 minute: 30 second: 00))) + (vevent + summary: + "Every 20 minutes from 9:00 AM to 4:40 PM every day (alt 1)" + dtstart: + (datetime year: 1997 month: 09 day: 02 hour: 09 minute: 00 second: 00) + rrule: + (make-recur-rule + freq: 'DAILY + byhour: (list 9 10 11 12 13 14 15 16) + byminute: (list 0 20 40)) + x-summary: + "dagligen kl. 09:00, 09:20, 09:40, 10:00, 10:20, 10:40, 11:00, 11:20, 11:40, 12:00, 12:20, 12:40, 13:00, 13:20, 13:40, 14:00, 14:20, 14:40, 15:00, 15:20, 15:40, 16:00, 16:20 & 16:40" + x-set: + (list (datetime year: 1997 month: 09 day: 02 hour: 09 minute: 00 second: 00) + (datetime year: 1997 month: 09 day: 02 hour: 09 minute: 20 second: 00) + (datetime year: 1997 month: 09 day: 02 hour: 09 minute: 40 second: 00) + (datetime year: 1997 month: 09 day: 02 hour: 10 minute: 00 second: 00) + (datetime year: 1997 month: 09 day: 02 hour: 10 minute: 20 second: 00) + (datetime year: 1997 month: 09 day: 02 hour: 10 minute: 40 second: 00) + (datetime year: 1997 month: 09 day: 02 hour: 11 minute: 00 second: 00) + (datetime year: 1997 month: 09 day: 02 hour: 11 minute: 20 second: 00) + (datetime year: 1997 month: 09 day: 02 hour: 11 minute: 40 second: 00) + (datetime year: 1997 month: 09 day: 02 hour: 12 minute: 00 second: 00) + (datetime year: 1997 month: 09 day: 02 hour: 12 minute: 20 second: 00) + (datetime year: 1997 month: 09 day: 02 hour: 12 minute: 40 second: 00) + (datetime year: 1997 month: 09 day: 02 hour: 13 minute: 00 second: 00) + (datetime year: 1997 month: 09 day: 02 hour: 13 minute: 20 second: 00) + (datetime year: 1997 month: 09 day: 02 hour: 13 minute: 40 second: 00) + (datetime year: 1997 month: 09 day: 02 hour: 14 minute: 00 second: 00) + (datetime year: 1997 month: 09 day: 02 hour: 14 minute: 20 second: 00) + (datetime year: 1997 month: 09 day: 02 hour: 14 minute: 40 second: 00) + (datetime year: 1997 month: 09 day: 02 hour: 15 minute: 00 second: 00) + (datetime year: 1997 month: 09 day: 02 hour: 15 minute: 20 second: 00))) + (vevent + summary: + "Every 20 minutes from 9:00 AM to 4:40 PM every day (alt 2)" + dtstart: + (datetime year: 1997 month: 09 day: 02 hour: 09 minute: 00 second: 00) + rrule: + (make-recur-rule + freq: 'MINUTELY + interval: 20 + byhour: (list 9 10 11 12 13 14 15 16)) + x-summary: + "var tjugonde minut kl. 9, 10, 11, 12, 13, 14, 15 & 16" + x-set: + (list (datetime year: 1997 month: 09 day: 02 hour: 09 minute: 00 second: 00) + (datetime year: 1997 month: 09 day: 02 hour: 09 minute: 20 second: 00) + (datetime year: 1997 month: 09 day: 02 hour: 09 minute: 40 second: 00) + (datetime year: 1997 month: 09 day: 02 hour: 10 minute: 00 second: 00) + (datetime year: 1997 month: 09 day: 02 hour: 10 minute: 20 second: 00) + (datetime year: 1997 month: 09 day: 02 hour: 10 minute: 40 second: 00) + (datetime year: 1997 month: 09 day: 02 hour: 11 minute: 00 second: 00) + (datetime year: 1997 month: 09 day: 02 hour: 11 minute: 20 second: 00) + (datetime year: 1997 month: 09 day: 02 hour: 11 minute: 40 second: 00) + (datetime year: 1997 month: 09 day: 02 hour: 12 minute: 00 second: 00) + (datetime year: 1997 month: 09 day: 02 hour: 12 minute: 20 second: 00) + (datetime year: 1997 month: 09 day: 02 hour: 12 minute: 40 second: 00) + (datetime year: 1997 month: 09 day: 02 hour: 13 minute: 00 second: 00) + (datetime year: 1997 month: 09 day: 02 hour: 13 minute: 20 second: 00) + (datetime year: 1997 month: 09 day: 02 hour: 13 minute: 40 second: 00) + (datetime year: 1997 month: 09 day: 02 hour: 14 minute: 00 second: 00) + (datetime year: 1997 month: 09 day: 02 hour: 14 minute: 20 second: 00) + (datetime year: 1997 month: 09 day: 02 hour: 14 minute: 40 second: 00) + (datetime year: 1997 month: 09 day: 02 hour: 15 minute: 00 second: 00) + (datetime year: 1997 month: 09 day: 02 hour: 15 minute: 20 second: 00))) + (vevent + summary: + "An example where the days generated makes a difference because of WKST" + dtstart: + (datetime year: 1997 month: 08 day: 05 hour: 09 minute: 00 second: 00) + rrule: + (make-recur-rule + freq: 'WEEKLY + interval: 2 + count: 4 + byday: (list tue sun) + wkst: mon) + x-summary: + "varannan tisdag & söndag, totalt 4 gånger" + x-set: + (list (datetime year: 1997 month: 08 day: 05 hour: 09 minute: 00 second: 00) + (datetime year: 1997 month: 08 day: 10 hour: 09 minute: 00 second: 00) + (datetime year: 1997 month: 08 day: 19 hour: 09 minute: 00 second: 00) + (datetime year: 1997 month: 08 day: 24 hour: 09 minute: 00 second: 00))) + (vevent + summary: + "changing only WKST from MO to SU, yields different results.." + dtstart: + (datetime year: 1997 month: 08 day: 05 hour: 09 minute: 00 second: 00) + rrule: + (make-recur-rule + freq: 'WEEKLY + interval: 2 + count: 4 + byday: (list tue sun) + wkst: sun) + x-summary: + "varannan tisdag & söndag, totalt 4 gånger" + x-set: + (list (datetime year: 1997 month: 08 day: 05 hour: 09 minute: 00 second: 00) + (datetime year: 1997 month: 08 day: 17 hour: 09 minute: 00 second: 00) + (datetime year: 1997 month: 08 day: 19 hour: 09 minute: 00 second: 00) + (datetime year: 1997 month: 08 day: 31 hour: 09 minute: 00 second: 00))) + (vevent + summary: + "An example where an invalid date (i.e., February 30) is ignored" + dtstart: + (datetime year: 2007 month: 01 day: 15 hour: 09 minute: 00 second: 00) + rrule: + (make-recur-rule + freq: 'MONTHLY + bymonthday: (list 15 30) + count: 5) + x-summary: + "den femtonde & tretionde varje månad, totalt 5 gånger" + x-set: + (list (datetime year: 2007 month: 01 day: 15 hour: 09 minute: 00 second: 00) + (datetime year: 2007 month: 01 day: 30 hour: 09 minute: 00 second: 00) + (datetime year: 2007 month: 02 day: 15 hour: 09 minute: 00 second: 00) + (datetime year: 2007 month: 03 day: 15 hour: 09 minute: 00 second: 00) + (datetime year: 2007 month: 03 day: 30 hour: 09 minute: 00 second: 00))) + (vevent + summary: + "Every Friday & Wednesday the 13th, forever" + dtstart: + (datetime year: 1997 month: 09 day: 02 hour: 09 minute: 00 second: 00) + exdate: + (as-list + (list (datetime year: 1997 month: 09 day: 02 hour: 09 minute: 00 second: 00))) + rrule: + (make-recur-rule + freq: 'MONTHLY + byday: (list fri wed) + bymonthday: (list 13)) + x-summary: + "varje onsdag & fredag den trettonde varje månad" + x-set: + (list (datetime year: 1998 month: 02 day: 13 hour: 09 minute: 00 second: 00) + (datetime year: 1998 month: 03 day: 13 hour: 09 minute: 00 second: 00) + (datetime year: 1998 month: 05 day: 13 hour: 09 minute: 00 second: 00) + (datetime year: 1998 month: 11 day: 13 hour: 09 minute: 00 second: 00) + (datetime year: 1999 month: 01 day: 13 hour: 09 minute: 00 second: 00) + (datetime year: 1999 month: 08 day: 13 hour: 09 minute: 00 second: 00) + (datetime year: 1999 month: 10 day: 13 hour: 09 minute: 00 second: 00) + (datetime year: 2000 month: 09 day: 13 hour: 09 minute: 00 second: 00) + (datetime year: 2000 month: 10 day: 13 hour: 09 minute: 00 second: 00) + (datetime year: 2000 month: 12 day: 13 hour: 09 minute: 00 second: 00) + (datetime year: 2001 month: 04 day: 13 hour: 09 minute: 00 second: 00) + (datetime year: 2001 month: 06 day: 13 hour: 09 minute: 00 second: 00) + (datetime year: 2001 month: 07 day: 13 hour: 09 minute: 00 second: 00) + (datetime year: 2002 month: 02 day: 13 hour: 09 minute: 00 second: 00) + (datetime year: 2002 month: 03 day: 13 hour: 09 minute: 00 second: 00) + (datetime year: 2002 month: 09 day: 13 hour: 09 minute: 00 second: 00) + (datetime year: 2002 month: 11 day: 13 hour: 09 minute: 00 second: 00) + (datetime year: 2002 month: 12 day: 13 hour: 09 minute: 00 second: 00) + (datetime year: 2003 month: 06 day: 13 hour: 09 minute: 00 second: 00) + (datetime year: 2003 month: 08 day: 13 hour: 09 minute: 00 second: 00))) + (vevent + summary: + "Monday & Wednesday of week number 20 (where the default start of the week is Monday), forever" + dtstart: + (datetime year: 1997 month: 05 day: 12 hour: 09 minute: 00 second: 00) + rrule: + (make-recur-rule + freq: 'YEARLY + byweekno: (list 20) + byday: (list mon wed)) + x-summary: + "varje onsdag & måndag v.20, årligen" + x-set: + (list (datetime year: 1997 month: 05 day: 12 hour: 09 minute: 00 second: 00) + (datetime year: 1997 month: 05 day: 14 hour: 09 minute: 00 second: 00) + (datetime year: 1998 month: 05 day: 11 hour: 09 minute: 00 second: 00) + (datetime year: 1998 month: 05 day: 13 hour: 09 minute: 00 second: 00) + (datetime year: 1999 month: 05 day: 17 hour: 09 minute: 00 second: 00) + (datetime year: 1999 month: 05 day: 19 hour: 09 minute: 00 second: 00) + (datetime year: 2000 month: 05 day: 15 hour: 09 minute: 00 second: 00) + (datetime year: 2000 month: 05 day: 17 hour: 09 minute: 00 second: 00) + (datetime year: 2001 month: 05 day: 14 hour: 09 minute: 00 second: 00) + (datetime year: 2001 month: 05 day: 16 hour: 09 minute: 00 second: 00) + (datetime year: 2002 month: 05 day: 13 hour: 09 minute: 00 second: 00) + (datetime year: 2002 month: 05 day: 15 hour: 09 minute: 00 second: 00) + (datetime year: 2003 month: 05 day: 12 hour: 09 minute: 00 second: 00) + (datetime year: 2003 month: 05 day: 14 hour: 09 minute: 00 second: 00) + (datetime year: 2004 month: 05 day: 10 hour: 09 minute: 00 second: 00) + (datetime year: 2004 month: 05 day: 12 hour: 09 minute: 00 second: 00) + (datetime year: 2005 month: 05 day: 16 hour: 09 minute: 00 second: 00) + (datetime year: 2005 month: 05 day: 18 hour: 09 minute: 00 second: 00) + (datetime year: 2006 month: 05 day: 15 hour: 09 minute: 00 second: 00) + (datetime year: 2006 month: 05 day: 17 hour: 09 minute: 00 second: 00))) + (vevent + summary: "Each second, for ever" + dtstart: (datetime year: 2020 month: 10 day: 10 hour: 10 minute: 00 second: 00) + rrule: (make-recur-rule freq: 'SECONDLY) + x-summary: "varje sekund" + x-set: (list (datetime year: 2020 month: 10 day: 10 hour: 10 minute: 00 second: 00) + (datetime year: 2020 month: 10 day: 10 hour: 10 minute: 00 second: 01) + (datetime year: 2020 month: 10 day: 10 hour: 10 minute: 00 second: 02) + (datetime year: 2020 month: 10 day: 10 hour: 10 minute: 00 second: 03) + (datetime year: 2020 month: 10 day: 10 hour: 10 minute: 00 second: 04) + (datetime year: 2020 month: 10 day: 10 hour: 10 minute: 00 second: 05) + (datetime year: 2020 month: 10 day: 10 hour: 10 minute: 00 second: 06) + (datetime year: 2020 month: 10 day: 10 hour: 10 minute: 00 second: 07) + (datetime year: 2020 month: 10 day: 10 hour: 10 minute: 00 second: 08) + (datetime year: 2020 month: 10 day: 10 hour: 10 minute: 00 second: 09) + (datetime year: 2020 month: 10 day: 10 hour: 10 minute: 00 second: 10) + (datetime year: 2020 month: 10 day: 10 hour: 10 minute: 00 second: 11) + (datetime year: 2020 month: 10 day: 10 hour: 10 minute: 00 second: 12) + (datetime year: 2020 month: 10 day: 10 hour: 10 minute: 00 second: 13) + (datetime year: 2020 month: 10 day: 10 hour: 10 minute: 00 second: 14) + (datetime year: 2020 month: 10 day: 10 hour: 10 minute: 00 second: 15) + (datetime year: 2020 month: 10 day: 10 hour: 10 minute: 00 second: 16) + (datetime year: 2020 month: 10 day: 10 hour: 10 minute: 00 second: 17) + (datetime year: 2020 month: 10 day: 10 hour: 10 minute: 00 second: 18) + (datetime year: 2020 month: 10 day: 10 hour: 10 minute: 00 second: 19))) + ;; Exdates are applied after rrule's, meaning that less than count + ;; instances may be present. + (vevent + summary: "Exdates are applied AFTER rrule's" + dtstart: (datetime year: 2022 month: 06 day: 10 hour: 10 minute: 00 second: 00) + rrule: (make-recur-rule freq: 'DAILY count: 5) + exdate: (as-list (list (datetime year: 2022 month: 06 day: 12 hour: 10 minute: 00 second: 00))) + x-summary: "dagligen, totalt 5 gånger" + x-set: (list (datetime year: 2022 month: 06 day: 10 hour: 10 minute: 00 second: 00) + (datetime year: 2022 month: 06 day: 11 hour: 10 minute: 00 second: 00) + ;; (datetime year: 2022 month: 06 day: 12 hour: 10 minute: 00 second: 00) ; skipped by exdate + (datetime year: 2022 month: 06 day: 13 hour: 10 minute: 00 second: 00) + (datetime year: 2022 month: 06 day: 14 hour: 10 minute: 00 second: 00) + )) + (vevent + summary: "RDATE:s add to the recurrence rule" + dtstart: (datetime year: 2022 month: 06 day: 10 hour: 10 minute: 00 second: 00) + rrule: (make-recur-rule freq: 'DAILY count: 5) + rdate: (as-list (list (datetime year: 2022 month: 06 day: 20 hour: 10 minute: 00 second: 00))) + x-summary: "dagligen, totalt 5 gånger" + x-set: (list (datetime year: 2022 month: 06 day: 10 hour: 10 minute: 00 second: 00) + (datetime year: 2022 month: 06 day: 11 hour: 10 minute: 00 second: 00) + (datetime year: 2022 month: 06 day: 12 hour: 10 minute: 00 second: 00) + (datetime year: 2022 month: 06 day: 13 hour: 10 minute: 00 second: 00) + (datetime year: 2022 month: 06 day: 14 hour: 10 minute: 00 second: 00) + (datetime year: 2022 month: 06 day: 20 hour: 10 minute: 00 second: 00) ; added by rdate + ) + ) + (vevent + summary: "RDATE:s add to the recurrence rule" + dtstart: (datetime year: 2022 month: 06 day: 10 hour: 10 minute: 00 second: 00) + rrule: (make-recur-rule freq: 'DAILY count: 5) + exdate: (as-list (list (datetime year: 2022 month: 06 day: 20 hour: 10 minute: 00 second: 00))) + rdate: (as-list (list (datetime year: 2022 month: 06 day: 20 hour: 10 minute: 00 second: 00))) + x-summary: "dagligen, totalt 5 gånger" + x-set: (list (datetime year: 2022 month: 06 day: 10 hour: 10 minute: 00 second: 00) + (datetime year: 2022 month: 06 day: 11 hour: 10 minute: 00 second: 00) + (datetime year: 2022 month: 06 day: 12 hour: 10 minute: 00 second: 00) + (datetime year: 2022 month: 06 day: 13 hour: 10 minute: 00 second: 00) + (datetime year: 2022 month: 06 day: 14 hour: 10 minute: 00 second: 00) + ;; (datetime year: 2022 month: 06 day: 20 hour: 10 minute: 00 second: 00) ; added by rdate, removed by exdate + )) + ;; TODO rdate with different timezone than dtstart + ;; TODO rdate with period + )) + + + +'((vcomponent recurrence) + (vcomponent recurrence generate) + (vcomponent recurrence display) + (vcomponent recurrence internal)) diff --git a/tests/test/recurrence-simple.scm b/tests/unit/vcomponent/recurrence-simple.scm index b0c3bdea..31a74989 100644 --- a/tests/test/recurrence-simple.scm +++ b/tests/unit/vcomponent/recurrence-simple.scm @@ -90,6 +90,8 @@ END:VEVENT" (stream->list (stream-take 5 (day-stream (prop ev 'DTSTART))))) +(test-assert "Test 1" #t) + (define ev (car (call-with-input-string @@ -99,6 +101,8 @@ RRULE:FREQ=DAILY END:VEVENT" parse-calendar))) +(test-assert "Test 2" #t) + (test-assert "daily 10:00" (stream-car (generate-recurrence-set ev))) @@ -311,3 +315,10 @@ END:VCALENDAR" ;; RRULE:FREQ=DAILY;BYDAY=MO,TU,WE,TH,FR
;; END:VEVENT
;; END:VCALENDAR
+ +;; TODO add remaining rules + + +'((vcomponent recurrence) + (vcomponent formats ical parse) + (vcomponent formats xcal parse)) diff --git a/tests/test/rrule-serialization.scm b/tests/unit/vcomponent/rrule-serialization.scm index e616c5a2..540c5bd2 100644 --- a/tests/test/rrule-serialization.scm +++ b/tests/unit/vcomponent/rrule-serialization.scm @@ -73,3 +73,5 @@ (recur-rule->rrule-sxml rule))))) +'((vcomponent recurrence internal) + (vcomponent recurrence parse)) diff --git a/tests/test/vcomponent-control.scm b/tests/unit/vcomponent/vcomponent-control.scm index cf6995bf..7ebafa3d 100644 --- a/tests/test/vcomponent-control.scm +++ b/tests/unit/vcomponent/vcomponent-control.scm @@ -33,4 +33,4 @@ (throw 'any))) (lambda _ (test-equal "value" (prop ev 'X-KEY))))) - +'((vcomponent util control)) diff --git a/tests/test/vcomponent-datetime.scm b/tests/unit/vcomponent/vcomponent-datetime.scm index 49d1711f..80fee259 100644 --- a/tests/test/vcomponent-datetime.scm +++ b/tests/unit/vcomponent/vcomponent-datetime.scm @@ -12,8 +12,8 @@ (define ev (vevent - dtstart: #2020-03-29T17:00:00 - dtend: #2020-04-01T10:00:00)) + dtstart: (datetime year: 2020 month: 03 day: 29 hour: 17 minute: 00 second: 00) + dtend: (datetime year: 2020 month: 04 day: 01 hour: 10 minute: 00 second: 00))) ;; |-----------------| test interval @@ -23,21 +23,22 @@ "Correct clamping" (datetime time: (time hour: 7)) ; 2020-03-29T17:00 - 2020-03-30T00:00 (event-length/clamped - #2020-03-23 ; a time way before the start of the event - #2020-03-29 ; a time slightly after the end of the event + (date year: 2020 month: 03 day: 23) ; a time way before the start of the event + (date year: 2020 month: 03 day: 29) ; a time slightly after the end of the event ev)) (define utc-ev (vevent - dtstart: #2020-03-29T15:00:00Z - dtend: #2020-04-01T08:00:00Z)) + dtstart: (datetime year: 2020 month: 03 day: 29 hour: 15 minute: 00 second: 00 tz: "UTC") + dtend: (datetime year: 2020 month: 04 day: 01 hour: 08 minute: 00 second: 00 tz: "UTC"))) (test-equal "Correct clamping UTC" (datetime time: (time hour: 7)) (event-length/clamped - #2020-03-23 - #2020-03-29 + (date year: 2020 month: 03 day: 23) + (date year: 2020 month: 03 day: 29) ev)) +'((vcomponent datetime)) diff --git a/tests/test/vcomponent-formats-common-types.scm b/tests/unit/vcomponent/vcomponent-formats-common-types.scm index 4c442461..1d7c77cf 100644 --- a/tests/test/vcomponent-formats-common-types.scm +++ b/tests/unit/vcomponent/vcomponent-formats-common-types.scm @@ -33,14 +33,14 @@ (define parse-date (get-parser 'DATE)) (test-equal - #2021-12-02 + (date year: 2021 month: 12 day: 02) (parse-date #f "20211202")) ;; TODO negative test here (define parse-datetime (get-parser 'DATE-TIME)) (test-equal - #2021-12-02T10:20:30 + (datetime year: 2021 month: 12 day: 02 hour: 10 minute: 20 second: 30) (parse-datetime (make-hash-table) "20211202T102030")) @@ -120,7 +120,7 @@ (define parse-time (get-parser 'TIME)) (test-equal - #10:20:30 + (time hour: 10 minute: 20 second: 30) (parse-time #f "102030")) ;; TODO negative test here @@ -136,3 +136,5 @@ (get-parser 'UTC-OFFSET)) ;; TODO + +'((vcomponent formats common types)) diff --git a/tests/test/vcomponent.scm b/tests/unit/vcomponent/vcomponent.scm index bdaefa95..ebd0b1ff 100644 --- a/tests/test/vcomponent.scm +++ b/tests/unit/vcomponent/vcomponent.scm @@ -40,7 +40,7 @@ (define vline* (vline key: 'DTSTART - vline-value: #2020-01-02 + vline-value: (date year: 2020 month: 01 day: 02) vline-parameters: (alist->table '((VALUE . "DATE"))) vline-source: "DTSTART;VALUE=DATE:2020-01-02")) @@ -101,3 +101,5 @@ ;; x-property? ;; internal-field? + +'((vcomponent base)) |