aboutsummaryrefslogtreecommitdiff
path: root/tests/unit/vcomponent
diff options
context:
space:
mode:
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.scm1555
-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))