Tasks Bridge

by Haiqiang Zhang
5
4
3
2
1
Score: 51/100

Description

Tasks Bridge is an integration layer for connecting Obsidian with external task-management services, currently supporting Todoist with more backends planned.

Reviews

No reviews yet.

Stats

3
stars
76
downloads
0
forks
5
days
1
days
1
days
3
total PRs
0
open PRs
0
closed PRs
3
merged PRs
0
total issues
0
open issues
0
closed issues
186
commits

Latest Version

a day ago

Changelog

🐛 Bug Fixes

  • Anchored Obsidian menus now open beneath their trigger, automatically avoid viewport overflow, and close when the same trigger is pressed again, including the completion heatmap range selector.

README file from

Github

Obsidian Tasks Bridge

Tasks Bridge is based on the original Todoist Sync plugin created by Jamie Brynes.

What is it?

Tasks Bridge connects Obsidian to external task-management services. Those services are the task backends and systems of record: they remain responsible for primary task storage and synchronization, while Obsidian provides the interaction and presentation layer for viewing, organizing, and updating tasks.

Architecture

The red backend node and solid connection are available now. Purple-gray nodes and dashed connections are planned integrations. Every task service remains the system of record for its own data.

Todoist is the first supported backend. The current Todoist integration provides two independent workflows:

  • Query blocks render a Todoist filter inside any note, with cache-first loading and optional completed-task history.
  • Project sync maps one or more Todoist projects to independent Vault folders. Each selected folder is that project's exact root, optional child projects become nested folders, and every active or completed task becomes a Markdown file that can be managed with Obsidian Bases.

Project sync is a one-way Todoist-to-Obsidian projection. It retrieves complete completed-task history from Todoist's project endpoint, preserves note bodies and properties not managed by the plugin, and does not treat arbitrary Base or Markdown edits as Todoist changes. Its default ownership-based safety mode also leaves user-created .base files, notes, attachments, and folders inside a mapping untouched while Todoist renames and deletions continue to reconcile the task notes and empty folders managed by Tasks Bridge. Its Tasks List Base view provides explicit server-backed actions for editing, completing, and reopening tasks. Open task notes are deferred instead of overwritten, and tasks that leave an included child hierarchy are retained as out_of_scope. See the project sync guide.

The Todoist integration is not created by, affiliated with, endorsed by, or supported by Doist.

Read the Tasks Bridge documentation for installation, query syntax, and general usage.

What Tasks Bridge adds to Todoist Sync

Compared with the upstream Todoist Sync codebase, this fork adds:

  • Cache-first rendering: previously loaded Todoist blocks appear immediately while fresh data synchronizes in the background.
  • Account-isolated persistent caching with validation, bounded storage, and stale-request protection.
  • Reliable task completion with rollback on API failure and consistent updates across cached queries.
  • Compact, consistent layouts for both titled and untitled Todoist blocks.
  • Time-zone-correct same-day due-date handling.
  • Optional completed-task display with complete cursor pagination and user-controlled three-month history expansion.
  • Independent multi-project sync with validated folder mappings, resumable root-folder moves, nested child-project folders, one Markdown file per task, complete active and completed history, and flat todoist_* properties for Obsidian Bases.
  • A native-styled Tasks List Base view with Project → Section → Task → Subtask hierarchy, arbitrary project roots, a GitHub-style daily completion heatmap, native filters/sorts/groups/property order, and controlled Todoist task actions.

Acknowledgements

Tasks Bridge is based on Todoist Sync. Thank you to Jamie Brynes and all upstream contributors for creating and maintaining the original project.

Support the original project

If you would like to support Jamie Brynes's work on the original plugin: