Build a Time Sheet Template in Notion | Full Step-by-Step Tutorial
Share

Keeping track of your hours is essential whether you’re freelancing for clients, managing a small team, or just trying to understand where your time actually goes. The good news is that you do not need a separate app for this. You can build a simple, flexible timesheet directly inside Notion.
In this tutorial-style guide, I’ll walk you through how to create this system in Notion: from a blank Notion page all the way to automated buttons and calculated hours. You can then adapt it for your own workflows, clients, and reports.
Step 1: Set up your Notion page and inline database
Start with an empty Notion page. Give it a clear name such as “Timesheet Template” so you can easily reuse it later.
- Add an icon (for example, a clock) to make the page easy to recognize in your sidebar.
- Optionally add a cover image, such as something related to time or productivity.
- Open the page menu (the three dots) and enable Small text and Full width so you have more space for your table.
Next, create your timesheet database:
- Type
/inlineand choose Inline database - Rename the database to something like “Timesheet”.
- Click the three dots on the database and choose to hide the database title so you only see the view tabs.
For the first property, rename Name to Task. Add a sample row, such as “Answering client questions”, so you have something concrete to work with while you build out the rest.

Step 2: Add Start Time and End Time properties
Now you can add your time-based properties:
- Click + Add property.
- Search for Date and add a date property.
- Rename this property to Start time.
- Duplicate this property and rename the duplicate to End time.
At this point, you can already manually click into the Start time and End time fields to log hours. However, constantly entering times by hand can get tedious, especially if you switch tasks frequently. That is where buttons come in.

Step 3: Create buttons to automatically timestamp your work
To make time tracking smoother, you can add button properties that automatically set the start and end times when you click them.
In the database:
- Click + Add property again.
- Search for Button and add a button property.
- Move this property closer to the left side of the table.
- Rename it to Start.
Now configure the button:
- Click on the Start property.
- Choose Edit automation.
- Set the action so that when the button is clicked, it edits the Start time property to Time triggered.
- Save your changes.
Test it by clicking the Start button in your sample row. You should see the Start time property automatically fill with the current timestamp.
Repeat the process for the end button:
- Duplicate the Start button property.
- Rename the duplicate to End.
- Open Edit automation.
- Change the action so that clicking End edits the End time property to Time triggered.
- Save and test.
Now you can start a task with one click and end it with another, and Notion will capture the exact times for you.

Step 4: Add a “Start New Time Tracking” page button
To make this system even more seamless, you can add a page-level button that creates a new row in the timesheet and starts tracking time right away.
On the page (above the database):
- Type
/button. - Add a new button block and name it “Start new time tracking”.
- Add an emoji if you like to make it visually stand out.
Configure the button’s action:
- Set the action to Add a page to your Timesheet database.
- Make sure you pick the same database as the one on your page.
- Leave Task as untitled (or add a placeholder if you prefer).
- Set the Start time property to Time triggered.
Now, whenever you click Start new time tracking, Notion will:
- Create a new row in your timesheet.
- Automatically fill in the Start time with the timestamp for when you clicked the button.
You can then type in the task name and click End when you are finished.

Step 5: Calculate hours worked with a formula
Next, you will calculate the duration between the Start time and End time, and convert it into hours.
First, make the data obvious for testing:
Set your sample Start time to 3:00 PM and your End time to 4:00 PM so you can clearly see that the result should be one hour.
Then add a new formula property:
- Click + Add property.
- Choose Formula.
- Rename it to Hours.
Open the formula editor and build a calculation that:
- Uses
dateBetween(End time, Start time, "minutes")to get the difference in minutes. - Divides the result by 60 to convert minutes into hours.
The reason for using minutes instead of hours directly is that dateBetween in hours can round in ways that are less precise. Converting from minutes to hours gives you more accurate partial-hour values, such as 1.5 hours for 3:00 PM to 4:30 PM.
After applying the formula, test it by adjusting your times. For example, change End time to 4:30 PM and confirm that the Hours property shows 1.5.
Finally, add a calculation at the bottom of the Hours column:
- Click the Hours property footer.
- Choose Calculate, then More options, then Sum.
Now you’ll see the total hours for all visible rows in that view.

Watch the Video Tutorial
You should now have a working base for your timesheet! You can customize this for many different scenarios and use cases. If you’d like to watch the tutorial instead you can check out the video here:
Interested in a pre made template? Check out the Notion Time Sheet template HERE!