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:                   (new-long (post-parameter-float "long"))
                    (lat (or new-lat (getf item :lat)))
                    (long (or new-long (getf item :long)))
                    (recurring (or ; set recurring to "t" not "on" from post-par
                                   (when (post-parameter "recurring") t)
                                   (getf item :recurring)))
                    (frequency (or (post-parameter-string "frequency")
                                   (awhen (getf item :frequency)
                                     (symbol-name it))))
  
negative.code:                                       "end-date" (awhen local-end-time
                                                     (humanize-exact-time it))))))
  
                  ((or (post-parameter "submit-edits")
                       (post-parameter "confirm-location"))
                   (submit-data))
  
                  (t (try-again)))))))))))
  
  