All posts
·4 min read

Markdown Task Lists and Checklists: A Complete Guide

markdowntask listchecklistproductivity

Task lists (also called checklists or to-do lists) are one of the most useful Markdown extensions. They turn plain text into interactive checkboxes, making Markdown documents practical for project planning, meeting notes, and daily workflows.

Quick Answer: A Markdown task list uses - [ ] for an unchecked item and - [x] for a checked item. This syntax is part of GitHub Flavored Markdown and is supported by GitHub, GitLab, Notion, Obsidian, and edtr.md. On GitHub, checkboxes in issues and pull requests are clickable and update the source automatically.

How Do You Write a Task List in Markdown?

A task list item is a regular list item prefixed with [ ] (unchecked) or [x] (checked).

- [ ] Design the landing page
- [ ] Implement authentication
- [x] Set up the project repository
- [x] Configure CI/CD pipeline

This syntax is part of GitHub Flavored Markdown (GFM) and is supported by GitHub, GitLab, Notion, Obsidian, and most modern Markdown editors.

Nesting Tasks

Indent with two or four spaces to create sub-tasks.

- [ ] Launch v2.0
  - [x] Backend API
    - [x] User endpoints
    - [x] Auth endpoints
  - [ ] Frontend
    - [x] Components
    - [ ] Integration tests
  - [ ] Documentation

Nested task lists create a natural hierarchy that mirrors how projects are actually structured: epics, stories, and subtasks.

Interactive Checkboxes

On GitHub, task list checkboxes are clickable. Checking a box in the rendered view updates the source Markdown automatically. Editors like edtr.md also support this: click a checkbox in the preview pane and the source text toggles between [ ] and [x].

This makes Markdown task lists genuinely functional, not just decorative. You can use them as lightweight project trackers without leaving your editor.

Use Cases

Pull Request Checklists

## PR Checklist
- [x] Code compiles without warnings
- [x] Unit tests pass
- [ ] Documentation updated
- [ ] Changelog entry added
- [ ] Reviewed by at least one team member

Meeting Action Items

## Meeting - March 4, 2026
### Action Items
- [ ] @alice - Send revised proposal by Friday
- [ ] @bob - Review API design document
- [x] @carol - Schedule follow-up meeting

Release Checklist

## Release v3.1.0
- [x] Feature freeze
- [x] QA sign-off
- [ ] Update version number
- [ ] Write release notes
- [ ] Tag release in Git
- [ ] Deploy to production
- [ ] Post announcement

Daily Planning

## Today
- [x] Morning standup
- [ ] Fix pagination bug (#342)
- [ ] Review Sarah's PR
- [ ] Write unit tests for auth module
- [ ] Update project README

Task Lists in Tables

While Markdown tables do not support task list syntax directly, you can use emoji or Unicode characters as a workaround:

| Task              | Status |
| ----------------- | ------ |
| Backend API       | ✅      |
| Frontend UI       | ✅      |
| Integration tests | ⬜      |
| Documentation     | ⬜      |

Tips for Effective Task Lists

  • Keep task descriptions short and actionable. Start with a verb.
  • Use nesting sparingly. Two levels deep is usually enough.
  • Group related tasks under descriptive headings.
  • Move completed tasks to a “Done” section in long-lived documents.
  • Combine with dates or mentions for accountability.

How Do Task Lists Fit Into Project Management?

Task lists are a natural bridge between writing and project tracking. For a full workflow using Markdown for sprints, backlogs, and milestones, see the guide to project management with Markdown. For meeting-specific action items, the meeting notes guide shows how to structure tasks by owner and deadline. The complete syntax reference is in the Markdown cheat sheet.

Try It

Open edtr.md and create a task list. The checkboxes in the preview pane are interactive. Click them to toggle completion. Your changes are saved to your browser automatically.

Try it yourself

Open edtr.md and start writing Markdown with live preview, diagrams, math, and PDF export. Free, no sign-up.

Open editor