Offbeat-IoT · Small devices. Big APIs.
Integrations
Spotify Integration Google Health Integration Todoist Integration Google Calendar Integration Alexa Integration Google Home Integration
Built-in
Time Integration Ponder Integration Encouragement Integration API OTA updates
Using the Todoist integration

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"
  }
}