aboutsummaryrefslogtreecommitdiff
path: root/vcalendar/recurrence/internal.scm
blob: b62d75c2126d2460fb7d69900ea16d554db95965 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
(define-module (vcalendar recurrence internal)
  #:use-module (util)
  #:use-module (srfi srfi-88)
  #:export (make-recur-rule
            weekdays intervals))

;; (list
;;  (build-recur-rules "FREQ=HOURLY")
;;  (build-recur-rules "FREQ=HOURLY;COUNT=3")
;;  (build-recur-rules "FREQ=ERR;COUNT=3")
;;  (build-recur-rules "FREQ=HOURLY;COUNT=err")
;;  (build-recur-rules "FREQ=HOURLY;COUNT=-1"))

;; Immutable, since I easily want to be able to generate the recurence set for
;; the same event multiple times.
(define-quick-record recur-rule
  (public: freq until count interval bysecond byminute byhour
           byday bymonthday byyearday byweekno bymonth bysetpos
           wkst))

(define (make-recur-rule interval wkst)
  ((record-constructor <recur-rule> '(interval wkst)) interval wkst))

(define weekdays
  '(SU MO TU WE TH FR SA))

(define intervals
  '(SECONDLY MINUTELY HOURLY DAILY WEEKLY MONTHLY YEARLY))