Integrate with Todoist task management using natural language. Use when the user wants to manage Todoist tasks or projects through conversational commands like "show my tasks for today", "add 'call dentist' to my todo list", "complete my task about the meeting", or any mention of Todoist, tasks, due dates, or project management.
Manage your Todoist tasks conversationally. No need to remember CLI syntax — just talk naturally about your tasks.
This skill understands conversational requests:
List tasks:
Add tasks:
Complete tasks:
Manage projects:
TODOIST_API_KEY environment variable must be set with your Todoist API tokenIf you prefer CLI commands or need to script operations, use the Python script directly:
# List today's tasks
python3 todoist/scripts/todoist.py list --filter "today"
# Add a task
python3 todoist/scripts/todoist.py add "Buy milk" --due "tomorrow" --priority 2
# Complete a task by ID
python3 todoist/scripts/todoist.py complete "TASK_ID"
# List all projects
python3 todoist/scripts/todoist.py projects
When filtering tasks (via natural language or CLI):
today — tasks due todayoverdue — overdue taskstomorrow — tasks due tomorrowp1, p2, p3, p4 — priority filters7 days — tasks due in next 7 days@label — tasks with specific label#project — tasks in project& (and) and | (or): today & p11 — Urgent (red)2 — High (orange)3 — Medium (blue)4 — Low (white/gray, default)The script outputs JSON for programmatic use. See references/api.md for full API documentation.
After every mutation (add, complete, update, delete), ALWAYS verify the action succeeded:
add: Run python3 todoist/scripts/todoist.py get <task_id> using the ID from the create response. Confirm the task exists and content matches.complete: Run python3 todoist/scripts/todoist.py get <task_id> and confirm is_completed: true.update: Run python3 todoist/scripts/todoist.py get <task_id> and confirm the updated fields match.delete: Run python3 todoist/scripts/todoist.py get <task_id> — expect a 404/error confirming deletion.If verification fails:
TZ environment variable if needed)