           ;; TODO: we shouldn't be putting things in the calendar if they're
           ;; scheduled in the past...
           (->> todos
-               (sort-by (juxt (comp - priority) relevant-date :file :line))
+               (sort-by (juxt (comp - priority)
+                              ;; move rep entries to the bottom for the future blocks, so that
+                              ;; nonrepeating items stick out
+                              (if (= date today) (constantly nil) :repeat?)
+                              relevant-date
+                              :file
+                              :line-number))
                (run! (fn [item] (print-todo-line item {}))))
           (when (= date today)
             (println "\n\n--------------------------------------------------------------------------------")

        (println))
      (when (seq triage)
        (println "== TRIAGE ==")
        (doseq [item (sort-by (juxt (comp - priority) :created-at :file :line) triage)]
          (print-todo-line item {}))
        (println))
      (let [stats-by-date

  [{:keys [directory reset-all-file] :as cfg}]
  (let [q (LinkedBlockingQueue.)]
    (run! #(.add q %) (all-org-files directory))
    (let [do-refresh-all (fn []
                           (log/info "Refreshing all agenda input files")
                           (run! #(.add q %) (all-org-files directory)))
          watcher (watch-dir (bound-fn [{:keys [file] :as event}]
                               (if (= reset-all-file (str file))
                                 (do-refresh-all)
                                 (when (re-matches #".*\.org" (str file))
                                   (.add q file))))
                             (io/file directory)
                             (fs/parent (io/file reset-all-file)))]
