Sync Todoist tasks with task notes in Obsidian, with two-way status updates and Bases-friendly frontmatter.
- Imports Todoist tasks into a dedicated tasks folder as Markdown notes.
- Pushes local task note updates back to Todoist.
- Supports inline checklist conversion to task notes.
- Keeps linked checklist checkboxes in sync with task note status.
- Supports due dates and recurring rules.
- Supports opening the task modal from linked task references via double-click.
- Stores Todoist API token in Obsidian secret storage.
Task notes use these core fields:
task_titletask_status(open|done)task_done(boolean, useful for editable Bases checkbox column)todoist_sync(boolean)todoist_sync_statustodoist_idtodoist_project_nametodoist_section_nametodoist_due(ISO date string, for example"2026-03-10")todoist_due_string(natural-language due rule, including recurrence)todoist_is_recurring(boolean)parent_task(optional wiki-link to parent task)
- Build and install plugin files into your vault plugin folder.
- Open Settings -> Community plugins -> Task Todoist Sync.
- Set Token secret name (default:
todoist-api). - Set your Todoist API token in Todoist API token.
- Use Test connection and confirm success.
- Configure:
- Tasks folder path
- Archive behavior
- Import scope/rules
- Auto-sync interval (optional)
- Run Sync todoist now once.
Use the command Create task note and fill:
- Title
- Description
- Optional project and section
- Optional due date
- Optional recurrence (example:
every weekday) - Sync toggle
You can write a normal unchecked checklist item and convert it to a task note.
Supported inline directives:
proj::Workorproject::Worksec::Urgentorsection::Urgentdue::2026-02-12ordue::todayrecur::"every weekday"orrecurrence::"every weekday"
Example:
- [ ] Review draft proj::Personal due::tomorrow
- [ ] Daily standup recur::"every weekday"After conversion, double-click the linked task in a note or Base to open the task modal pre-populated for editing. Single click still opens the task note normally.
- Local edits in task notes are marked
todoist_sync_status: dirty_localand pushed on next sync. - Editing
task_donein Bases is supported and syncs to Todoist. - Editing
todoist_duelocally is supported. Keep it as an ISO date string such as"2026-03-10". - Clearing
todoist_duelocally is synced (remote due is cleared). - Recurring tasks are represented by
todoist_is_recurringandtodoist_due_string.
A sample Tasks.base is included in repo root and uses:
task_titletask_donetask_statustodoist_duetodoist_project_nametodoist_sync_status
Install dependencies:
npm installWatch mode:
npm run devTypecheck + production build:
npm run buildLint:
npm run lintPackage release artifacts into release/:
npm run packageCopy these files into:
<Vault>/.obsidian/plugins/obsidian-task-todoist/
main.jsmanifest.jsonstyles.css
For convenience you can copy from release/ after npm run package.