diff options
author | Hugo Hörnquist <hugo@lysator.liu.se> | 2019-03-08 13:14:34 +0100 |
---|---|---|
committer | Hugo Hörnquist <hugo@lysator.liu.se> | 2019-03-08 13:14:34 +0100 |
commit | e7c471cb50bf92debc6e28ef5e45d0c5e4b3da3c (patch) | |
tree | c6f59fc9464d5c9ea704c1c05a6b6f57be13bd2f /vcalendar | |
parent | Got DAILY repeating event! (diff) | |
download | calp-e7c471cb50bf92debc6e28ef5e45d0c5e4b3da3c.tar.gz calp-e7c471cb50bf92debc6e28ef5e45d0c5e4b3da3c.tar.xz |
Made DTSTART have <time> instead of <date> type.
Diffstat (limited to 'vcalendar')
-rw-r--r-- | vcalendar/datetime.scm | 4 | ||||
-rw-r--r-- | vcalendar/recur.scm | 17 |
2 files changed, 18 insertions, 3 deletions
diff --git a/vcalendar/datetime.scm b/vcalendar/datetime.scm index af8382c8..9f47f5c3 100644 --- a/vcalendar/datetime.scm +++ b/vcalendar/datetime.scm @@ -7,7 +7,9 @@ (define (parse-datetime dtime) "Parse the given date[time] string into a date object." - (localize-date + ;; localize-date + + (date->time-utc (string->date dtime (case (string-length dtime) diff --git a/vcalendar/recur.scm b/vcalendar/recur.scm index a480d946..23c00b12 100644 --- a/vcalendar/recur.scm +++ b/vcalendar/recur.scm @@ -126,9 +126,17 @@ (match rule (($ <recur-rule> freq until count interval bysecond byminute byhour wkst) (case freq - ((WEEKLY) (transform-attr! new-event "DTSTART" (cut date-add <> 1 weeks)) + ((WEEKLY) + (transform-attr! new-event "DTSTART" (cut time-add <> 1 weeks)) + (set! (attr new-event "DTEND") + (add-duration (attr new-event "DTSTART") + (attr new-event "DURATION"))) (values new-event rule)) - ((DAILY) (transform-attr! new-event "DTSTART" (cut date-add <> 1 days)) + ((DAILY) + (transform-attr! new-event "DTSTART" (cut time-add <> 1 days)) + (set! (attr new-event "DTEND") + (add-duration (attr new-event "DTSTART") + (attr new-event "DURATION"))) (values new-event rule)) (else (values '() rule)))) (_ (values event rule))))) @@ -142,6 +150,11 @@ (recur-event-stream next-event next-rule))))) (define (recur-event event) + (unless (attr event "DURATION") + (set! (attr event "DURATION") + (time-difference + (attr event "DTEND") + (attr event "DTSTART")))) (recur-event-stream event (build-recur-rules (get-attr event "RRULE")))) (define tzero (make-time time-utc 0 0)) |