How I Use Daily Notes In Obsidian [Wonkish]
The down-and-dirty details including Dataview queries.
In this post, I dig into the [wonkish] details of how I have tweaked Obsidian — the markdown editing platform — as a system to support my ‘workings’, and in particular, my daily notes.
By ‘workings’ I mean the system to create and manage the many threads of my work life: research notes, project information and plans, and tasks.
I am not going to explain all aspects of my workings in this post but will detail other aspects in later posts, such as a deep dive into my project management philosophy and practices, coming soon.
Background
Prior to using Obsidian, I have used many other platforms, in particular Dropbox Notes, Notion, and Typora. I won’t attempt to recap all that experience, here, but I will note that immediately prior to adopting Obsidian, I had migrated years of research notes, and workings into markdown using Typora.
Typora is an excellent markdown editor, but lacks many features that Obsidian has that I make extensive use of these days. But a great deal of what I do, today, in Obsidian, had its start in Typora. In particular, I developed a task management scheme for markdown that I called Taskora (a nod to Typora). In short, Taskora was based on a model of rich task states. For example, a possible, but not-yet active task would take this form:
[?] project name | task description
An urgent task like this
[!] project name | task description
And a completed task:
[x] project name | task description
Note that I avoided the dash that typically precedes markdown tasks to avoid task rendering in Typora. Also note that I relied heavily on Typora’s excellent search capabilities to find, for example, all the urgent tasks associated with a particular project using search strings like “[!] project name” (all urgent tasks in that project) and “] project name” (all tasks in that project)
The outlines of Taskora can be found in the successor, which I now call Taskidian.
Intro to Taskidian and Dataview
The rich task states of Taskora have been migrated to Taskidian, but this has been updated with the features provided by the Dataview plugin on Obsidian.
For those unfamiliar with Dataview it provides a query language to search and display Tables, Tags, and Tasks from the Obsidian markdown vault (a vault is a tree of markdown files and folders managed in Obsidian). Dataview queries can refer to native attributes of file metadata, tags, and tasks — such as a file name or its date of creation, or whether a task is completed or not — and also can search and display user-defined data elements.
The Taskidian task system is parasitic on the native markdown task of Obsidian. It complements the basic form of a markdown task — “- [ ] task description” — with additional user-defined Dataview attributes. Here is an example:
- [ ] [ø:: !] [øø:: project name] task description and other attributes
The initial characters (“- [ ]”) indicate that this line in the markdown file is a task. The second set of characters (“[ø:: !]”) defines a Dataview attribute “ø” that I use to indicate the task status: in this case an urgent task. Note that the use of “ø” (option-o) to denote task type is arbitrary but short. Likewise, the double-ø as a project name attribute is arbitrary and short, too.
(Note: metadata attributes can be defined anywhere in Obsidian files using the “[attribute name:: attribute value]” form. Alternatively, Dataview will look for attributes defined in the file metadata at the top of a file (like “locale: beacon ny”), but with a single ":”. Many other plugins rely on these metadata elements, too, not just Dataview.)
I seldom type these Taskidian elements manually: I rely on Text Expander to convert abbreviations into text for me, so when I type “//!”, it expands to “- [ ] [ø:: !]”. Also, I create Text Expander abbreviations for my projects: “/wf” converts to “[øø:: work futures]”, for example.
I will leave further discussion of Taskidian aside for now, and show how these annotated tasks work with regard to Daily Notes. A more detailed post on Taskidian is coming.
Daily Note Template, Due Today, Doing Today
This is my Daily Note template, based on the Obsidian Template system.
Dataview queries are placed in Obsidian code blocks (preceded by three tick-marks “```'“) with the language as “dataview”.
At the top are a few lines of file metadata. Note the use of the Template “{{Title}}” variable throughout. The Daily Note template is activated via the Periodical plugin, which names the file with the date string of the form “2022-02-22”. So the “date:” field in the metadata is set, along with the file name.
Likewise, in the “due today” section there is a Dataview query, and the Title variable is used in the query. Note that the query doesn’t run in the template, but only in the resulting Daily Note, but by then the Title will be a string of the form “2022-02-22”, and that string has to be converted to an actual date value using the “date(2022-02-22)” function call.
This particular query will search across the Obsidian vault to find all incomplete tasks that also have a due date that matches the date of the Daily Note. The results are grouped by the “ø” attribute, meaning the Taskidian state.
There is an embedded search query (not a Dataview query) in the “filed today” section, which searches for all files that have the current date in their title. Since I prefix the date to almost all files, this provides quick access to files created on that date, no matter what folder they are placed in. In this case, there is the Daily Note itself, and three files that came from a Hypothes.is/Readwise synchronization, where annotated versions of web articles are pulled into Obsidian. (Re: Hypothes.is/Readwise, another post, soon.)
Here’s an example of today’s Daily Note file:
There are two tasks due on this date.
Note that the Dataview Task results allow for checking off the tasks in place: you don’t have to click on the link icon to chase down the corresponding task in some other file. (I just wish I could change the due field date in place, but the results of the Dataview query are not editable in place, other than the task check-off. We will have to wait for true transclusion for that.) Checked tasks disappear from the query results, which is very satisfying to do.
Here we see “!” urgent and “=” in process Taskidian task states. A fuller description of Taskidian I leave to another post, as I said.
The section of the Daily Note with “1, 2, 3” is the framework for my approach to planning and monitoring my daily work. I plan for at most one big task, two medium tasks, and three small tasks per day, as a rule. Sometimes things don’t work out that way, but I try to stay within the painted lanes. Today is a Saturday, so not much is planned, except for writing this piece.
Lower in the Daily Note you see the definition of another task:
An urgent task for the workings project, telling me to look at a new Obsidian plugin. I have not assigned a due date in this case, but I have other ways to find this task, for example, a search for all incomplete tasks in the workings project. I plan to write about project management in another post, soon.
Due This Week, This Month, and Overdue
I use My Daily Note as a home page in Obsidian. There is also an expanded right panel that shows a Calendar (linked to their respective Daily Note files) and a collection of three files each with a respective Dataview query (the titles show when hovered on), and I have selected the “due this week” file:
Here’s the Dataview query for “due this week”:
I’m limiting this query to only various project folders and the “2022 journal” folder. I am filtering only incomplete tasks that are due in the range between today and the end of the week (“date(eow)”), and grouping the results by due date.
I have two other defined queries: “due this month after this week” and “overdue”, which work as their names suggest.
In all cases, the resulting tasks can be checked off in place, but otherwise, I have to click through and find the task in its original source file to make any other edits. The link associated with the task results is for files, not the lines where the tasks are defined, which is a/ a pain, and b/ something that should be remedied by the Dataview team.
Daily Notes, Other Notes, and Queries
I spend the majority of my daily time spread over various sorts of notes in Obsidian, but the majority (~50-60%?) is in the Daily Note, and usually while I am also working elsewhere, like reading websites, writing in Substack or Google Docs, and the like.
I progress from the top of the notes area, adding new sections (delimited by “…”) as I find things to write about, capture links to, or take notes. Very often I start writing something in the Daily Note and it becomes too big, too detailed, or I simply decide it should live in its own file, so I move it out of the Daily Note. For that workflow I employ another plugin, called Note Composer, to copy the text and put it into another document while leaving a wikilink to the new file in the Daily Note.
The rest of my time in Obsidian is either writing or annotating research notes (~20-30%?), or working in project notes (~10-20%?), and those two cases often grow out of initial sections of the Daily Note.
The scaffolding of my daily workings is Dataview. I rely to a large extent on that system’s Task queries to make Taskidian and my Daily workings workable. In my project management workings, I also use Tables and Tags queries, supplementing Tasks.
More to follow.