Overview
Todoist is a widely-used task management application that helps individuals and teams organize tasks, set priorities, and track productivity. It features natural language processing for quick task creation, flexible organization through projects, sections, labels, and filters, and syncs seamlessly across all major platforms.
Todoist supports recurring tasks, task delegation, comments, file attachments, and integrations with over 70 apps. Available on web, Windows, macOS, Linux, iOS, Android, Apple Watch, and as browser extensions.
Installation
# macOS via Homebrew
brew install --cask todoist
# Linux via Snap
sudo snap install todoist
# Linux via Flatpak
flatpak install flathub com.todoist.Todoist
# Windows via winget
winget install Doist.Todoist
Quick Add (Natural Language)
Date Examples
| Input | Interpretation |
|---|
today | Today’s date |
tomorrow | Tomorrow |
next monday | Coming Monday |
jan 15 | January 15th |
every day | Recurring daily |
every weekday | Mon-Fri recurring |
every 2 weeks | Biweekly recurring |
every month on the 1st | Monthly on the 1st |
3pm | Today at 3:00 PM |
tomorrow at 9am | Tomorrow at 9:00 AM |
in 3 days | 3 days from now |
Quick Add Syntax
| Syntax | Purpose | Example |
|---|
# | Set project | Buy groceries #Shopping |
@ | Add label | Call dentist @phone |
p1-p4 | Set priority | Fix bug p1 |
/ | Set section | Design mockup /In Progress |
+ | Assign to person | Review PR +John |
Keyboard Shortcuts
| Shortcut | Action |
|---|
Q | Quick Add task |
Ctrl+K | Quick Find (search) |
A | Add task at bottom |
Shift+A | Add task at top |
E | Edit task name |
T | Set/change due date |
P | Cycle through priorities |
L | Add/change label |
H | Move to project |
J / K | Move down / up |
X | Select task |
Ctrl+Right | Indent (make subtask) |
Ctrl+Left | Unindent |
G then T | Go to Today |
G then U | Go to Upcoming |
G then I | Go to Inbox |
Task Organization
Projects
Personal
├── Health & Fitness
├── Home Maintenance
└── Learning
Work
├── Q4 Campaign
│ ├── Section: Planning
│ ├── Section: Execution
│ └── Section: Review
└── Product Roadmap
Labels
| Example Labels | Use Case |
|---|
@email | Tasks requiring email |
@phone | Phone call tasks |
@computer | Desktop work |
@errand | Out-of-house tasks |
@waiting | Blocked/waiting on someone |
@quick | Under 5 minutes |
@deep-work | Focus-intensive tasks |
Priorities
| Priority | Color | Shorthand |
|---|
| Priority 1 | Red | p1 |
| Priority 2 | Orange | p2 |
| Priority 3 | Blue | p3 |
| Priority 4 | None (default) | p4 |
Filters
Filter Syntax
| Filter | Description |
|---|
today | Due today |
overdue | Past due date |
no date | No due date set |
7 days | Due in next 7 days |
p1 | Priority 1 tasks |
#Project | Tasks in specific project |
@label | Tasks with specific label |
assigned to: me | Tasks assigned to you |
Combining Filters
| Operator | Description | Example |
|---|
& | AND | today & p1 |
| | OR | p1 | p2 |
! | NOT | !#Inbox |
() | Grouping | (today | overdue) & p1 |
Useful Filter Examples
# High priority due soon
(today | overdue) & (p1 | p2)
# Work tasks for this week
7 days & #Work
# Quick tasks I can do now
@quick & !@waiting
# Overdue in any project except Inbox
overdue & !#Inbox
Recurring Tasks
| Pattern | Example |
|---|
every day | Daily recurrence |
every weekday | Monday through Friday |
every 2 weeks | Biweekly |
every month | Monthly on same date |
every! day | Strict: recurs from due date |
after 3 days | 3 days after completion |
Integrations
| Integration | Features |
|---|
| Google Calendar | Two-way sync |
| Slack | Create tasks from messages |
| Gmail | Add emails as tasks |
| IFTTT | Automated workflows |
| Zapier | Connect to 5,000+ apps |
| Alexa / Google Home | Voice task creation |
API
# Get all projects
curl https://api.todoist.com/rest/v2/projects \
-H "Authorization: Bearer YOUR_API_TOKEN"
# Create a task
curl -X POST https://api.todoist.com/rest/v2/tasks \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"content": "Buy groceries",
"due_string": "tomorrow at 5pm",
"priority": 2,
"project_id": "PROJECT_ID"
}'
# Complete a task
curl -X POST https://api.todoist.com/rest/v2/tasks/TASK_ID/close \
-H "Authorization: Bearer YOUR_API_TOKEN"
Troubleshooting
| Issue | Solution |
|---|
| Task not syncing | Pull to refresh; force sync in settings |
| Recurring task wrong date | Use every! for strict recurrence |
| Filter not working | Check syntax; use & for AND, | for OR |
| Natural language parsing wrong | Be explicit with dates |
| Labels not appearing | Check the @ prefix |
| Calendar sync delayed | Allow 15 minutes; re-authorize integration |
| Notifications not arriving | Check OS notification permissions |
| Completed tasks missing | View completed via project menu |