diff options
-rw-r--r-- | module/vcomponent.scm | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/module/vcomponent.scm b/module/vcomponent.scm index de816886..7ae9adae 100644 --- a/module/vcomponent.scm +++ b/module/vcomponent.scm @@ -100,6 +100,29 @@ (prop event 'UID)) +(define-public (remove-event event) + + (let ((events (getf 'events))) + (setf 'events (delete event events))) + + (if (repeating? event) + (let ((repeating (getf 'repeating-events))) + (setf 'repeating-events (delete event repeating))) + (let ((regular (getf 'fixed-events))) + (setf 'fixed-events (delete event regular)))) + + (let ((event-set (getf 'event-set))) + (setf 'event-set + (stream-remove + (lambda (ev) + (equal? (prop ev 'UID) + (prop event 'UID))) + event-set))) + + (hash-set! (getf 'uid-map) (prop event 'UID) + #f)) + + (define / file-name-separator-string) (define-public (save-event event) |