aboutsummaryrefslogtreecommitdiff
path: root/module/vcomponent/recurrence/generate-alt.scm
diff options
context:
space:
mode:
authorHugo Hörnquist <hugo@lysator.liu.se>2020-05-14 17:44:39 +0200
committerHugo Hörnquist <hugo@lysator.liu.se>2020-05-14 17:44:39 +0200
commit8a1dbbb0b3158cdd8870e8abbbf485b8bf84c505 (patch)
treea53d16d6186df0a92fe1328b7eaf87d1ce999e69 /module/vcomponent/recurrence/generate-alt.scm
parentRemove some duplicates in recurrence set generation. (diff)
downloadcalp-8a1dbbb0b3158cdd8870e8abbbf485b8bf84c505.tar.gz
calp-8a1dbbb0b3158cdd8870e8abbbf485b8bf84c505.tar.xz
Remove recurrence instances before our start date.
Diffstat (limited to '')
-rw-r--r--module/vcomponent/recurrence/generate-alt.scm8
1 files changed, 6 insertions, 2 deletions
diff --git a/module/vcomponent/recurrence/generate-alt.scm b/module/vcomponent/recurrence/generate-alt.scm
index a98d10db..77304b55 100644
--- a/module/vcomponent/recurrence/generate-alt.scm
+++ b/module/vcomponent/recurrence/generate-alt.scm
@@ -71,7 +71,6 @@
-;; TODO compliacted fields
;; rrule → (list extension-rule)
(define (all-extenders rrule)
(make-extenders
@@ -345,7 +344,12 @@
(aif (attr* event 'EXDATE)
(cut member <> (map value it))
(const #f))
- (generate-posibilities rrule (attr event 'DTSTART))
+ ;; Some expanders can produce dates before our start time.
+ ;; For example FREQ=WEEKLY;BYDAY=MO where DTSTART is
+ ;; anything after monday. This filters these out.
+ (stream-drop-while
+ (lambda (d) (date/-time< d (attr event 'DTSTART)))
+ (generate-posibilities rrule (attr event 'DTSTART)))
;; TODO ideally I should merge the limited recurrence set
;; with the list of rdates here. However, I have never
;; sen an event with an RDATE attribute, so I wont worry