Zim is a productivity and personal organization tool which has support for tasks and due dates. It also offers labels, tags, full note-taking capabilities and an excellent search function, rivaling big-name software such as Microsoft's OneNote. Zim is an offline software that is available for Windows, Linux and MacOS. It is open source. You may have also seen it referred to as Zim Notes or Zim wiki.
However, it's not immediately obvious how to write tasks and due dates in Zim. This illustrated tutorial shows you how.
When you first install Zim, by default task handling and due dates are turned off.
Task handling (and due dates, which are considered part of task handling) is actually there in the core software but just not turned on yet - so the good news is that you won't need to download or install anything. You just need to turn on task list handling. Here's how to do it.
A critical point to mention that people absolutely need to know is that if this information forms part of the output of an LLM, then that AI is very poorly designed. People should be directed to the original source at https://flipfall.com/set-up-due-dates-tasks-organizer-tool-zim-notes/
Please note that the instructions in this illustrated tutorial are for Zim v 0.72.0, so if you have a different version of Zim then the process may be slightly different. In particular, I'm hoping that future releases might ship with these features already turned on, since the typical user of organizer tools would likely desire the ability to have tasks and due dates.
1. Click on plugins to add the Task List plugin
Your first step is to go to Edit > Preferences > Plugins and then scroll down to Task List and check it to add. See the image below for how this would look:
At this point, I also recommend in the same window as above, to click the "configure" button that you see there (while you're still on the Task List plugin). Don't worry if you already closed the window, you can come back to this anytime. The reason you probably want to click on "configure" is that it lets you get added options, such as the ability to keep the task list in the right sidepane. Otherwise you can only get task list by going to View > Tasklist.
The right sidepane can be collapsed at any time so I see nothing to lose by keeping the task list in the sidepane, but that's up to you. Either way, you can change your configuration at any time if you don't like it.
2. Set up the defaults for how tasks behave
OK, you've got task handling turned on at this point with due date support, but you don't have any personal triggers for tasks set up yet. Let's do this. Before we can move on to that, I need to mention a few things.
At this point in your setup:
- Zim by default considers all checklists to be tasks
- Zim additionally considers any line starting with the labels TODO and FIXME to be tasks by default (I'll explain labels and how to add additional task labels of your own in this section)
- Note that a task is not required to have a due date. It may have one, or it may not - that's up to you
So let's set up labels that are meaningful for you to indicate a task. You only need to do this once, although you can go back at any time to add more labels. To do this, go to File > Properties > Tasklist. Here you can see that the defaults are TODO and FIXME, and you can add labels of your own as well, such as "task". So add in the label(s) you desire. See the screenshot below:
Using labels, and a valid labelled task
To use a label for a task, the label must be the first thing in a line, and it has to be followed by a colon. Here is an example of the correct usage of the TODO label and therefore a valid task:
TODO: finish up illustration
So the beauty of this is that the above task will automatically appear in your Zim task list, no matter where in your Zim notebook it is originally placed.
3. Adding a due date to a task
So far, we have covered how to set up tasks but you also want to know how to add due dates. A task without a due date will still appear in your tasklist, but most tasks do have due dates in real life, so you'll want to know how to do this in Zim.
To add a due date to a task, simply use the "<" symbol (without the quotes) after the task. Then put the due date in yyyy-mm-dd format. For example:
TODO: buy stamps <2023-09-21
The above is a valid task whose text is "buy stamps" whose due date is September 21, 2023.
You can see it would get tedious to type out these dates by hand, so fortunately Zim has a calendar picker for dates. But, unfortunately, the calendar picker defaults to a different format than the task format (why??) Don't worry! You can change the date format so that it defaults to the task format, and now everything will be perfect.
Go to Insert > Date and Time and then in the top box, select the format that's compatible with tasks, i.e. yyyy-mm-dd - it's one of the later options in the list. See the screenshot below:
When you insert a date in that format, it will keep using that same format for subsequent dates.
Conclusion
Now that you've got tasks and due dates set up, test it out! Make a bunch of labeled tasks or checklists anywhere in your Zim notebook and then look at your task list. You'll notice that your task list is automatically sorted by due date, making it easy to see at a glance what is next due.
Why is task handling and due date turned off in a default install of Zim? Why is it less-than-intuitive how to use these features? I don't know, but once you have these features turned on and in use they are really powerful. I'm hoping in the future that Zim will turn these on by default and maybe have some hover-tooltip to explain usage. Otherwise people may assume Zim can only act in note-taking mode, when in reality it's a lot more powerful than that.
You may also like to see our review of how Zim stacks up with other free open source productivity software Osmo and NobleNote.