aboutsummaryrefslogtreecommitdiff
path: root/module/vcomponent/recurrence/generate-alt.scm
diff options
context:
space:
mode:
authorHugo Hörnquist <hugo@lysator.liu.se>2020-04-27 03:02:00 +0200
committerHugo Hörnquist <hugo@lysator.liu.se>2020-04-27 03:02:00 +0200
commit4a63bd27c432e5c9f04309219bad3ef83814c45a (patch)
tree61a9d664960b832790f66d23a9632f76577b1b0f /module/vcomponent/recurrence/generate-alt.scm
parentTODO additions. (diff)
downloadcalp-4a63bd27c432e5c9f04309219bad3ef83814c45a.tar.gz
calp-4a63bd27c432e5c9f04309219bad3ef83814c45a.tar.xz
Add final-event-occurence procedure.
Diffstat (limited to 'module/vcomponent/recurrence/generate-alt.scm')
-rw-r--r--module/vcomponent/recurrence/generate-alt.scm13
1 files changed, 13 insertions, 0 deletions
diff --git a/module/vcomponent/recurrence/generate-alt.scm b/module/vcomponent/recurrence/generate-alt.scm
index 7337ddaa..d48e471d 100644
--- a/module/vcomponent/recurrence/generate-alt.scm
+++ b/module/vcomponent/recurrence/generate-alt.scm
@@ -292,6 +292,19 @@
date-stream))]
[else date-stream])))
+
+(define-public (final-event-occurence event)
+ (define rrule (parse-recurrence-rule
+ (attr event 'RRULE)
+ (if (date? (attr event 'DTSTART))
+ parse-ics-date parse-ics-datetime)))
+
+ (if (or (count rrule) (until rrule))
+ (let ((instances (rrule-instances event)))
+ (stream-ref instances (1- (stream-length instances))))
+ #f))
+
+
(define (generate-recurrence-set base-event)