Manage Todoist tasks and projects via Todoist API v1. Use when the user asks to list tasks, create tasks, update task fields, mark tasks complete, reopen tasks, delete tasks, inspect projects, or add/read task comments.
Use the bundled helper script for all Todoist operations:
~/.openclaw/workspace/skills/todoist/scripts/todoist-api.sh
Authentication is resolved in this order:
TODOIST_API_TOKEN (token value)TODOIST_API_KEY (token value or path to a file containing the token)/home/iva/.secrets/todoist-api-keyDefault workflow:
delete-task).Common commands:
SKILL="$HOME/.openclaw/workspace/skills/todoist/scripts/todoist-api.sh"
# List projects
"$SKILL" projects | jq -r '.results[] | "\(.id)\t\(.name)"'
# List all active tasks
"$SKILL" tasks | jq -r '.results[] | "\(.id)\t\(.content)\t\(.project_id // "-")\t\(.due.date // "-")"'
# List tasks for one project
"$SKILL" tasks "?project_id=1234567890"
# Create a task
"$SKILL" add-task '{"content":"Book dentist","priority":3,"due_string":"tomorrow 10:00"}'
# Update a task
"$SKILL" update-task 1234567890 '{"content":"Book dentist appointment","due_string":"next monday 09:30"}'
# Complete / reopen
"$SKILL" close-task 1234567890
"$SKILL" reopen-task 1234567890
# Delete (destructive)
"$SKILL" delete-task 1234567890
# Comments
"$SKILL" comments 1234567890
"$SKILL" add-comment 1234567890 '{"content":"Waiting for insurance confirmation."}'
When interpreting user intent:
project_id first.due_string for natural language deadlines.update-task.