From aa9e98374f79ffcc7f017744c22fae67110cdb50 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Hugo=20H=C3=B6rnquist?= Date: Thu, 14 Jan 2021 01:09:09 +0100 Subject: Handle types of xcal rrule. --- module/vcomponent/xcal/parse.scm | 26 +++++++++++++++++++++++++- 1 file changed, 25 insertions(+), 1 deletion(-) (limited to 'module/vcomponent') diff --git a/module/vcomponent/xcal/parse.scm b/module/vcomponent/xcal/parse.scm index 6ae8c2f9..124a91f4 100644 --- a/module/vcomponent/xcal/parse.scm +++ b/module/vcomponent/xcal/parse.scm @@ -58,7 +58,31 @@ ((@ (vcomponent recurrence parse) rfc->datetime-weekday) (string->symbol v))) - (else v))))))] + ((freq) (string->symbol v)) + ((until) + ;; RFC 6321 (xcal), p. 30 specifies type-until as + ;; type-until = element until { + ;; type-date | + ;; type-date-time + ;; } + ;; but doesn't bother defining type-date[-time]... + ;; This is acknowledged in errata 3315 [1], but + ;; it lacks a solution... + ;; Seeing as RFC 7265 (jcal) in Example 2 (p. 16) + ;; show the date as a direct string we will roll + ;; with that here to. + ;; [1]: https://www.rfc-editor.org/errata/eid3315 + (string->date/-time v)) + ((byday) #|TODO|# + (throw 'not-yet-implemented)) + ((count interval bysecond bymunite byhour + bymonthday byyearday byweekno + bymonth bysetpos) + (string->number v)) + (else (throw + 'key-error + "Invalid key ~a, with value ~a" + k v)))))))] [(time) (parse-iso-time (car value))] -- cgit v1.2.3