A Notion checklist is either a run of to-do blocks on a page or a small database with a Checkbox property. Type [] and a space at the start of a line on desktop, or type /todo, and you have a to-do checkbox. If finished items should sort down, drop out of view, reset in one click or add up to a percentage, use a database with a Name column and a Done checkbox. I'd start with to-do blocks and switch the second time you need the same list, because that's when sorting and resetting pay back the setup.
For a one-off packing list or a meeting's action items, choose to-do blocks. For a checklist you run every week, such as a client close-out or month-end admin, choose a Checkbox database with an "Uncheck all" button. For a checklist a whole team works through, choose the database as well, because its filters and sorts can be saved for everyone. This guide builds both versions, then the button that resets the database one.
To-do blocks or a checklist database: which one do you need?
Both versions put a checkbox next to each item. The difference shows up after you tick a few: a to-do block stays exactly where it is, while a database row can be sorted, filtered, counted and reset.
| What you need | To-do blocks | Checkbox database |
|---|---|---|
| Setup | [] and a space, /todo, or a keyboard shortcut | /Table view, then a Checkbox property named Done |
| Checked items | Stay in place; you drag them down yourself | A sort or filter on Done moves them down or hides them |
| Steps inside an item | Tab nests a to-do under the line above | Sub-items, turned on in database settings |
| Reuse | A button that inserts the same to-do list | A database template or a repeating template |
| Reset | Untick each box by hand | One "Uncheck all" button edits every checked row |
| Progress | You count by eye | A Percent checked rollup on a parent record, or a formula |
| Team use | One shared list with no views | Views saved for everyone, plus a Person property for owners |
| Best for | A list you'll finish once | A list you repeat or share |

How to make a checklist in Notion with to-do blocks
To-do blocks are the fastest Notion to-do list: each line is a checkbox inside an ordinary page, with nothing to configure.
- Click into an empty line and type
[], then a space. Notion's writing and editing basics point out that there's no space between the brackets. Typing/todogives you the same block. - Prefer the keyboard? In Notion's keyboard shortcuts list, cmd + option + 4 on a Mac and ctrl + shift + 4 on Windows and Linux create a to-do checkbox.
- Already have the items as bullets? Hover over a line, click the ⋮⋮ handle and choose Turn into, which changes a block's type, for example a bullet into a checkbox.
- Press Tab to nest a to-do under the one above it, and shift + Tab to pull it back out. Nesting works well for the steps of a bigger item.
- Tick items from the keyboard: with the cursor in a to-do, cmd + enter on a Mac or ctrl + enter on Windows checks or unchecks it.
On a phone, the editor has no / commands. Tap + in the editing toolbar above the keyboard and choose To-do list. The same toolbar can indent or un-indent a line, so nested steps work there too.
Moving checked items to the bottom
A ticked to-do doesn't move. That's the exact complaint in a Reddit thread asking for a simple checklist: the poster wanted checked items to sink to the bottom, one reply said they simply move items down by hand, and another suggested a list with two fields, Name and a Done checkbox, sorted and filtered on Done. With blocks, you can drag a finished line by its ⋮⋮ handle, or press esc to select the block and move it with cmd/ctrl + shift + arrow keys. If you're doing that several times a day, take it as the signal to switch to the database version, where a sort does the moving for you.
Build a checklist database you can sort and filter
The database version takes two properties. Start with one table and one checkbox; add the extras only if the list asks for them.
- On your page, type
/Table viewand press enter to create an inline table, as the Notion help page on tables describes. Each row's Name is one checklist item. - Select + next to the right-most property, name it Done and choose Checkbox. Notion's database properties guide describes Checkbox as "useful for lightweight task tracking".
- Type your items into the rows and tick Done as you finish them.
Send checked items down or out of view
Open the settings menu at the top of the table and use the View settings section, which Notion's help on views, filters, sorts and groups walks through.
- Sort: choose Sort, then Done. If the checked rows land on top, switch the sort direction so they sit at the bottom.
- Filter: choose Filter, then Done, and show only unchecked rows. Select Save for everyone if everyone using the view should get the filter; leave it unselected and the filter applies only to you.
- Group: grouping by Done splits the table into two sections, open and finished, if you'd rather see both at once.
I'd keep two views side by side: Open, filtered to unchecked rows, and All, sorted on Done. The filtered view is the one you work from; the sorted one is where finished items stay visible, so nothing looks lost. For a visual cue, View settings also has Conditional color: select New color setting, pick Done, set the rule, and in a table choose whether the color covers the entire row. You need Can edit content, Can edit or Full access to the database for that, and our guide to conditional color rules in each view covers what else the rules can do.
To tick or untick several rows at once by hand, hover over a row and click the selection box that appears next to it, or hover over the Name header to select every row, then edit Done for all of them from the menu that appears. With rows selected, cmd/ctrl + / opens the same edit.
Add steps under an item
If an item has its own steps, turn on sub-items: open the settings menu, and under Database settings select More settings, then Sub-items, then Turn on sub-items, as shown in Notion's help on sub-items and dependencies. Your Done filter then interacts with sub-item visibility. Under Filter options, Parents and sub-items shows both levels that match the filter, while Parents only shows matching parents with a count of their sub-items. One thing to know before you clean up: deleting an item with sub-items deletes the sub-items too.
Checkbox or Status?
A checkbox answers one question: done or not done. Once items need in-between states such as Started or Waiting on client, use a Status property, which groups its options under To-do, In Progress and Complete; our comparison of Status and Select for project tracking picks it up from there.
Reuse the same checklist without rebuilding it
Which reuse method fits depends on where the checklist lives.
Insert the to-do list with a button
Notion's guide to buttons suggests a button to "Spin up a checklist for your team" by inserting a to-do list "where the items will always be the same", such as a project handover. Type / and choose Button, select Insert blocks, and add your to-do items in the box with the / command. Choose where the items land: Above button, Below button, At top of page or At bottom of page. Click Done; from then on, each click of the button adds the same list again. I'd use this for checklists that belong inside another page, such as a handoff list on each project page, because the ticks stay with that project.
Carry the checklist in a database template
If each project is already a page in a database, put the checklist in a template. Following Notion's database templates help, click the dropdown arrow next to New, select + New template, and add your to-do blocks to the template page. Whatever you add shows up identically on every page created from that template, and you can set properties there too; our guide on which defaults belong in a database template covers that part. Templates stay in the database where you made them, so a second database needs its own.
On a schedule, a repeating template can create a fresh checklist page every day or week, and our guide to the Notion repeating database template covers the schedule settings.
Reset the checklist with an "Uncheck all" button
For lists that repeat, such as groceries or weekly check-ins, Local Creative's to-do list guide suggests unchecking all the tasks at the start of each week and starting fresh. In a Checkbox database, a single button does the unchecking.
- On the page that holds the checklist, type / and choose Button. Name it "Uncheck all".
- Select New action, choose Show confirmation and write the warning, for example "Untick every item in this checklist?" The pop-up lets whoever clicks either continue or abandon the reset before anything changes.
- Select + Add another step, choose Edit pages in, and pick your checklist database.
- Add a filter so the button only edits rows where Done is checked.
- Choose the Done property and set it to unchecked.
- Select Done, then click the button once while you can see every row, so you can confirm it unticked what you expected.

The conditions sit in Notion's help on creating and using buttons. Buttons are available on all plans, and the actions the help names as paid-only are Send mail to, Send webhook and Slack notifications, so Edit pages in isn't among them. Anyone with Full access or Can edit on the page can create, edit and click the button. Because this button edits a database, whoever clicks it must also be an editor of the target database. The last condition is the one that's easy to miss if you keep everything under Private: the pages a button edits must not sit in your Private or Shared sidebar sections, otherwise the automation won't run, so keep the checklist database outside those two sections.
The button does the unticking; deciding that the week is closed stays with you. If you'd rather the reset happen without anyone clicking, read our guide to Notion buttons vs database automations first.
Two risks come with a reset. First, it erases the record of what was ticked. If a client might ask what happened in a given week, don't reset; create a fresh checklist each cycle and keep the old ones, the approach behind recurring tasks that repeat after completion. Second, the filter reaches every row in the database, so if one database holds checklists for several clients, "Done is checked" matches all of them. I'd give each reusable checklist its own database, so one click resets one list.
Show how much of the checklist is done
For a plain count, you don't need a formula. Make a second view filtered to rows where Done is checked, click the Name column, hover over Calculate and choose Count all. The Open view counts what's left the same way.
For a percentage, the checklist needs a parent record. Create a small database with one record per checklist, such as Weekly close-out, relate it to the checklist items, and add a Rollup on the parent with Relation set to the items, Property set to Done and Calculate set to Percent checked. That calculation is the one offered for a Checkbox property, and Clarity Mastery's checklist progress walkthrough uses exactly these settings, with Display as: Bar if you want a bar. If you haven't linked two databases before, our guide to Notion relations and rollups sets up the relation step by step.
When the checklist is just a few checkboxes on one row, such as a client record with Contract signed, Invoice sent and Kickoff booked, a formula is simpler. As Notion VIP explains for formulas, toNumber() turns a checked box into 1 and an empty one into 0, so you can add them up and divide:
round(((toNumber(prop("Contract signed")) + toNumber(prop("Invoice sent")) + toNumber(prop("Kickoff booked"))) / 3) * 100) / 100
Two of three checked returns 0.67. The 3 is typed by hand, so change it when you add a fourth checkbox; otherwise three ticked boxes out of four still return 1 and the row looks finished.
To count only the open items from the parent record, a formula can filter the related rows and take their length; our guide to counting with filter() and length() has the exact formulas.
If you want that percentage drawn as a text bar, the repeat() progress bar formula starts from the same number.
Notion checklist templates: what to check before you duplicate one
Most results for this search are galleries, starting with Notion's own To-Do Lists template category. A template saves time when it brings a structure you wouldn't build yourself, such as a daily planner with a parent record for each day. For a plain checklist, the build above is two properties, two views and one button, which is less work than learning someone else's layout.
If you do pick one, Notion's collection of checklist templates lists what a good template should have: a clear layout, room to customize, integration with other databases, and progress tracking through "checkboxes or progress bars". It also warns against overly complex layouts, non-editable elements and excessive automation. I'd add one check: open the template's checklist and confirm the boxes come from a real Checkbox property in a database, because sorting, the reset button and Percent checked all depend on it. If a template costs money, separate the template price from your Notion plan before you buy.
Here's the whole free setup, ready to copy:
- A Checklist database with two properties: Name and Done (Checkbox).
- Open: a view filtered to unchecked rows, saved for everyone.
- All: a view sorted on Done, so ticked rows sit at the bottom.
- Uncheck all: a button that asks for confirmation, then edits pages in the checklist where Done is checked and sets Done to unchecked.
- Optional: a parent record with a Percent checked rollup.
Fix a checklist that misbehaves
Checked items disappeared
A filter on Done hides finished rows by design, so open the All view and they're back. If a view shows fewer items than you expect and you didn't add a filter, someone may have saved one for everyone, or a sub-item setting under Filter options is hiding rows. Our guide to tasks missing from a filtered view traces the rule that's hiding them.
The Uncheck all button doesn't change anything
Check three things in order. Do you have Full access or Can edit on the page, and are you an editor of the checklist database? Does the database sit in your Private or Shared sidebar sections? Has someone deleted the Done property or the database the button edits? Notion lists a missing database and a missing edited property among the reasons a button that used to work fails; open the button's settings and point it at the right database or property again.
The percentage looks too low
Percent checked divides the checked rows by every related row, so a blank row that's still related to the parent counts as an unchecked item. Remove the blank row or its relation. In the formula version, check that the divisor still matches the number of checkboxes.
Worked example: a 12-item weekly close-out checklist
Here's the database version traced through one week, with every number worked out from the item counts. The checklist database holds 12 close-out items, such as sending invoices, logging hours and backing up project files. Each item is related to one parent record, Weekly close-out, which carries the Percent checked rollup.
| Moment | Open view | Done view, Count all | Rollup on Weekly close-out |
|---|---|---|---|
| Monday, nothing ticked | 12 rows | 0 | 0% |
| Friday, 9 items ticked | 3 rows | 9 | 75% (9 of 12) |
| A blank row related by mistake | 4 rows | 9 | About 69% (9 of 13) |
| Blank row deleted, Uncheck all clicked | 12 rows | 0 | 0% |
The 75% matches how the published walkthroughs behave: Clarity Mastery's example expects 50% when 2 of 4 tasks are checked, and Notion VIP's progress tutorial shows 55.6% for a project with five of nine tasks complete. On Monday the button edits the 9 checked rows and leaves the other 3 alone, because its filter only matches Done is checked. The same week as to-do blocks would be 12 lines with 9 ticks scattered through them unless you dragged each one down, and Monday's reset would be nine separate clicks.
My pick for each kind of checklist
- One-off list: to-do blocks. Type
[]and a space, finish the list, and there's nothing to maintain. - Repeated checklist: a Checkbox database with an Uncheck all button when only this week's state matters. Use a repeating template instead when each run should stay on record.
- Shared team checklist: the database, with an Open view saved for everyone, a Person property for who owns each item, and Can edit access for everyone who ticks items or clicks the button.
When the checklist grows stages such as Waiting on client or In review, it has outgrown a checkbox; a Notion kanban board grouped by Status is the next step. If it's a daily routine, put its Open view on your Notion personal dashboard so it's the first list you see each morning.
Questions that come up next
Can checklist items show up in My Tasks?
Only if the checklist database is a Task database. According to Notion's guide to Task databases, you choose Turn into Tasks under More settings, and a Task database must include Status, Assignee and Due date, so a two-column Name and Done checklist needs those properties first. You can add up to 10 Task databases to My Tasks.
Can a checklist item remind me?
Yes, if the item has a Date property. Click Remind in the date to get a notification on the date and time you set.
Can I copy a checklist item together with its steps?
Yes. When you duplicate an item with sub-items, Notion duplicates the item and all its sub-items into new pages.