Skip to content


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?


Failed to load latest commit information.
Latest commit message
Commit time
August 7, 2021 14:11
October 19, 2020 23:03
April 9, 2023 17:23
September 13, 2020 18:19
September 13, 2020 18:19
April 9, 2023 17:23
August 29, 2020 17:34
April 9, 2023 17:23

Obsidian x Todoist Plugin

GitHub Workflow Status GitHub release (latest SemVer)

An Obsidian plugin to materialize Todoist task lists in Obsidian notes.

Example gif


  1. Install the plugin through the Obsidian's community plugins browser.
  2. Enable the plugin in Obsidian.
  3. You should get a prompt asking for your Todoist API token. (If not, you can enter this in the settings).
  4. Place a code block like the following in any note:
    name: My Tasks
    filter: "today | overdue"
  5. Swap to preview mode and the plugin should replace this code block with the materialized result of that filter.

If you are synchronizing your vault, I recommend explicitly ignoring the .obsidian/todoist-token file for security reasons, if possible.


The query is defined in YAML and accepts the following keys:

Name Required Description Type Default
name The title for the materialized query. You can use the {task_count} template which will be replaced by the number of tasks returned by the query. string
filter A valid Todoist filter1 string
autorefresh The number of seconds between auto-refreshing. If omitted, the query use the default global settings. number null
sorting Describes how to order the tasks in the query. Can be any of 'priority', 'dateAscending' (aliased as 'date'), 'dateDescending', or multiple of these. string[] []
group Denotes whether this query should have its task grouped by project & section. bool false


Show current and overdue tasks, ordered by date and then priority, and finally grouped by project & section.

name: Highest Priority & Date
filter: "today | overdue"
   - date
   - priority
group: true

Show the inbox only.

name: Inbox
filter: "#Inbox"


There are also a few commands bundled in with the plugin:

  1. 'Refresh Metadata'

    This command refreshes all the metadata (projects, sections, and labels) for Todoist tasks. This is done at startup.

  2. 'Add Todoist task'

    This command opens up a modal for creating a task in Todoist. You can set the project/section, labels, priority, and due date through this modal. Any text selected when this command is executed will be pulled for the task content.

  3. 'Add Todoist task with the current page'

    Similiar to the previous command, this one also appends a link to the current active page to the task input.


This plugin comes with default CSS intended for use with the default Obsidian themes.

I also maintain an Obsidian theme which has support out of the box for this plugin, for a complete example of CSS for this plugin, check out the source.

1: There are some exceptions in the Todoist API. Checkout this issue for details.