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:
- Go to Settings > Automations & scenes.
- Open an existing automation or script, or select Create automation > Create new automation.
- 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.
- In the Then do section, select Add action.
- From the search box, search for and select Todoist: New task.
- Enter the Content for the task, and optionally set any of the other fields.
- 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
The time this task is due, in the format YYYY-MM-DD or 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:
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
The time this task is due, in natural language. Mutually exclusive with the due date.
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.
When you should be reminded of this task, in natural language. Mutually exclusive with the reminder date.
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.
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
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.
AI assistants like ChatGPT or Claude can also explain actions or suggest the right one when you describe what you want in plain language.