Introducing the Logseq DONE Time plugin

Posted on

I've recently become quite enamoured with Logseq. It's a modern, open source notes app and outliner with some unique and powerful features. At home I use it to keep track of personal notes and all kinds of random data, and at work it's become my personal knowledge dump and task management system. Logseq is very flexible and capable out of the box but it also has a plugin mechanism that allows you to extend its core functionality.

A screenshot of Logseq
A screenshot of Logseq

At work, I find it's useful to know when I've completed tasks, especially when preparing for standups and other meetings, and this is something that Logseq doesn't do out of the box. Two plugins plugins already existed which provide this kind of functionality but I wasn't happy with either of them. One stored the completion timestamps in an inconvenient format that is difficult to use with Logseq's query functionality and the other introduces a UI popup every time a task is completed which got in my way.

So, I created the DONE Time plugin. It's currently very simple with no UI or settings, and just adds a done-ms property completed task blocks. As the name indicates, the timestamp is in milliseconds (in Unix time), making it easy to do precise filtering and sorting. The done-ms property is removed if a task's state changes from DONE to some other state.

The timestamps aren't nice to look at so I hide them using the :block-hidden-properties option in config.edn. I plan to explore whether it's possible to apply custom rendering of specific properties so that the timestamps can be displayed in a more human friendly way.

I hope that this plugin is of use to some Logseqers out there. It can be found in the Logseq Marketplace inside the app.