aboutsummaryrefslogtreecommitdiff
path: root/vcalendar
diff options
context:
space:
mode:
authorHugo Hörnquist <hugo@lysator.liu.se>2019-03-08 13:14:34 +0100
committerHugo Hörnquist <hugo@lysator.liu.se>2019-03-08 13:14:34 +0100
commite7c471cb50bf92debc6e28ef5e45d0c5e4b3da3c (patch)
treec6f59fc9464d5c9ea704c1c05a6b6f57be13bd2f /vcalendar
parentGot DAILY repeating event! (diff)
downloadcalp-e7c471cb50bf92debc6e28ef5e45d0c5e4b3da3c.tar.gz
calp-e7c471cb50bf92debc6e28ef5e45d0c5e4b3da3c.tar.xz
Made DTSTART have <time> instead of <date> type.
Diffstat (limited to 'vcalendar')
-rw-r--r--vcalendar/datetime.scm4
-rw-r--r--vcalendar/recur.scm17
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))