Sync tasks between Obsidian and Dida365 or TickTick.
A task sync plugin for Obsidian that brings your Dida365 or TickTick tasks into your notes, with timeline, time block, Pomodoro, and sidebar management views.
English | 简体中文
| Time Block View | List View |
|---|---|
![]() |
![]() |
| Schedule and drag tasks by day. | Review progress and deadlines quickly. |
| Capability | Description |
|---|---|
| 🔄 Two-way Sync And Native Task Flow | Sync task status, content, and details between Obsidian and Dida365 / TickTick, and create or update tasks from native - [ ] syntax. |
| 🗓️ Multi-view Task Management | Use sidebar, time block, timeline, and Pomodoro views for planning, execution, and review. |
| 🌲 Task Structure Management | Organize tasks with nested subtasks, drag reordering, drag-to-parent nesting, and cross-project moves. |
| ✅ Completed Task Review | View completed tasks by time range to support reviews, reporting, and summaries. |
| 📝 Note Integration | Drag tasks into Markdown, sync tasks into notes, and jump back from note links to the related task. |
| 🤖 MCP / AI Integration | Optionally expose a local MCP service so AI tools can read, create, update, and schedule tasks. |
code back into the plugin.- [ ]- [ ] in a Markdown document.- [x] can also update the remote task status.Organize complex task structures more naturally inside Obsidian and sync the result back to Dida365 or TickTick.
Sync tasks to note.| Month Calendar | Year Calendar |
|---|---|
![]() |
![]() |
| Review tasks in a monthly calendar layout. | See long-range completion patterns across the full year. |
The calendar views make it easier to browse workload by month or year while keeping note-based sync configuration inside DidaSync.
You can also define a block-based sync view inside any working note. The default block header can be > [!didasync], or the custom header configured in sync settings:
> [!didasync] {"range":"2026-01-01~2026-12-31","projects":["project1","id:abc123"]}
> [!todo] {"range":"2026-01-01~2026-12-31","projects":["project1"]}
When you open the Sync tasks to note modal, it automatically switches to "sync current file block" mode if the current file already contains a didasync block. In that mode, you can insert a new sync block or update an existing one with the date picker and project selector instead of editing JSON manually. The file block remains the source of truth during execution. The current version supports range and projects; range accepts YYYY-MM-DD or YYYY-MM-DD~YYYY-MM-DD, and projects accepts either a project name or id:<projectId>. Tag and title matching are not supported yet.
You can drag tasks from the sidebar task list directly into any Obsidian editor:
- [ ] Digital logic notes [🔗Dida](obsidian://dida-task?didaId=xxxx) 📅 2026-05-25
This lets you check the task inside the note and jump back to the linked Dida task.
Completed tasks.Query to fetch completed tasks in that range.OAuth authorization is supported out of the box. If authorization fails, check these items first:
code flow instead.8080 is already in use.http://localhost:<port>/callback so existing app registrations continue to work.127.0.0.1, then update the Dida developer console to http://127.0.0.1:<port>/callback.If port 8080 is occupied, the local OAuth callback server usually cannot start. In that case, change Settings -> DidaSync -> OAuth Settings -> Server Port to another available port, keep the redirect URL in sync with the mode shown in plugin settings, and retry authorization.
Enable Settings -> DidaSync -> Advanced/Reset -> MCP Service, then add this configuration to an MCP-compatible AI plugin:
{
"transport": "http",
"url": "http://127.0.0.1:35829/mcp",
"headers": {
"Authorization": "Bearer <DIDASYNC_MCP_TOKEN>"
}
}
The MCP service mainly covers three groups of operations:
If you use DidaSync mainly as a personal plugin, you can ignore MCP at first and only enable it when you want AI tools to operate on your tasks directly.
Settings -> Community plugins in Obsidian.Restricted mode if needed, then click Browse.DidaSync.Install, then enable the plugin.
main.js, manifest.json, and styles.css from Releases.<vault>/.obsidian/plugins/didasync/.127.0.0.1 and protects it with your configured token.If DidaSync is helpful, consider starring the repository or opening an issue to help improve it.