Skip to content

Roadmap ​

v0.1 — Core sync ✅ released ​

  • Two-way sync (Obsidian ↔ Vikunja)
  • Obsidian Tasks plugin-compatible syntax (- [ ], emoji dates, priority emojis)
  • Per-note project assignment via frontmatter (vikunja_project_id)
  • Persistent task identity via hidden HTML comments (<!--vikunja:N-->)
  • Sync on save, on a configurable interval, and manually via command palette
  • Checkbox toggle detection in reading view / live preview
  • Settings tab with connection test, default project picker, and exclusion list
  • Ribbon icon

v0.1.x — Quality of life ✅ released ​

  • Auto-created project files — one .md per Vikunja project, zero setup
  • Project assignment by name (vikunja_project: Work Tasks)
  • Inline @project:Name override on individual task lines
  • Remote task import — tasks created in Vikunja web UI appear in the bound file
  • Recurrence sync — 🔁 every week maps to Vikunja repeat_after
  • Unknown Tasks plugin tokens (➕ ✅ ❌ 🆔 ⛔ 🏁) stripped from titles before pushing
  • Default project dropdown auto-populates after successful connection test

Vikunja field mapping ​

This table covers every field in the Vikunja task API and where it stands.

Currently synced ​

FieldObsidian syntaxStatus
titleTask text✅
done- [x] checkbox✅
due_date📅 YYYY-MM-DD✅
start_date🛫 YYYY-MM-DD✅
priority🔺 ⏫ 🔼 🔽 ⏬✅
repeat_after🔁 every week✅
project_idfrontmatter / @project:✅

Planned — field mappings with clear Obsidian syntax ​

FieldProposed Obsidian syntaxNotes
end_date🏁 YYYY-MM-DDVikunja's "deadline" end date, distinct from due date
labels#tag in task lineMap to Vikunja labels; create label if it doesn't exist
percent_done[50%] inline token0–100 progress; only meaningful for tasks not marked done
descriptionIndented block below the task lineMulti-line text; complex to parse reliably

Planned — collaboration fields (need new UI) ​

FieldApproachNotes
assignees>username inline tokenAssign to Vikunja users; requires knowing their usernames
repeat_mode🔁 every week !done modifier0 = from due date, 1 = from today, 2 = from completion
CommentsSidebar panel (read + write)Part of v0.5
AttachmentsLink in descriptionNot representable in plain markdown

Not planned ​

FieldReason
hex_colorNo natural markdown equivalent; too visual
bucket_idKanban-specific; not a markdown concept
Relations (parent/sub-task)Handled separately in v0.4

v0.2 — Calendar view 🗓 up next ​

A full calendar view inside Obsidian powered by FullCalendar.

  • Leaf-based calendar panel (month, week, agenda views)
  • Click a date slot to create a new task
  • Drag tasks to reschedule — syncs to Vikunja immediately
  • Color-coded by project
  • Filter by project or label

v0.3 — Gantt view 📊 ​

A Gantt chart showing tasks with start and end dates as horizontal bars.

  • Timeline panel with day/week/month zoom
  • Tasks grouped by project
  • Drag to extend/shift date ranges
  • Dependency lines between tasks

v0.4 — Sub-tasks ​

Indented - [ ] tasks become Vikunja sub-tasks.

  • Parse indented tasks as children of their parent
  • Create Vikunja task relationships on sync
  • Progress rollup on parent task

v0.5 — Assignees & comments ​

  • Show assignees as inline metadata
  • Assign from Obsidian by username
  • Read and post Vikunja comments from a sidebar panel

Future ideas ​

  • Offline queue — queue changes made offline, flush on reconnect
  • Labels — #tag → Vikunja labels
  • Search — full-text search across Vikunja tasks from Obsidian
  • Community store listing — submit to the official Obsidian plugin directory

Contributing ​

Have a feature request or want to contribute? Open an issue or PR on GitHub. Significant features should be discussed in an issue first.

Released under the MIT License.