diff options
-rw-r--r-- | util.scm | 9 | ||||
-rw-r--r-- | vcalendar.scm | 4 | ||||
-rw-r--r-- | vcalendar/recur.scm | 5 |
3 files changed, 15 insertions, 3 deletions
@@ -3,7 +3,7 @@ #:export (destructure-lambda let-multi fold-lists catch-let for-each-in define-quick-record define-quick-record! - mod! sort*) + mod! sort* sort*!) #:replace (let*) ) @@ -119,3 +119,10 @@ (sort items (lambda (a b) (comperator (get a) (get b))))) + +;;; This function borrowed from web-ics (calendar util) +(define* (sort*! items comperator #:optional (get identity)) + "A sort function more in line with how python's sorted works" + (sort! items (lambda (a b) + (comperator (get a) + (get b))))) diff --git a/vcalendar.scm b/vcalendar.scm index 1145b16e..3f7ba6ba 100644 --- a/vcalendar.scm +++ b/vcalendar.scm @@ -1,9 +1,11 @@ (define-module (vcalendar) #:use-module (vcalendar primitive) #:use-module (vcalendar datetime) + #:use-module (vcalendar recur) #:use-module (srfi srfi-1) #:use-module (srfi srfi-26) - #:use-module (util)) + #:use-module (util) + #:re-export (repeating?)) (define (parse-dates! cal) "Parse all start times into scheme date objects." diff --git a/vcalendar/recur.scm b/vcalendar/recur.scm index ccdb3aa7..9ae60fb7 100644 --- a/vcalendar/recur.scm +++ b/vcalendar/recur.scm @@ -10,7 +10,7 @@ #:use-module (vcalendar datetime) #:use-module (util) - #:export (recur-event)) + #:export (recur-event repeating?)) ;; (build-recur-rules "FREQ=HOURLY") ;; ;; => #<<recur-rule> freq: HOURLY until: #f count: #f interval: #f> @@ -22,6 +22,9 @@ ;; ;; => #<<recur-rule> freq: HOURLY until: #f count: #f interval: #f> ;; (build-recur-rules "FREQ=HOURLY;COUNT=-1") ;; ;; => #<<recur-rule> freq: HOURLY until: #f count: #f interval: #f> +(define (repeating? ev) + "Does this event repeat?" + (attr ev 'RRULE)) (define-quick-record recur-rule freq until count interval bysecond byminute byhour |