Sort deadline query chronologically

Sorting by scheduled date:

#+BEGIN_QUERY
{:title ["📆 near TODOs (next 7 days, scheduled or deadline)"] 
     :query [:find (pull ?b [*])
          :in $ ?start ?next
          :where
          (or
            [?b :block/scheduled ?d]
            [?b :block/deadline ?d]
          )
          [(>= ?d ?start)]
          [(<= ?d ?next)]
  ]
  :result-transform (fn [result] (sort-by (fn [d] (get d :block/scheduled) ) result))
  :inputs [:today :7d-after]
  :collapsed? false}
#+END_QUERY

Sorting by deadline:

#+BEGIN_QUERY
{:title ["📆 near TODOs (next 7 days, scheduled or deadline)"] 
     :query [:find (pull ?b [*])
          :in $ ?start ?next
          :where
          (or
            [?b :block/scheduled ?d]
            [?b :block/deadline ?d]
          )
          [(>= ?d ?start)]
          [(<= ?d ?next)]
  ]
  :result-transform (fn [result] (sort-by (fn [d] (get d :block/deadline) ) result))
  :inputs [:today :7d-after]
  :collapsed? false}
#+END_QUERY

Sort by scheduled then deadline

#+BEGIN_QUERY
{:title ["📆 near TODOs (next 7 days, scheduled or deadline)"] 
     :query [:find (pull ?b [*])
          :in $ ?start ?next
          :where
          (or
            [?b :block/scheduled ?d]
            [?b :block/deadline ?d]
          )
          [(>= ?d ?start)]
          [(<= ?d ?next)]
  ]
  :result-transform (fn [result] (sort-by (juxt (fn [d] (get d :block/scheduled) ) (fn [d] (get d :block/deadline) ) ) result))
  :inputs [:today :7d-after]
  :collapsed? false}
#+END_QUERY

Sort by deadline then scheduled

#+BEGIN_QUERY
{:title ["📆 near TODOs (next 7 days, scheduled or deadline)"] 
     :query [:find (pull ?b [*])
          :in $ ?start ?next
          :where
          (or
            [?b :block/scheduled ?d]
            [?b :block/deadline ?d]
          )
          [(>= ?d ?start)]
          [(<= ?d ?next)]
  ]
  :result-transform (fn [result] (sort-by (juxt (fn [d] (get d :block/deadline) ) (fn [d] (get d :block/scheduled) ) ) result))
  :inputs [:today :7d-after]
  :collapsed? false}
#+END_QUERY

Hope this helps anyone!

11 Likes