Sébastien Dubois2k downloadsRender your notes as configurable Kanban boards and calendars inside Bases, with statuses, ordering, relationships, and scheduling.
An Obsidian plugin that adds a Kanban board view to Obsidian Bases, so you can plan, track, and schedule any set of notes visually.
Pick a status property. It becomes your columns. From there you drag cards between them, reorder them, color them, view and edit the relationships between notes, surface what's blocked, filter as you type, and flip the same board into a calendar to schedule the work. Your existing note properties drive all of it, and every change lands straight back in your frontmatter. Define your note types yourself, or let the Obsidian Starter Kit plugin configure them for you when it's installed.
I built this because I wanted my planning to live in my notes, not in yet another app.
Requires Obsidian 1.13+ (the Bases view API and declarative settings). Works on desktop and mobile.
Want the whole picture first? Here's a complete walkthrough (~25 minutes): boards, calendar, timeline, triage, WBS, embeds, and how every change lands in your notes:
A Base read as a board. Your status property drives the columns, and each card shows the properties you picked in your Bases view:

The same idea on a big task base. Collapse the columns you don't need and the backlog stays out of the way:

Split the board into swimlanes by note type or any property (here, by priority):

Flip that exact board into a calendar to schedule the work. Scheduled dates and deadlines, plotted together:

Or into a Gantt-style timeline that places each card by its start date and estimate, with the Unplanned panel grouping cards by note type and status:

Break the same work down as a WBS tree. Estimates, progress, and dates roll up the hierarchy (own values win, the rest derives from the children):

Or see what's on your plate right now with the Agenda: a flat, prioritized list of Overdue, Today, and Upcoming items, with a Today/Week window switch and an Available only toggle:

Shape your ideal week: the recurring time blocks of every active activity and project, on a date-less weekly grid. Drag them, resize them, copy them, nudge them with the keyboard, straight into the notes' time_blocks. Overlaps get refused, every note is listed against its weekly target, and the whole week imports from and exports to JSON or Markdown. Cards and WBS rows then show a weekly budget ring (tracked this week vs target, red above the alarm), and the WBS adds lead, cycle and lateness days per row:


When it's time to actually do the work, spotlight one card full-pane in Focus mode. The timer feeds tracked time into your notes:

The pomodoro timer: a ring that drains over the phase, the note it runs on, the cycle count, and the controls in place — in the sidebar, or alone on a full screen for focus stretches and shared screens:

Card titles drop the note type's decoration ( (Task)), and a collapsed column highlights as a drop target while you drag:

Filter as you type with a compact query language:

The ? cheat-sheet keeps the whole query language one click away:

Slice any view by GTD contexts (@work, @home, …) from the toolbar @ switcher:

Create cards straight from the board. The dialog shows where the note will land and in which column, before you commit:

It follows the note type the board is about, so the same + creates a goal on a goals board:

When a backlog gets overwhelming, work through it one card at a time in Triage mode:

Or triage a single board column Tinder-style: a card stack with every status as a chip below it. Swipe or drag the card to any status (stamp + fly-out animation, confetti on done states), or keep it and move on:

Embed the same view in any note, several times in different modes. Here, a board and its calendar, both pinned to one project via ![[Tasks.base#Kanban|mode=board filter=parent:"Obsidian Starter Kit (Project)"]] and |mode=calendar …:

The full card menu: scheduling, time tracking, focus mode, statuses, enums, contexts, relationships, and archiving in one place:

Let the board do the bookkeeping with per-note-type automation rules. Enter a done state and the progress, dates, tags, or even the note's folder update themselves:

Configure statuses, colors, relationships, and archiving per note type, synced from the Obsidian Starter Kit when it's present:

From Community plugins (once listed): go to Settings → Community plugins → Browse, search for Kanban Action Planner, install, and enable.
Manually: download main.js, manifest.json, and styles.css from the latest release into <vault>/.obsidian/plugins/kanban-action-planner/, then enable the plugin in Settings → Community plugins.
Then add a Kanban view to any Base. That's it. The usage guide walks you through the rest.
![[Tasks.base#Kanban]] renders the view inside a markdown note, sized to its content up to a scrollable height cap. The wikilink alias overrides that one embed (|mode=wbs height=400 filter=status:active) without ever touching the saved view: mode switches and filter edits inside an embed stay in the embed. The same embed works in an Obsidian Canvas card: drag and drop works as usual, and the canvas card's size controls the board (height= is ignored there), so resizing the card resizes the board. columns= and lanes= narrow a board embed to a subset of its columns or swimlanes, by substring, or by whole name with an = prefix, as in columns==doing.manual_order property). Send a card straight to the top or bottom of its column from the right-click menu. Auto-sort each column by name or any property, including a base formula like a priority_score, ascending or descending. Full keyboard support (move, reorder, menu) and command-palette commands.status:active OR due:overdue, parent:"PKM" -tag:archived), saved per view, in both board and calendar mode. scheduled:, estimate: (unit-aware: estimate:>4h), progress:, and order: always resolve to the configured properties, whatever they're actually named, just like context: does.@work, @home, …) in a contexts list property and filter to any combination from a toolbar @ switcher (or pin one in an embed with context=). Toggle a card's contexts from its right-click menu, and see them color-coded on the calendar and timeline with a click-to-filter legend.blocked_by via link-properties (plus an optional tag and link heuristic). Navigate them, add or remove them from the card menu, flag and filter blocked items. An archived blocker stops blocking.date_scheduled or date_due, with an Unplanned / No-deadline panel and per-day zoom. Or right-click any card (board too) to schedule or set a deadline through a date prompt that understands typed dates (tomorrow, fri, next mon, in 3 days) and previews the exact day it will write. In every scheduling panel (calendar, timeline, WBS), drag a card onto another status group to change its status in place. Cards with an estimate span every covered day (dimmed continuation chips).time_estimate minutes, converted via a configurable minutes-per-day): a square without an estimate, a rectangle spanning it with a duration badge (5d). Drag to move the start, resize the right edge to change the estimate, the left edge to shift the start (end stays anchored). The date that will be written shows live on every drag, resize, and drop. Milestone diamonds, a today line, a per-row red deadline line, Week/Month/Quarter/Year axis with Ctrl/Cmd+wheel zoom, a collapsible "Unplanned" side panel of cards grouped by note type and status, and per-type show/hide on mixed boards.3, 2h, or 0.5d and press Enter), and distribute a parent's estimate across unestimated children.time_blocks (mon-fri 09:00-12:00, 15-minute grid, midnight crossing) render per weekday: move and resize them by drag or keyboard, copy them with Alt, create them by click (type-aware picker) or by dragging a note from the rail, which lists every note against its weekly target and asks for a missing target when you first plan a block. Overlaps are refused with the conflicting note named, minutes_planned_per_week is recomputed on every edit, and colour follows the first GTD context. Every edit shows at once and the grid never flickers; drag on the empty grid to draw a block over the cells and days you cover, move a whole selection at once, undo and redo (Ctrl+Z / Ctrl+Shift+Z), right-click an empty cell to plan or paste there, set a note's weekly target from its menu, print the week, and import or export the whole week as JSON or Markdown. Activities and projects then show a weekly budget ring (tracked this ISO week vs target, red above minutes_alarm_per_week, one notice per week) on their cards and WBS rows, goals and plans roll it up, and the WBS adds a lifecycle chip (lead, cycle, lateness, days active). The ideal week's second face is a targets table: every note's weekly target edited in place (5h, Enter moves down), planned minutes and gap, share of the available week, grouped by area or context with subtotals and repartition bars, and a totals row; a target follows the planned blocks when they overshoot it (never lowered), and the rail groups by status, area (areas property) or context, with a filter box for the list. The grid's scale fits a day window (06:00–22:00) to the pane on any window size. And the modes you don't use? Switch them off globally in the settings.

Start/stop a session from any card's menu (one active session; starting elsewhere stops the previous one). Each session lands as a {startTime, endTime, description} entry in a time_entries list, the duration property is recomputed from that list, and a last-session date is stamped; property names map per note type. Pomodoro mode runs timed work/break periods on a card, records them in the daily note's pomodoros list, and shows a status-bar countdown; phases chain by themselves (work → break → work, skippable, pausable), and a session left running gets idle detection and a cap — end it where the activity stopped, keep it, or discard it — plus an optional description prompt on stop, so one forgotten night never poisons the roll-ups. A visual timer — a draining ring with the phase, the note, the remaining time and the cycle count, controls in place — lives in the sidebar, with a full-screen variant for focus stretches and shared screens.
The WBS rolls tracked time up the tree (own + descendants, actuals add) with a one-click Save total tracked time.
Archive/{{year}} and more), manually (per card, per selection, or a whole done column from its header) or automatically when a card reaches a given status: at once, or after a grace period counted from the note's done date (a board-load sweep archives aged notes, and stamps a done date on notes that lack one). Folder notes (Foo/Foo.md) take their whole folder along. Links are preserved.progress ≥ 100…), do things": set or remove properties (values take {{date}}-style placeholders), add or remove tags, 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, triage), exactly once per transition, with no cascading rules.formula.…) alike, so a computed value shows with no extra setup. Enum values are color-coded by rank (warm = top priority or urgency, cool = low) so the board reads like a heatmap, the NN - sort prefix is hidden, and a numeric score shows as an accent badge. The card title can come from any property instead of the note name (per view, with the note name as fallback). Handy when your filenames are IDs or dated slugs. Card titles also drop the note type's name decoration by default ( (Task), AI Wiki - ), so a board of tasks reads Ship the plugin, not Ship the plugin (Task) — presentational only, per-type toggles and extra affixes in Configure board → Card titles.Σ 13, or an average / min / max; estimates roll up as 1d 2h, unit-converted per note type), multi-select with bulk set-status / archive / open, a compact mode showing titles only, overdue and due-today emphasis, an optional due countdown badge (In 3d, 2d overdue, Today, color-coded by urgency and positionable on the title, a chip, the corner, or a footer), native hover preview, and per-view state remembered across reloads.See DEVELOPMENT.md. The short version: bun install, then bun run dev (watch) or bun run build (production). Quality gate: bun run tsc, bun run lint, bun test, bun run build.
MIT License. See LICENSE.
| Plugin | What it does |
|---|---|
| Agentic Resource Discovery Server | Local-first Agentic Resource Discovery publisher and registry that serves your AI skills and tools to agents over a local HTTP and MCP server |
| Book Exporter | Export books (one manifest note + linked chapter notes) to EPUB and PDF via Pandoc |
| Bookshelf Base | Display your notes as a visual bookshelf via a custom Bases view |
| Dataview Serializer | Serialize Dataview queries to Markdown, and keep the Markdown representation up to date |
| Expander | Replace variables across your vault using HTML comment markers. Supports static values and dynamic functions |
| Ghost Publish | Publish your vault notes to a Ghost blog with configurable presets for tags, newsletters, and frontmatter conventions |
| Graph Explorer Base View | A custom Bases view that renders notes as an interactive force-directed graph with explored/unexplored tracking |
| Hidden Folders Access | Index hidden root-level folders (e.g. .claude) so they appear in the file tree, metadata cache, and Bases |
| Journal Bases | Custom Base views for journaling and periodic reviews |
| Life Tracker | Capture and visualize the data that matters in your life |
| Note Village | A 2D pixel art village where your notes become villagers you can explore and chat with using AI |
| Obsidian Starter Kit | Adds strong typing support and powerful automation support for notes |
| Remarkable Synchronizer | Connect to the reMarkable cloud, list, download, and sync notebook pages as images |
| Replicate | Use AI models with ease via the Replicate.com integration |
| REST and MCP server | Exposes CLI commands as RESTful API endpoints and an MCP server for AI tool integration |
| Time Machine | Browse, compare, and restore previous versions of your notes using built-in file-recovery snapshots |
| Transcriber | Transcribe images to markdown using Ollama vision models |
| Typefully | Publish social media posts with ease using the Typefully integration |
| Update Time | Automatically update front matter to include creation and last update times |
Everything I build is documented in my newsletter and on my YouTube channel.
To stay up to date about this plugin, Obsidian in general, personal knowledge management and note-taking:
If this plugin is useful to you, here are the best ways to support my work ❤️:
Found a bug or have an idea? Open an issue.