New task

Use this action to create a new Todoist task. Beyond the basic to-do actions, this action gives you more control over the task, letting you set a project, section, labels, an assignee, a priority, a due date, and a reminder.

This is handy in automations, for example to add a “Take out the bins” task with a due date the evening before collection day, so it shows up in Todoist automatically.

When you leave the project and labels empty, the task goes to your Inbox project.

Using this action from the user interface

If you prefer building automations and scripts visually, Home Assistant walks you through this action step by step. You pick what to target, tweak a few options, and save. No YAML knowledge required.

To create a new task from an automation or a script:

  1. Go to Settings > Automations & scenes.
  2. Open an existing automation or script, or select Create automation > Create new automation.
  3. If you’re setting up a new automation, add a trigger in the When section. Scripts don’t need a trigger. They run when something else calls them.
  4. In the Then do section, select Add action.
  5. From the search box, search for and select Todoist: New task.
  6. Enter the Content for the task, and optionally set any of the other fields.
  7. Select Save.

This action does not support targets. In the UI, you are not prompted to choose an area, device, entity, or label.

Options in the UI

Content (Required)

The name of the task.

Description (Optional)

A description for the task.

Project (Optional)

The name of the project this task should belong to.

Section (Optional)

The name of a section within the project to add the task to.

Labels (Optional)

Any labels that you want to apply to this task, separated by a comma.

Assignee (Optional)

The username of a member of a shared project to assign this task to.

Priority (Optional)

The priority of this task, from 1 (normal) to 4 (urgent).

Due date string (Optional)

The time this task is due, in natural language.

Due date language (Optional)

The language of the due date string.

Due date (Optional)

The time this task is due, in the format YYYY-MM-DD or YYYY-MM-DD HH:MM, in the UTC time zone.

Reminder date string (Optional)

When you should be reminded of this task, in natural language.

Reminder date language (Optional)

The language of the reminder date string.

Reminder date (Optional)

When you should be reminded of this task, in the format YYYY-MM-DD HH:MM, in the UTC time zone.

Using this action in YAML

If you work directly in YAML, or you want to know exactly what Home Assistant does under the hood, this section has the technical reference. It lists the field names you use in YAML, their types, and which ones are required.

In YAML, refer to this action as todoist.new_task. A basic example looks like this:

ActionActions are used in several places in Home Assistant. As part of a script or automation, actions define what is going to happen once a trigger is activated. In scripts, an action is called *sequence*. [Learn more]
action: todoist.new_task
data:
  content: "Pick up the mail"
  project: "Errands"
  labels: "Homework,School"
  priority: 3
  due_date: "2017-09-12 14:00"

This creates the task “Pick up the mail” in the Errands project.

Options in YAML

content string Required

The name of the task.

description string

A description for the task.

project string

The name of the project this task should belong to. Defaults to your Inbox project.

section string

The name of a section within the project to add the task to.

labels string

Any labels that you want to apply to this task, separated by a comma.

assignee string

The username of a member of a shared project to assign this task to.

priority integer

The priority of this task, from 1 (normal) to 4 (urgent).

due_date_string string

The time this task is due, in natural language. Mutually exclusive with the due date.

due_date_lang string

The language of the due date string.

due_date string

The time this task is due, in the format YYYY-MM-DD or YYYY-MM-DD HH:MM, in the UTC time zone. Mutually exclusive with the due date string.

reminder_date_string string

When you should be reminded of this task, in natural language. Mutually exclusive with the reminder date.

reminder_date_lang string

The language of the reminder date string.

reminder_date string

When you should be reminded of this task, in the format YYYY-MM-DD HH:MM, in the UTC time zone. Mutually exclusive with the reminder date string.

Good to know

  • For everyday tasks, you can also use the actions from the to-do integration to create, update, and delete to-do items.
  • The due date string and the due date are mutually exclusive. Use one or the other.
  • The reminder date string and the reminder date are mutually exclusive. Use one or the other.
  • When you leave the project empty, the task goes to your Inbox project.

Try it yourself

Ready to test this? Open Developer tools > Actions, search for this action, fill in the fields, and select Perform action. You see what happens on your actual entitiesAn entity represents a sensor, actor, or function in Home Assistant. Entities are used to monitor physical properties or to control other entities. An entity is usually part of a device or a service. [Learn more] without writing a line of YAML.

More examples

Real scenarios where this action shows up in automations and scripts. Copy any example and adapt it to your setup.

Tip

You don’t need to edit YAML to use these examples. Copy a YAML snippet from this page, open the automation editor in Home Assistant, and press Ctrl+V (or Cmd+V on Mac). Home Assistant automatically converts the pasted YAML into the visual editor format, whether it’s a full automation, a single trigger, a condition, or an action.

Automation: add a bin collection reminder

The evening before bin collection, add a Todoist task with a due date so it shows up in your list.

  • Trigger: Every Tuesday at 18:00
  • Action: Todoist: New task
YAML example for a bin collection reminder
AutomationAutomations in Home Assistant allow you to automatically respond to things that happen in and around your home. [Learn more]
alias: "Add bin collection task"
triggers:
  - trigger: time
    at: "18:00:00"
conditions:
  - condition: time
    weekday:
      - tue
actions:
  - action: todoist.new_task
    data:
      content: "Take out the bins"
      due_date_string: "tomorrow at 7am"
      due_date_lang: "en"

Still stuck?

The Home Assistant community is quick to help: join Discord for real-time chat, post on the community forum with the action you’re calling and what you expected to happen, or share on our subreddit /r/homeassistant.

Tip

AI assistants like ChatGPT or Claude can also explain actions or suggest the right one when you describe what you want in plain language.