anchor.diff:                 (asetf new-timestamp
                         (adjust-timestamp (or it previous-timestamp)
                           (offset offset-period offset-count)))
  -               (when (timestamp< new-timestamp timestamp)
  -                 (update-timestamp offset-period)))
  +               (cond
  +                 ((and end-timestamp (> new-timestamp end-timestamp))
  +                  (setf new-timestamp nil))
  +                 ((timestamp< new-timestamp timestamp)
  +                  (update-timestamp offset-period))))
   
                (update-timestamp-until-day ()
                  (update-timestamp :day)
  
positive.code:           (update-timestamp-until-day)
            (update-timestamp-until-week))))
  
      (timestamp-to-universal new-timestamp)))
  
  (defun update-recurring-event-time (id &optional data result-struct)
    (let ((result (or result-struct (gethash id *db-results*)))
          (new-time (next-recurring-event-time id data)))
      (modify-db id :auto-updated-time new-time)
      (with-locked-hash-table (*db-results*)
        (setf (result-time result) new-time))
      (event-index-update result)))
  
  (defun recurring-event-schedule (id &optional data)
    (let* ((event (or data (db id)))
  
negative.code:                                          (handler-case
                                             (parse-datetime it time)
                                             (local-time::invalid-time-specification () nil)))
                                         (getf item :local-end-date)))
                     (title (or (post-parameter-string "title")
                                (getf item :title)))
                     (details (or (post-parameter-string "details")
  