How to prioritize tasks by due dates with Baserow formulas

Banner image for Baserow blog on prioritizing tasks by due dates with Baserow formulas

Struggling to keep track of all your to-dos? Baserow combines the simplicity of a spreadsheet with the functionality of a database. One powerful feature is the ability to use formulas to manage and prioritize tasks, especially by due dates.

With formulas, you can automatically prioritize your tasks based on their due dates. This means the tasks with the soonest deadlines will appear at the top of your list, helping you focus your energy on what needs to be done first. This is especially useful for juggling multiple projects or deadlines that fall close together.

What we’ll do

In this tutorial, we’ll dive into how to leverage Baserow formulas to automatically prioritize tasks by due dates, streamlining your workflow and optimizing productivity. We’ll cover the following steps:

Prerequisites

To complete this tutorial, you’ll need the following:

Prioritize tasks dynamically using formulas

In this tutorial, we’ll create a task management system in Baserow that prioritizes tasks based on their due dates. However, you can apply the same principles to other use cases. You can assign statuses based on other criteria such as budget, team, approval status, and more.

For example, to assign tasks based on budget, create a formula that calculates the cost of each task and assigns it to a particular team or individual based on predefined budget thresholds. Also, for tasks requiring approval, create a formula that considers the approval status of each task and automatically assigns it to the appropriate stakeholder.

Let’s dive in!

1. Set up your Baserow database

If you already have a Baserow account, log in. Otherwise, you can quickly create a new account.

Once logged in, you’ll see your main dashboard. You can use existing workspaces and databases, but for this tutorial, we’ll set up a new workspace from scratch.

Just click the + Create workspace button and then Add workspace. We recommend checking out our guides on creating workspaces and adding collaborators if this is your first time using Baserow.

Now that your workspace is ready, let’s add a database! Click + Create new, choose “Database” to build it from scratch and name your database (e.g., “Task Management”). You can then add a new table to organize your data. A premade table will already be there in your new database.

Congratulations! You’ve just created a new database in Baserow, and you’re now ready to store and manage your information.

2. Create a table in Baserow

To keep track of our tasks efficiently, we can create a dedicated table named “Tasks” within the database. This table will store information about each task, and here’s what we’ll include:

  • Task name (Single line text)
  • Due date (Date)
  • Priority (Single select)
  • Status (Single select)
  • Days left (Formula)
  • Priority score (Formula)

Add and configure fields in Baserow

3. Add and configure fields

Next, let’s configure these fields.

Field name
Task name This will hold the name of each task
Due date Enable the time field if you want to be precise with deadlines
Priority Add a single select field with options: High, Medium, Low
Status Add a single select field with options: To-do, In progress, Done

Populate your table with sample tasks with varying statuses and priority levels.

4. Calculate days left with formulas

Now let’s use Baserow formulas to calculate how many days are left until a task is due.

Add a new field to the table and select Formula as the field type. Give the formula field a descriptive name, such as “Days left”.

In the formula editor, we’ll write a formula to calculate days left:

date_diff('day', field('Due Date'), today())

This formula subtracts the current date (using today()) from the due date to get the number of days left until the task is due.

The date_diff() function is given a date unit to measure in as the first argument (‘year’, ‘month’, ‘week’, ‘day’, ‘hour’, ‘minute’, ‘seconds’) calculates and returns the number of units from the second argument to the third.

The today() function returns the current date in utc.

Calculate days left dynamically with formulas

5. Calculate priority score with formulas

To prioritize tasks, we’ll create a score that considers both the due date and the priority level.

We can create a field called “Priority score” (formula type) to assign a numerical value to each item based on specific criteria. This helps us prioritize tasks, tickets, or any data points by their urgency or importance.

In the formula editor, we’ll write a formula to calculate days left:

if(field('Status') != 'Done', 
  if(field('Priority') = 'High', 1000, if(field('Priority') = 'Medium', 100, 10)) - field('Days left'), 
  ' '
)

This helps prioritize tasks by considering both their importance and urgency. It ignores tasks already completed (marked “Done”). Then, it assigns a score based on priority: high priority tasks get 1000 points, medium priority gets 100, and low priority gets 10. Finally, it subtracts the number of days left until the due date. This way, tasks with closer deadlines get a higher score, making them more likely to be tackled sooner.

This approach is useful because it ensures important tasks aren’t forgotten and helps you focus on what needs to be done right away.

Calculate priority score dynamically with formulas

6. Create different views

Views are like different ways of looking at your tasks.

Now, let’s create a view that shows all tasks, another view for just high priority tasks, and another view for tasks due soon (within 7 days). This way, we can quickly see the information we need without being overwhelmed by every task on the list.

We’ll create these collaborative views:

  • All tasks: Shows all tasks.

    Click “Sort” and choose to sort by “Priority score” (high to low). This puts the most important tasks at the top, helping you tackle them first.

  • High priority tasks: Add a filter where “Priority” is “High.”

  • Due soon: Add a filter where “Days Left” is less than or equal to 7.

  • Tasks pending: Add a filter to show only tasks that are not yet “Done.” This way, you can focus on what needs to be completed and avoid getting distracted by finished tasks.

Define High priority tasks in Baserow

Define High priority tasks in Baserow

Define tasks due soon in Baserow

Define tasks due soon in Baserow

Take note of any discrepancies or issues and refine the formula as needed. To further streamline your task management process, you can implement automation for task updates and notifications.

Summary

By following these steps, you will have a dynamic task management system that automatically prioritizes tasks based on their due dates and priority levels. By considering both due dates and priority levels, it automatically puts the most critical tasks at the top of your list. This way, you can stay focused on what needs to be done first and avoid the stress of looming deadlines.

Other useful resources

The following articles may also be helpful:

In case you’ve run into an issue while following this tutorial, feel free to reach out to ask for help in the Baserow community.