# Kanban Action Planner plugin for Obsidian Plan, track, and schedule any set of notes visually, straight from a [[Obsidian Bases|Obsidian Base]]. This plugin adds a Kanban board view to Bases, so your tasks, projects, content ideas, or anything else you keep as notes can move across columns instead of sitting in a flat list. This is a plugin that I have created. The idea is simple: your notes stay the source of truth. Statuses become columns, you drag cards around, and every change (status, order, dates, relationships) gets written back to your frontmatter. Nothing lives in a hidden database. You define the note types yourself (by tag, folder, or regex), or you let the [[Obsidian Starter Kit]] plugin configure them for you when it is installed. Requires Obsidian 1.13+ (the Bases view API). Works on desktop (mobile isn't supported yet). ## Screenshots A board, with a configurable status property driving the columns: ![[2026-06-30 - Kanban Action Planner plugin for Obsidian - board.png]] The same idea applied to a large task base, with collapsed columns keeping the backlog out of the way: ![[2026-06-30 - Kanban Action Planner plugin for Obsidian - board tasks.png]] Swimlanes, here grouping the board by priority: ![[2026-06-30 - Kanban Action Planner plugin for Obsidian - swimlanes.png]] Calendar mode, plotting scheduled dates and deadlines together, with an Unplanned panel on the side: ![[2026-06-30 - Kanban Action Planner plugin for Obsidian - calendar.png]] Filter as you type, with a compact query language: ![[2026-06-30 - Kanban Action Planner plugin for Obsidian - filter.png]] Slice any view by GTD contexts (`@work`, `@home`, …) from the toolbar **@** switcher: ![[2026-07-18 - Kanban Action Planner plugin for Obsidian - contexts.png]] Timeline mode, a Gantt-style view that places each card by its start date and estimate, with milestones, per-row deadline lines, and drag-to-reschedule: ![[2026-07-03 - timeline.png]] The Unplanned panel groups cards by note type, then status, so a big backlog stays navigable in calendar and timeline modes: ![[2026-07-03 - kanban action planner grouped navigation.png]] Triage mode, clarifying a backlog one card at a time: ![[2026-06-30 - Kanban Action Planner plugin for Obsidian - triage.png]] In the settings, you just have to configure the key fields that need to be defined, and the triage mode lists all the notes that don't respect the rules, then let's you easily update those: ![[How I Turned My Obsidian Notes Into Kanban Boards (Article) - update props.png]] Per-type configuration, synced from the Obsidian Starter Kit when it is present: ![[2026-06-30 - Kanban Action Planner plugin for Obsidian - note types.png]] Relationships and statuses, edited straight from the card menu: ![[2026-06-30 - Kanban Action Planner plugin for Obsidian - card menu.png]] Cards carry a due countdown and color-coded properties: ![[2026-06-30 - Kanban Action Planner plugin for Obsidian - card due date.png]] Full keyboard support for moving and reordering cards: ![[2026-06-30 - Kanban Action Planner plugin for Obsidian - keyboard.png]] Configure automation rules (IF this THEN that): ![[Kanban Action Planner plugin for Obsidian - automation rules.png]] Embed the same view several times in a single note, each in a different mode — here a board and its calendar, both narrowed to one project: ![[Kanban Action Planner plugin for Obsidian - Embed different modes.png]] ## What it does - **Kanban view in Bases**: add one or more boards to any Base. The Base's own filters decide which notes show up. - **Embed views in any note**: a standard `![[My Base.base#View]]` embed renders the full view inside a note, with per-embed mode/height/filter overrides (see below). - **Status to columns, defined not guessed**: a status property places each card into a column you define, so a typo can't spawn a stray column. Unmapped notes land in an "Unmapped" column that hides itself when empty. - **Move, reorder, sort**: drag a card to another column to change its status, reorder within a column, or auto-sort by name, by any property, or even by a base formula like a `priority_score`. Full keyboard support too. - **Filter as you type**: a compact, Jira-like search box (e.g., `status:active OR due:overdue`, `parent:"PKM" -tag:archived`), saved per view. - **GTD contexts**: tag notes with contexts (`@work`, `@home`, …) in a `contexts` list property, then filter to any combination from a toolbar **@** switcher (an OR across the ones you pick), saved per view. Toggle a card's contexts from its right-click menu, pin a context in an embed with `context=`, and see them color-coded on the calendar and timeline with a click-to-filter legend. - **Triage mode**: when a backlog gets overwhelming, work through it one card at a time, setting priority, urgency, and the rest from quick one-click controls. It also doubles as a spaced-repetition review queue. - **Relationships you can see and edit**: parent, sibling, child, and `blocked_by` links. Navigate them, add or remove them from the card menu, and flag blocked items. An archived blocker stops blocking. - **Swimlanes**: split the board into collapsible lanes by note type or any property. Drag across lanes to rewrite the grouping. - **Calendar mode**: flip the same board into a scheduling calendar (day, week, month, quarter, year) that plots scheduled dates and deadlines together. Drag cards onto days to set `date_scheduled` or `date_due`. - **Timeline mode**: a Gantt-style view that places each card by its start date plus an estimate in days (no end date), with milestone diamonds, a today line, per-row deadline lines, and drag or resize to reschedule. The Unplanned panel groups cards by note type, then status. - **Archiving**: move finished cards into a placeholder-driven folder (e.g., `Archive/{{year}}`), manually or automatically when they reach a given status. Links are preserved. - **Done state per note type**: define what "done" means for each note type — a property plus the value(s) that count (e.g., the Completed and Done statuses, another property's values, or a simple `true` checkbox). Done notes read as 100% complete in progress rollups, even without a progress number, so parents show real momentum as their children complete. - **Automation rules**: per note type, "when this happens to a note, do that". Triggers: the note enters or leaves a status, enters a done state, gets archived, or a property crosses a condition (e.g., `progress ≥ 100`). Actions: set or remove properties (values support `{{date}}`-style placeholders), add or remove tags, or move the note to a placeholder-driven folder. Mark a task Done and its progress jumps to 100, the due date clears, and `date_completed` stamps itself — from any write path (drag, menu, bulk edit, triage), exactly once per transition, with no cascading rules. - **Color-coded cards**: cards show the properties you picked in the Bases view, including base formulas. Enum values are color-coded by rank, so the board reads like a heatmap. - **Reusable note types**: per-type config for statuses, colors, relationships, archiving, and swimlanes. Define your own, or mirror them from the Obsidian Starter Kit. ## Embed views in your notes Any view of this plugin can be embedded in a regular note with a standard embed link: ``` ![[Actions (Base).base#Kanban: Tasks]] ``` - The `.base` extension is **required** in the link, and the part after `#` is the **view name** inside that Base. - The embed sizes to its content up to a height cap and scrolls internally past it, in every mode. The wikilink alias (the text after `|`) can override how that one embed renders, without changing the saved view: ``` ![[Actions (Base).base#Kanban: Tasks|mode=calendar height=400 filter=parent:"Obsidian Starter Kit (Project)"]] ``` - `mode=` — `board` (or `kanban`), `calendar`, `timeline`, `triage`, or `wbs`. - `height=` — the embed's height cap in pixels (200–2000); the embed still shrinks below it when the content is smaller. - `context=` — pin the embed to one or more GTD contexts (comma-separated, e.g. `context=@work,@home`); put it before `filter=`. - `filter=` — everything after `filter=` is the initial filter query, exactly as I'd type it in the filter box. A wikilink alias can't contain `|`, so write `OR` instead of `|` in embed filters. All parts are optional. Embeds are projections: switching the mode, editing the filter, collapsing panels — anything changed inside an embed applies to that embed only and never touches the view saved in the `.base` file. Editing the embed line updates the rendered embed in place. This makes it possible to embed the same view many times, in different modes and with different filters, wherever the information is useful. ## References - Community: https://community.obsidian.md/plugins/kanban-action-planner - Documentation: https://dsebastien.github.io/obsidian-kanban-action-planner - Source code: https://github.com/dsebastien/obsidian-kanban-action-planner - Releases: https://github.com/dsebastien/obsidian-kanban-action-planner/releases ## Related - [[Obsidian Bases]] - [[Journal Bases plugin for Obsidian]] - [[Timeline for Bases plugin for Obsidian]] - [[Obsidian Starter Kit]] - [[Kanban plugin for Obsidian]]