Sacro / obsidian-todoist-plugin

Materialize Todoist tasks in Obsidian notes

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Obsidian x Todoist Plugin

GitHub Workflow Status GitHub release (latest SemVer)

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

Example gif

Usage

  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:
    ```todoist
    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.

Inputs

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

Examples

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

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

Show the inbox only.

```todoist
name: Inbox
filter: "#Inbox"
```

Commands

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.

CSS

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.

About

Materialize Todoist tasks in Obsidian notes

License:MIT License


Languages

Language:TypeScript 59.7%Language:Svelte 36.2%Language:CSS 2.9%Language:JavaScript 1.2%