Using the Todoist integration
Send provider-neutral task commands from your device to the Todoist integration.
Contexts
Tasks
List open tasks (tasks.list)
Returns open tasks from the mapped Todoist account. Optionally provide project to restrict the result to a named Todoist project.
Request
{
"jsonrpc" : "2.0",
"id" : "tasks-1",
"method" : "tasks.list",
"params" : {
"target" : "Todoist"
}
}
Example response
{
"jsonrpc" : "2.0",
"id" : "tasks-1",
"result" : {
"tasks" : [ {
"id" : "task-1",
"content" : "Buy milk",
"due" : "2026-09-08T09:00:00Z",
"completed" : false
} ]
}
}
Create a task (tasks.create)
Creates a task in the mapped Todoist account. content is required; due must be an RFC-3339 timestamp and project is optional.
Request
{
"jsonrpc" : "2.0",
"id" : "tasks-2",
"method" : "tasks.create",
"params" : {
"target" : "Todoist",
"content" : "Buy milk",
"due" : "2026-09-08T09:00:00Z"
}
}
Example response
{
"jsonrpc" : "2.0",
"id" : "tasks-2",
"result" : {
"task" : {
"id" : "task-1",
"content" : "Buy milk",
"due" : "2026-09-08T09:00:00Z",
"completed" : false
}
}
}
Invalid task error
Returns INVALID_MESSAGE when tasks.create has no non-blank content.
Example response
{
"jsonrpc" : "2.0",
"id" : "tasks-4",
"error" : {
"code" : -32001,
"message" : "Canonical request failed",
"data" : {
"reason" : "INVALID_MESSAGE",
"retryable" : false,
"retryAfterMs" : null
}
}
}
Complete a task (tasks.complete)
Completes the task identified by taskId in the mapped Todoist account.
Request
{
"jsonrpc" : "2.0",
"id" : "tasks-3",
"method" : "tasks.complete",
"params" : {
"target" : "Todoist",
"taskId" : "task-1"
}
}
Example response
{
"jsonrpc" : "2.0",
"id" : "tasks-3",
"result" : {
"taskId" : "task-1"
}
}