Install
openclaw skills install todoist-v1Manage Todoist tasks — list, create, complete, update, and organize tasks and projects.
openclaw skills install todoist-v1API v1 at https://api.todoist.com/api/v1/. Auth via Bearer token.
Token stored in env var TODOIST_TOKEN. Set it in your shell or OpenClaw config:
export TODOIST_TOKEN=your-token-here
Get your token from: https://app.todoist.com/app/settings/integrations/developer
curl -s "https://api.todoist.com/api/v1/tasks" \
-H "Authorization: Bearer $TODOIST_TOKEN" | python3 -m json.tool
Filter by project:
curl -s "https://api.todoist.com/api/v1/tasks?project_id=PROJECT_ID" \
-H "Authorization: Bearer $TODOIST_TOKEN"
curl -s "https://api.todoist.com/api/v1/tasks/TASK_ID" \
-H "Authorization: Bearer $TODOIST_TOKEN"
curl -s -X POST "https://api.todoist.com/api/v1/tasks" \
-H "Authorization: Bearer $TODOIST_TOKEN" \
-H "Content-Type: application/json" \
-d '{"content": "Task name", "project_id": "PROJECT_ID", "due_string": "tomorrow", "priority": 1}'
Priority: 1 (normal) to 4 (urgent). due_string supports natural language ("tomorrow", "every monday", "Feb 20").
curl -s -X POST "https://api.todoist.com/api/v1/tasks/TASK_ID/close" \
-H "Authorization: Bearer $TODOIST_TOKEN"
curl -s -X POST "https://api.todoist.com/api/v1/tasks/TASK_ID" \
-H "Authorization: Bearer $TODOIST_TOKEN" \
-H "Content-Type: application/json" \
-d '{"content": "Updated name", "due_string": "next friday"}'
curl -s -X DELETE "https://api.todoist.com/api/v1/tasks/TASK_ID" \
-H "Authorization: Bearer $TODOIST_TOKEN"
curl -s "https://api.todoist.com/api/v1/projects" \
-H "Authorization: Bearer $TODOIST_TOKEN"
curl -s -X POST "https://api.todoist.com/api/v1/projects" \
-H "Authorization: Bearer $TODOIST_TOKEN" \
-H "Content-Type: application/json" \
-d '{"name": "Project Name"}'
curl -s "https://api.todoist.com/api/v1/sections?project_id=PROJECT_ID" \
-H "Authorization: Bearer $TODOIST_TOKEN"
curl -s -X POST "https://api.todoist.com/api/v1/sections" \
-H "Authorization: Bearer $TODOIST_TOKEN" \
-H "Content-Type: application/json" \
-d '{"project_id": "PROJECT_ID", "name": "Section Name", "order": 0}'
curl -s -X POST "https://api.todoist.com/api/v1/tasks/TASK_ID" \
-H "Authorization: Bearer $TODOIST_TOKEN" \
-H "Content-Type: application/json" \
-d '{"section_id": "SECTION_ID"}'