Project and task management can be incredibly easy or super complicated, depending on your needs, whether you work with other people, and which information is important to you. Thankfully, Notion really covers it all thanks to its extreme flexibility.
For those of you new to Notion, it's basically an all-in-one workspace that allows you to organize your notes, tasks, projects, and more in one place. With its customizable databases, templates, and integrations, Notion is the perfect solution for anyone looking to manage their tasks and projects more efficiently. Whether it's for work, or personal life, you want to have the best framework in mind for increasing your productivity and time management.
In this tutorial, I'll walk you through the steps of setting up and using Notion for task management.
Getting Started with Notion
To get started with Notion, you'll need to create an account (if it’s for personal use, you can select the free plan to start). Once you've signed up, you can start creating pages & databases. Notion offers a variety of pre-made templates to choose from, but you can also start by following the steps below to build your first task management system. If you're looking for a completely built-for-you system, you might be interested in my Second Brain Notion template.
Notion Task Management
Build Your Task Manager in Notion
A task management system can be as simple as a to-do list with checkboxes where you assign a status: "not started" (unchecked) or "completed" (checked). This is the first step for all task management systems.
While this basic productivity framework has some advantages (it's simple and doesn't take too much time to set up), you may want to add a few features to your system to get the best outputs.
So first, create a new database, and call it Tasks. Then, add the following properties to your database:
- Status (status): Some tasks take more time than others to complete, ranging from several hours to months. In addition to "not started" and "completed," you may want to add an "in progress" status option. As this doesn't fit the checkbox system (⬜ or ✅), you can create another type of property in Notion called a status property.
- Task owner (person): If you work with a team, you might also want to assign team members to each task. This can be done using a "person" property (⚠️ your teammates need to be members of your Notion workspace). This property is not necessary if the Tasks manager is for personal use only.
- Deadline (date): To avoid being late on a project, you can put on a "date" property to your database to set a fixed deadline for some tasks.
- Files & Media: This feature is especially useful if someone creates tasks for other team members and they need to share files, documents, or images. Just select a "Files & media" property to your database. You can also use an URL property for that same purpose.
- Archive (checkbox): you can add a checkbox property to your database to archive items when checked. Then, filter all your views to display only unchecked items. This will make archived items automatically disappear from your views.
Now that we have our main elements, let's see what the database currently looks like:
The table view is an easily editable view, which I recommend using at first, when setting up the database.
Late Tasks & Days Left
In addition to the deadline property, you may want to quickly and visually know which tasks are late. This can be done using a formula that gives you the number of days late or left on any task. Below is the formula I use:
if(empty(prop("Deadline")) == true, "", if(prop("Status") == "Completed", "🟢", if(if(timestamp(prop("Deadline")) > timestamp(now()), dateBetween(now(), prop("Deadline"), "days") - 1, dateBetween(now(), prop("Deadline"), "days")) == 0, "🟠 Last day", if(if(timestamp(prop("Deadline")) > timestamp(now()), dateBetween(now(), prop("Deadline"), "days") - 1, dateBetween(now(), prop("Deadline"), "days")) < 0, ("🟡 " + format(if(timestamp(prop("Deadline")) > timestamp(now()), dateBetween(now(), prop("Deadline"), "days") - 1, dateBetween(now(), prop("Deadline"), "days")) * -1)) + " day(s) left", ("🔴 " + format(if(timestamp(prop("Deadline")) > timestamp(now()), dateBetween(now(), prop("Deadline"), "days") - 1, dateBetween(now(), prop("Deadline"), "days")) )) + " day(s) late"))))
This formula is based on the Deadline and Status properties. You can also change or remove the circle icons within the formula.
Kanban, Gantt, Calendar Views
Kanban view (board)
Board view, grouped by status, sorted by “Deadline” = “Descending”
Per owner view
Table view, grouped by owners, sorted by “Deadline” = “Descending”
Gantt view (timeline)
Timeline view, sorted by “Deadline” = “Descending”
All of these views can coexist in the same location, and you can extract some of these views to other places in your Notion workspace. This is useful if you want one of these views, but with a specific filter (e.g., Gantt view filtered on Owner = Jibril Simon).
PS: this Tasks database can become an integral part of your PARA system.
If you have multi-step tasks that always follow the same pattern, database templates can be very useful. Setting them up is super easy - just follow these steps:
- In your Tasks database, click the down arrow next to the blue “New” button.
- Click “New template.”
- Give your template a name and icon (if needed).
- In the card section (below all the properties), add whatever steps or instructions you want. For sub-tasks, you can use simple checkboxes and rich text for instructions.
- Once the template is properly set up, close it.
To use the template, simply create a new task and click the template name in the item card. You can also click the down arrow next to the blue “New” button and select the desired template.
Pro tip: Using the card section can also be useful to take notes on specific aspects of your tasks or projects.
There's another native way to include subtasks in your task list by using Notion's subitems feature.
To access this feature, click on the three dots at the top-right corner of your database, select "Sub-items," and click on "Create". You can add as many layers of subtasks as you want, but I recommend keeping it minimal for easier navigation.
⚠️ When activated, new relationships will be automatically created (to the parent and child items) in your database. You can hide these newly created properties if you don’t want to see them.
To add new subtasks to your task, click the down arrow at the left of your task and add new items. You can then show/hide these subtasks using that down arrow. I love the way it displays the arrows on the timeline view:
Notion Recurring Tasks
You can use Notion's database template feature to add recurring tasks (or repeating tasks). Click the down arrow next to the blue "New" button, add a new database template, name it, and fill out its different properties.
Then, go back to your database templates list and click the three dots next to the template name. From there, select the "Repeat" option and choose the frequency of repetition for the task.
Finally, you'll access a more detailed view where you can select the interval between repetitions, the time at which the new item will be created, and the start date for the template to begin its recurrence.
Notion Weekly To Do
Thanks to the Deadline (or date) property, we can now set up views for our weekly tasks. There are two options here:
1/ With a calendar view: go to your database settings → Layout → Show calendar as → Week. Super easy to set up, and nice to look at when it's not congested.
2/ With a table view: Duplicate your table view and add a filter on the Deadline property that says: Deadline → Start date → Is relative to today → This week.
Supercharge Your Task Manager
Having a simple task management system is great, but the beauty of Notion resides in its ability to connect multiple databases together. Notion's relation property is a game changer for project & task management.
Assuming that most companies or individuals have projects they are working on, we can assign each task to the project it relates to. Let’s assume we have a simple Projects database with the following main properties: Name (title), Status (status), Timeframe (date), etc.
Returning to our Tasks database, we need to create a new "Relation" property and select our Projects database. We don't need to select "Show on Projects" necessarily (one-way relation). Then, we can assign the corresponding project for each task.
Why is this useful?
When working on tasks, it's important to be able to quickly access the project page. This can be done by clicking on the related item in the task manager. If you have stored important information regarding the project, it can then be quickly accessed from any related tasks.
But the real superpower of linking these databases together comes from something else.
Now, you can add a linked database of Tasks inside your Projects database template. By using self-referential filters, you can filter the linked view of the Tasks database per "project" = [name of your template]. In simpler terms, each time you create a new project using this template (you can enable it by default), you'll be able to access all your related tasks because the linked view of Tasks will be automatically filtered for you.
Integrating this template into your project management system makes it super easy to access the information easily. The big advantage of this solution is the ability to retrieve all your initial task views, such as Gantt, Kanban, Calendar, etc.
More information on linked databases and self-referential filtering here.
Project progress based on tasks status
Now that your Projects database is linked to your Tasks database, you can retrieve the number of completed tasks per project and create a progress bar based on the total number of tasks associated with this project.
It's super easy to set up:
- In your Projects database, add a rollup property and name it "Progress" or "Completion".
- Select "Tasks" in the "relation" field and "Status" in the "property" field.
- In the "calculate" field, choose "Percent per group" → "Complete".
- Then, in your property settings, select "Show as" → "Bar".
Linking to other databases
Now that you understand the system, you can apply it to all databases that you think might add value and build even more self-referential filtered templates.
Depending on your work type, you have several options. The main ones are:
- If you're an agency, consulting firm, or freelancer: you can link your task manager to your clients' CRM.
- If you're a SaaS or eCommerce store: you can link your task manager to your different features and/or products.
- If you're any type of company: you can link your task management system to your employee directory. By using self-referential filtering, you'll be able to create personal dashboards for all your teammates.
- If it's for personal use: you can link your tasks to your areas database (see how to set up your PARA system).
Notion is, in my biased opinion, the best tool out there to manage tasks, mainly thanks to its ability to connect to other databases such as projects, team directory, etc. The self-referential filtering feature is something I use all the time, and I love how easy it is to set up.
Whether you're looking for something simple (using checkboxes) or need a more complex system, Notion's flexibility covers the entire range of possibilities.
Start now & create your Notion account 🙃