How to Build Unified Time Tracking in Notion (Tasks + Projects)

Set up Notion time tracking with one Tasks database, a Projects database, and linked views. Log work sessions across every project without duplicate task lists.

Oct 9, 2026
How to Build Unified Time Tracking in Notion (Tasks + Projects)
If you want reliable Notion time tracking across every project, the clean pattern is simple: keep one Tasks database, relate tasks to Projects, then use linked views to show only the relevant tasks inside each project page. Everything below is built with native Notion features.
Desk clock next to a notebook, a simple way to picture Notion time tracking. Photo by freestocks on Unsplash
Desk clock next to a notebook, a simple way to picture Notion time tracking. Photo by freestocks on Unsplash
This avoids the most common setup mistake: creating a separate task database inside each project. That approach makes cross-project reporting, filtering, and time tracking automations harder to maintain.

The core model (Tasks + Projects + Time Entries)

At a minimum, you want three databases:
  • Projects: one row per project
  • Tasks: one row per task, related to a project
  • Time entries (work sessions): one row per tracked session, related to a task (and optionally rolled up to the project)

Why one Tasks database matters

A unified tasks database gives you:
  • One place to run automations (status changes, reminders, assignments)
  • A true “all tasks” view across projects for admins and project managers
  • Simple personal views (e.g., “My tasks due this week”)
When each project has its own task database, you lose those global views and end up rebuilding the same automations repeatedly.

Step 1: Create (or consolidate into) one Tasks database

If you already have tasks scattered across multiple project-specific databases, migrate them into a single Tasks database.
In your Tasks database, add at least these properties:
  • Task name (title)
  • Project (relation to Projects)
  • Status (status)
  • Assignee (person)
  • Due date (date)
Optional but useful:
  • Tags (multi-select)
  • Priority (select)
  • Estimated time (number)

Step 2: Add a Project relation and use it everywhere

The key is that every task should be related back to exactly one project (or left blank if it is truly “non-project work”).
Once that relation exists, you can build consistent views anywhere in Notion.

Step 3: Build a project page that uses a linked view of Tasks

Inside your Projects database template, add a linked view of the Tasks database and filter it to the template itself:
  • Filter: Project → contains → [your project template]. Notion turns this into a self-referencing filter, so every new project created from the template shows only its own tasks.
Now every project page shows the tasks that belong to it, without needing a separate database.

Helpful project-page views to include

Inside the project page, consider multiple linked views:
  • Board by Status (filter to this project)
  • Table: Upcoming (Status not Done, Due date within 14 days)
  • Table: Backlog (Not started)

Step 4: Auto-create tasks when a new project is created

If your projects repeat the same steps (e.g., onboarding), create tasks automatically when a project is created.
Two common triggers:
  1. When a new Project is created (best when projects should immediately have tasks)
  2. When Project status changes to something like “Create tasks” (best when projects are drafted first)

Automation pattern

For each task you want created:
  • Action: Add a page to Tasks
  • Set Project = the triggering project
  • Set any defaults (Status, Priority, Tags)
This keeps your template lightweight and makes the task creation logic explicit. Database automations triggered by Page added or Property edited require a paid Notion plan (Plus or above) (as of October 2026, check current pricing).

Step 5: Add Notion time tracking with a Time entries database

Create a Time entries database that relates to Tasks.
Suggested properties:
  • Work session (title)
  • Task (relation to Tasks)
  • Start (date/time)
  • End (date/time)
  • Duration (minutes) (formula or number)
  • Notes (text)

Where to start/stop tracking

A common pattern is to use a status change as the signal: moving a task to a status like “In progress” creates a Time entry with the start time, and moving it to “Done” fills in the end time. A Notion database automation, a button, or a Make or Zapier scenario can handle those steps.
Once every project uses the unified Tasks database, that one time tracking workflow works across all of them instead of being rebuilt per project. For broader process cleanup, see how we approach operations automation.

Common pitfalls (and how to avoid them)

  • Pitfall: Separate task DB per project → Fix: consolidate tasks into one database and filter with linked views.
  • Pitfall: Tasks not related to projects → Fix: make the Project relation required for project work.
  • Pitfall: No global view → Fix: build an “All tasks” view filtered by status, assignee, and due date.

Get help building Notion time tracking

If your workspace already has multiple project databases and time tracking is partially implemented, the fastest path is usually:
  1. Standardize the schema (Projects ↔ Tasks ↔ Time entries)
  2. Migrate tasks into one Tasks database
  3. Rebuild project templates + automations on top of the unified model
We rebuild these setups regularly: schema first, then migration, then templates and automations. If you want an expert to design or rebuild yours, book a free call with a Connex Notion consultant.