anchor.diff:                    (groups-selected (or (post-parameter-integer-list "groups-selected")
                                          (getf item :privacy))))
   
  -             (labels ((try-again (&optional e not-recurring)
  +             (labels ((submit-event (fn &key host id)
  +                        (let ((arguments (list :lat lat
  +                                               :long long
  +                                               :local-time local-time
  +                                               :privacy groups-selected
  +                                               :title title
  +                                               :details details
  +                                               :address location
  +                                               :recurring recurring)))
  +                          (when (or recurring
  +                                    ;;reset parameters when :recurring t -> nil
  +                                    (getf item :recurring))
  +                            (asetf arguments
  +                                   (append
  +                                     (list :frequency symbol-frequency
  +                                           :interval interval
  +                                           :days-of-week symbol-days-of-week
  +                                           :by-day-or-date symbol-day-or-date
  +                                           :weeks-of-month symbol-weeks-of-month
  +                                           :local-end-date local-end-time)
  +                                    it)))
  +                          (when host
  +                            (asetf arguments (append (list :host host) it)))
  +
  +                          (if id (apply fn id arguments)
  +                                 (apply fn arguments))))
  +
  +                      (try-again (&optional e not-recurring)
                 ;; needs to be labels not flet because of
                 ;; submit-data's parameter precedence
                           (enter-event-details :title title
  
positive.code:                                                                            "edit-datetime")))
                                               :error e))
  
                        (submit-data (&key lat long address)
                          (cond
                            (id
                             (modify-event id :lat lat
                                              :long long
                                              :address address
                                              :local-time local-time
                                              :recurring recurring
                                              :frequency symbol-frequency
                                              :interval interval
                                              :days-of-week symbol-days-of-week
                                              :by-day-or-date symbol-day-or-date
                                              :privacy groups-selected
                                              :weeks-of-month symbol-weeks-of-month
                                              :local-end-date local-end-time
                                              :details details
                                              :title title)
                             (flash "Your event has been updated")
                             (see-other url))
                            (t
                             (flash "Your event has been added to the calendar")
                             (see-other
                               (strcat "/events/"
                                       (create-event
                                         :lat lat
                                         :host new-host
                                         :long long
                                         :local-time local-time
                                         :privacy groups-selected
                                         :title title
                                         :details details
                                         :address location
                                         :recurring recurring
                                         :frequency symbol-frequency
                                         :interval interval
                                         :days-of-week symbol-days-of-week
                                         :by-day-or-date symbol-day-or-date
                                         :weeks-of-month symbol-weeks-of-month
                                         :local-end-date local-end-time)))))))
                 (cond
                  ((post-parameter "cancel")
                   (see-other (or (script-name*) "/home")))
  
negative.code:                                 #'< :key #'result-time)))
  
        (flet ((trim-and-update (results)
                 ;; loop through results starting at oldest
                 ;; update recurring events and trim old ones
                 (do* ((events results (cdr results))
                       (event (car events)))
                      ((or (not events) (not (stale-eventp event now)))
  