Gantt Calendar

by Sugar
5
4
3
2
1
Score: 54/100

Description

The Gantt Calendar plugin turns Markdown tasks into a multi view planning workspace with task, year, month, week, day and gantt layouts that switch without losing context. It reads both Tasks plugin syntax and Dataview inline fields, supports six date fields, timed tasks, recurring rules and drag based rescheduling across calendar and timeline views. The day view can load the matching daily note in an embedded editor, while the sidebar offers search, filters, sorting and a compact timeline for today's work. Gantt bars are interactive, task filters persist across refreshes and the plugin includes heatmaps, lunar and festival data, quick create actions and right click task editing. It also supports optional bidirectional Feishu sync through OAuth.

Reviews

No reviews yet.

Stats

115
stars
13,744
downloads
7
forks
101
days
58
days
73
days
1
total PRs
0
open PRs
1
closed PRs
0
merged PRs
34
total issues
4
open issues
30
closed issues
465
commits

Latest Version

2 months ago

Changelog

1.5.23

README file from

Github

Obsidian Gantt Calendar

简体中文

A powerful visual task management plugin for Obsidian.

Multi-View Calendar — Task / Year / Month / Week / Day / Gantt — six views with seamless switching

Festival Display — Solar festivals, lunar festivals, and 24 solar terms

Data Visualization — Task heatmap, daily task counts, 8 gradient palettes

Smart Task Management — Global filter, priority tags, 6 date fields, time precision (HH:mm), smart write-back with line drift protection

Timeline Canvas — Continuous minute-positioned timeline in Week/Day/Sidebar views: click-to-create, edge resize (15-min snap), WYSIWYG drag with landing preview

Mobile Ready — Long-press menus as bottom sheets, touch drag, swipe paging, floating navigation dock, responsive layouts

Instant Startup — Skeleton screen renders immediately; the full-vault first scan runs asynchronously, so opening the layout is never blocked

Daily Note Integration — Embedded editor with edit/preview mode toggle

Sidebar View — Task search, filter & sort + daily timeline

Highly Customizable — Festival colors, heatmap palettes, task display count, and more

Dual Format — Full support for Tasks plugin (emoji) and Dataview plugin (inline field) formats

Recurring Tasks — daily/weekly/monthly/yearly repeat with virtual instances shown across all views (Year/Month/Week/Day/Task/Gantt)

Feishu Sync — Bidirectional task sync with Feishu (Lark) via OAuth 2.0


Table of Contents


Screenshots

Year View YearView

Gantt View GanttView

Week Timeline View WeekTimeline

Sidebar View (Task List + Daily Timeline) SidebarView

Day View with Embedded Editor DayViewEditor


Requirements

Item Requirement
Obsidian 1.13.0 or later
Platform Desktop and mobile (isDesktopOnly: false)
Optional Tasks and/or Dataview — the plugin parses both formats natively; installing them is not required
Optional Obsidian core Daily Notes or the Periodic Notes community plugin, for the Day View embedded editor
Optional A Feishu (Lark) account and a self-built Feishu app, for task sync

The plugin only reads and writes standard Markdown task lines. Your notes stay plain text — uninstalling it leaves your vault fully intact.


Installation

  1. Open Settings → Community plugins → Browse
  2. Search for Gantt Calendar
  3. Click Install, then Enable

Also available from the plugin directory: https://community.obsidian.md/plugins/gantt-calendar

Option B — BRAT (beta builds, newest commits)

  1. Install and enable the community plugin BRAT
  2. Run the command BRAT: Add a beta plugin for testing
  3. Enter the repository URL: https://github.com/sustcsugar/obsidian-gantt-calendar
  4. Enable Gantt Calendar in Settings → Community plugins

Option C — Manual

  1. Download main.js, manifest.json and styles.css from the latest Release
  2. Create the folder <your-vault>/.obsidian/plugins/gantt-calendar/
  3. Copy the three files into it — the folder name must be gantt-calendar
  4. Restart Obsidian, then enable Gantt Calendar in Settings → Community plugins

All three files are required. Copying only main.js leaves the plugin unstyled and it will not load.

Updating

Re-run the same channel you installed with. For a manual install, overwrite the three files and disable/re-enable the plugin. Settings in data.json are preserved.


Quick Start

1. Open the view

Three equivalent entry points:

  • Ribbon icon — click Gantt Calendar in the left sidebar
  • Command palette — Gantt Calendar: Open Calendar View (defaults to Month), Open Task View, or Open Sidebar
  • Auto-open — the right sidebar automatically activates on startup

Use the view switcher on the left of the toolbar to move between the six views.

Available commands
Command What it does
Gantt Calendar: Open Calendar View Opens the main view, switched to Month
Gantt Calendar: Open Task View Opens the main view, switched to Task
Gantt Calendar: Open Sidebar Opens the right-sidebar view
Gantt Calendar: Feishu Task Bidirectional Sync Runs one Feishu sync immediately

All commands are available in the command palette and can be bound to hotkeys.

2. Create your first task

Click Add Task (the + button, top-right of the toolbar) to open the create modal, or just type a task line into any Markdown file:

- [ ] 🎯 Complete project documentation 📅 2025-12-20

The task appears in every view immediately — no reload needed.

Tasks with a start and a due date become real Gantt bars and timeline blocks:

- [ ] 🎯 Complete project documentation 🛫 2025-12-10 📅 2025-12-20

Add a time to the minute and the task lands on the timeline canvas:

- [ ] 🎯 Daily standup 📅 2025-12-20 09:30

4. Try the interactions

Action Where Result
Drag a task card Month / Week Reschedules the task in the source file
Click empty canvas Week / Day / Sidebar Creates a task at that time (15-min snap)
Drag a block's top/bottom edge Week / Day / Sidebar Adjusts start/end; hold Alt for 5-min precision
Drag a Gantt bar / endpoint Gantt Shifts dates, or changes the progress percentage
Right-click any task Everywhere Edit / set priority / postpone / cancel / delete
Click a task Configurable Jumps to the source file, or opens the edit panel

5. Wire up Daily Notes (Day View)

Enable Obsidian's core Daily Notes (or Periodic Notes) plugin, then open Settings → Gantt Calendar → Daily Notes and turn on Use Obsidian daily note settings. The Day View now loads that date's note in an embedded editor next to the task timeline.

Alternatively, switch off that toggle and set the folder / filename format / template path manually.


Task Syntax Reference

Tasks plugin format (emoji)

- [ ] 🎯 Complete project documentation ⏫ ➕ 2025-01-10 🛫 2025-01-12 ⏳ 2025-01-14 📅 2025-01-15 #work
Emoji Meaning Emoji Meaning
🎯 Global filter marker 🔺 Highest priority
⏫ High priority 🔼 Medium priority
🔽 Low priority ⏬ Lowest priority
➕ Created date 🛫 Start date
⏳ Scheduled date 📅 Due date
✅ Completion date ❌ Cancelled date
🔁 Recurring task #tag Tag

Dataview plugin format (inline fields)

- [ ] 🎯 Complete project documentation [priority:: high] [created:: 2025-01-10] [start:: 2025-01-12] [scheduled:: 2025-01-14] [due:: 2025-01-15] #work
Field Meaning Field Meaning
priority:: Priority created:: Created date
start:: Start date scheduled:: Scheduled date
due:: Due date completion:: Completion date
cancelled:: Cancelled date repeat:: Recurrence rule

Which formats are parsed is configurable — Tasks only, Dataview only, or Both (default).

Time precision

  • Date only — YYYY-MM-DD (e.g. 2026-04-27)
  • Date + time — YYYY-MM-DD HH:mm (e.g. 2026-04-27 14:00)

Timed tasks render as positioned blocks on the Week / Day / Sidebar timeline canvases. Date-only tasks and spans of 24 h or more land in the all-day row.

Task statuses

The checkbox character drives the status. Built-in statuses:

Symbol Status Symbol Status
Todo x / X Done
! Important - Cancelled
/ In progress ? Question
> Started — —

Custom statuses can be added in Settings → Gantt Calendar → Tasks → Task status, each with its own symbol, colours, and description.

Recurring tasks

- [ ] 🎯 Weekly review 🔁 every week on Monday 📅 2026-01-05
- [ ] 🎯 Pay rent 🔁 every month on 1 📅 2026-01-01
- [ ] 🎯 Water the plants 🔁 every 3 days 📅 2026-01-05
- [ ] 🎯 Change filter 🔁 every 6 months when done 📅 2026-01-05
Rule fragment Meaning
every day Daily
every 3 days Every N days
every week on Monday Weekly on a given weekday
every month on 15 Monthly on the 15th
every year on 01-01 Yearly on Jan 1
every weekday Every Mon–Fri
when done Next date is computed from the completion date instead of the scheduled date

The plugin renders virtual instances of recurring tasks across Year / Month / Week / Day / Task / Gantt views. How many future instances are shown is set by Settings → Gantt Calendar → Tasks → Recurring instance count (0 disables them).

Editing a recurring task edits the source line. Virtual instances are read-only projections — real instances are materialised by the Tasks plugin when you complete an occurrence.

Putting it together

# Project Phoenix

- [ ] 🎯 Kick-off meeting 🛫 2026-04-20 10:00 📅 2026-04-20 11:30 ##meeting
- [ ] 🎯 Write technical design ⏫ 🛫 2026-04-21 📅 2026-04-28 #design
- [ ] 🎯 Review with stakeholders 🔼 🛫 2026-04-29 📅 2026-04-30 #review
- [ ] 🎯 Ship v1.0 🔺 🛫 2026-05-01 📅 2026-05-15 #release
- [ ] 🎯 Weekly sync 🔁 every week on Friday 📅 2026-04-24 15:00 #meeting

Features

Layout

The plugin uses a toolbar + content area layout:

  • Toolbar Left — View switcher (6 views)
  • Toolbar Center — Current date range / title
  • Toolbar Right — Functional buttons (sort, filter, navigation, add task, sync, refresh, settings)

On mobile the toolbar is replaced by a floating Navigation Dock — one-thumb access to view switching and key actions. On desktop narrow windows (≤520px) the Day View switches to the same vertical split as mobile.

Year View

  • Year Overview — 12 month cards showing full-year task distribution
  • Task Heatmap — 5-level color gradient for task density
    • 8 palette options: blue / green / red / purple / orange / cyan / pink / yellow
    • 3D heatmap effect (off / slight / prominent)
  • Responsive Layout — Auto-switches between 4×3 / 3×4 / 2×6 / 1×12 grids
  • Task Count — Optional per-day task total display
  • Lunar Calendar — Chinese lunar dates in month cards
  • Click Navigation — Click a date to switch to Day View

Month View

  • Monthly Calendar — Standard month grid layout with daily tasks
  • Week Numbers — ISO week numbers shown in the first column
  • Task Display Limit — Configurable per-day task count (1–10) with "+N more" overflow
  • Task Popup — Click a date to view all tasks for that day
  • Festival Display — Solar/lunar/solar-term festivals with distinct colors
  • Drag & Drop — Drag task cards between days to reschedule
  • Recurring Tasks — Virtual instances for repeating tasks
  • Week Start — Configurable Monday or Sunday start

Week View

  • Continuous Time Canvas — Always-on 24-hour timeline (no more list/timeline mode switching); task blocks positioned by the minute (1h = 50px), hour + half-hour grid lines
  • Smart Task Blocks — Blocks sized by actual duration:
    • Single-time tasks render as 1-hour point blocks anchored by field role (start-field → forward [t, t+60), due-field → backward [t-60, t))
    • Same-day intervals render at true size; overnight intervals (<24h) span columns with continuation arrows
    • Multi-day tasks (≥24h) move to the all-day row as spanning bars with time annotations ("22:00 → 18:00")
    • Text wraps to multiple lines within block bounds (block is master, text is servant)
  • All-Day Row — Date-only tasks + ≥24h spanning bars, unlimited lane rows with +N collapse beyond 3
  • Click-to-Create — Click any empty canvas spot to create a task at that time (15-min snap); drag vertically to pre-select a range
  • Edge Resize — Drag block top/bottom edges to adjust start/end (15-min snap, Alt = 5-min fine-tune); resizing a point task upgrades it to an interval
  • WYSIWYG Drag & Drop — Landing anchored to block edges (not cursor) with drop preview; dropping a point task writes both start & end
  • Overlap Lanes — Up to 3 side-by-side columns; 4th+ stacks with shadow
  • Mobile — 3-day sliding window with horizontal swipe
  • Today Highlight — Current day emphasized; current time indicator line
  • Lunar Info — Lunar dates and festivals in day headers

Day View

  • Continuous Time Canvas — Same timeline semantics as Week View (minute-positioned blocks, edge resize, click-to-create, drop preview, multi-line text)
  • All-Day Section — Date-only tasks + ≥24h spanning bars with time annotations; drop here to convert to all-day
  • Drag & Drop — Block-edge-anchored with landing preview; point tasks upgrade to intervals on drop
  • Current Time Indicator — Red line at the current time
  • Daily Note Integration
    • Embedded full editor (WorkspaceSplit mode)
    • Edit / Preview mode toggle
    • Auto-loads daily note for the selected date
    • Supports Obsidian core daily notes, Periodic Notes plugin, and custom paths
  • Resizable Split — Draggable divider between task and note panes (horizontal or vertical layout)
  • Lunar Info Bar — Lunar date, festivals, and solar terms
  • Narrow Window — At ≤520px width, switches to vertical split (timeline above, editor below) for comfortable use on small screens

Task View

  • Task List — Centralized display of all tasks
  • Date Range Filter — All / Today / This Week / This Month / Custom range
  • Time Field Selector — Filter by any of 6 date fields
  • Multi-dimensional Filtering — Status, priority, and tags (AND/OR/NOT operators)
  • Sorting — 7 sort fields with asc/desc toggle
  • Persistent State — Filter and sort settings persist across refreshes
  • Recurring Tasks — Virtual instances for repeating tasks are expanded and sorted by date

Gantt View

  • Interactive Gantt Bars — Custom SVG rendering engine
    • Drag entire bar to shift dates
    • Drag endpoints to adjust start/end dates
    • Drag to change progress percentage
    • Click to open task edit modal
  • Navigation — Jump to today / scroll left / scroll right
  • Incremental Refresh — Fingerprint-based diff (O(1) events) + immediate drag-write-back (no delay)
  • Tag & Status Filtering — Filter gantt bars by tags and status
  • Configurable Fields — Choose which date fields map to gantt start/end
  • Time-Aligned — Day-granularity grid aligned with calendar view semantics; touch-friendly handles (22px hit area); bar-end time annotations

Sidebar View

Two-tab sidebar for quick task access:

Task List Tab

  • Keyword search (debounced)
  • Multi-dimensional filters: status, priority, tags (OR/AND), date range
  • Sort by: priority / due date / start date
  • Click a task card to jump to the source file or open the edit panel (Settings → General → Task Card Click)

Daily Timeline Tab

  • 24-hour timeline for timed tasks (defaults to today)
  • Date navigation on the right of the title row (previous / today / next)
  • All-day task section
  • Current time indicator line
  • Drag & drop to adjust time
  • Quick create on empty slots

Context Menu

Right-click any task for:

  • Edit Task — Full edit modal (description, priority, dates, repeat, tags)
  • Create Note — Generate a wiki-linked note from the task (same name or alias)
  • Set Priority — 6 levels: highest / high / medium / normal / low / lowest
  • Set Status — Custom statuses (important, question)
  • Postpone — Delay 1/3/7 days (from due date or from today)
  • Cancel / Restore — Toggle cancelled state
  • Delete — Remove task from markdown file

Feishu (Lark) Sync

  • Bidirectional Sync — Push local tasks to Feishu and pull Feishu tasks to Obsidian
  • OAuth 2.0 — Secure authentication with automatic token refresh
  • Push Filters — Filter by file paths, completion status, and date
  • Conflict Resolution — Multiple strategies: local-wins, remote-wins, newest-wins, manual
  • Auto Sync — Configurable automatic sync interval
  • Sync Result Modal — Detailed per-task sync results with statistics

⚠️ Back up your vault before enabling sync. The sync engine is under active development and pushes/pulls write directly into your Markdown files.

  1. Create a self-built app at https://open.feishu.cn/app and note its App ID and App Secret.
  2. Under Permissions & Scopes, grant: offline_access, calendar:calendar:readonly, task:task:read, task:task:write, task:tasklist:read, task:tasklist:write
  3. Under Security Settings → Redirect URL, add the callback used by the plugin: https://open.feishu.cn/api-explorer/loading
  4. Publish a version of the app and have it approved.
  5. In Obsidian, open Settings → Gantt Calendar → Sync, paste the App ID / App Secret, click Authorize, finish the flow in your browser, then paste the code parameter from the callback URL back into the plugin.
  6. Click Fetch task lists, then pick the list that should act as the sync target.
  7. Choose Sync direction (bidirectional / import-only / export-only), Conflict resolution, and optionally an Auto sync interval (minutes; 0 disables it).
  8. Run Gantt Calendar: Feishu Task Bidirectional Sync, or press Sync now in settings.

Use Test sync to push/pull only the 5 tasks with the nearest due dates — a safe way to verify the connection before a full run.


Settings Reference

Settings live under Settings → Gantt Calendar, organised into five tabs.

General

Setting Description
Language Follow system / English / 中文
Default view View shown when the plugin opens (Day/Week/Month/Year/Task/Gantt)
Task card click Jump to the Markdown source file, or open the edit panel
Show nav button text Show text labels next to the toolbar view-switch icons
Developer mode Emit verbose debug logs instead of statistics + errors only
Timezone Fixed UTC offset — affects "today" and calendar highlighting (DST is not auto-handled)
Time format 24-hour (14:30) or 12-hour (2:30 PM)

Calendar

Setting Description
Use Obsidian daily note settings Read folder / format / template from core Daily Notes or Periodic Notes (recommended)
Daily Note folder Manual mode only — folder holding the daily notes
Daily Note filename format Manual mode only — e.g. yyyy-MM-dd
Daily Note template path Manual mode only — template used when creating a note (blank = empty file)
Date filter field Field used by calendar views to place tasks (Task View can switch this per-session)
Week start Monday or Sunday
Show lunar dates Lunar text in Year / Month / Week views
Show festivals & solar terms Coloured highlight markers on lunar text
Festival colours Separate colours for solar festivals, lunar festivals, and solar terms

Views

Group Settings
Day View Show Daily Note; layout — side-by-side or stacked
Month View Tasks per day (1–10, also caps spanning-bar lanes); lunar font size (8–18 px)
Year View Show daily task count; lunar font size; enable heatmap; heatmap palette (8 options); 3D heatmap effect
Gantt Start field & end field mapping (created / start / scheduled / due / completion / cancelled)
Task card display Toggle checkbox, tags, priority, and extra content per view (Day / Week / Month / Sidebar)

Tasks

Group Settings
Task basics Global filter marker (e.g. 🎯 , TODO , #task — ⚠ requires restart); enabled formats (Tasks / Dataview / Both); show global filter in task text; task note folder path
Task creation Target heading for new tasks in the daily note; default priority; recurring instance count
Task status Default statuses plus custom ones — each with symbol, description, and light/dark colours

Sync

See Setting up Feishu sync above. Key items: task list selection, target file for pulled tasks (default gantt-calendar-feishu-sync.md), sync direction, conflict resolution, auto-sync interval, and push filters (paths / completion status / date).


FAQ & Troubleshooting

My tasks don't show up.

  1. Confirm the line is a real task: - [ ] followed by text.
  2. If a global filter marker is configured, every task must carry it (- [ ] 🎯 …). Change or clear it in Settings → Tasks → Global filter marker — this requires an Obsidian restart.
  3. Check that the enabled task format matches how you write tasks (Tasks emoji vs Dataview inline fields).
  4. In calendar views, tasks are placed by the date filter field — a task with no such date simply has nowhere to appear. Task View shows everything regardless.

I changed the global filter and nothing happened. That setting is read once at load. Fully restart Obsidian (not just toggle the plugin).

Dragging a task in the calendar didn't change the file. Check that the target line was not edited in another pane meanwhile — the plugin detects line drift and refuses the write rather than corrupting your notes. Refresh the view and try again.

Gantt view is empty. The Gantt start/end field mapping doesn't match your tasks. Set them in Settings → Views → Gantt — e.g. start = start date, end = due date.

Recurring tasks show up many times. Those are virtual instances. Lower or zero the count in Settings → Tasks → Recurring instance count.

Lunar dates disappeared. Lunar display is auto-disabled when the interface language is not Chinese; re-enable it manually under Settings → Calendar.

The Day View has no editor. Either enable Obsidian's core Daily Notes (or Periodic Notes) and turn on Use Obsidian daily note settings, or switch it off and fill in the folder + filename format manually.

"Today" is off by an hour. The timezone setting is a fixed UTC offset and does not follow DST. Set it to follow the system, or pick a region without DST.

Feishu sync says authorization is required / expired. Re-authorize in Settings → Sync. Authorization codes expire in ~5 minutes — grab the code from the callback URL promptly.

Sync overwrote my notes. Restore from a backup or Obsidian's File Recovery core plugin. Always back up before using sync.


Development

Prerequisites

  • Node.js 18+
  • npm

Setup

git clone https://github.com/sustcsugar/obsidian-gantt-calendar.git
cd obsidian-gantt-calendar
npm install

npm install runs a postinstall that removes a stray nested obsidian copy pulled in by obsidian-daily-notes-interface. This is expected.

Scripts

Command Purpose
npm run dev esbuild watch build — rebuilds main.js on save
npm run build Type-check (tsc --noEmit) + production bundle
npm run lint ESLint (eslint-plugin-obsidianmd recommended config)
npm test Jest test suite (verbose)
npm run test:watch Jest in watch mode
npm run bench Timeline model micro-benchmark
npm run version Bump manifest.json + versions.json via version-bump.mjs

Testing against a real vault

Symlink or copy the project folder into <vault>/.obsidian/plugins/gantt-calendar/, run npm run dev, then reload the plugin (Ctrl/Cmd+P → Reload app without saving, or toggle it off/on in settings). Output is a single CommonJS bundle main.js with obsidian and electron left external.

Architecture

main.ts                          Plugin entry — views, commands, settings tab, managers
src/
  GCMainView / GCSidebarView     Obsidian ItemView shells (React mounts)
  ui/
    App.tsx                      Mounts ModalProvider + TooltipProvider + 6 views
    views/                       Year / Month / Week / Day / Task / Gantt
    sidebar/                     SidebarApp + TaskListPanel + DailyTimelinePanel
    components/                  Icon, DropdownMenu, Modal, TooltipProvider,
                                 ContextMenu, TaskCard, Toolbar
    modals/                      TaskFormModal, ConfirmDialog, SyncResultDialog,
                                 modalHost (imperative bridge for non-React callers)
    store/calendarStore.ts       zustand store for view state + filters
  data-layer/
    TaskStore                    Facade consumed by views
      ├── EventBus               Publish/subscribe
      ├── TaskRepository         In-memory Map cache + file index
      │     └── MarkdownDataSource   Vault scan (batches of 50, metadataCache)
      └── SyncManager (optional) Multi-source sync orchestration
  tasks/                         Four-step parser + write-back (drift protection)
  gantt/wrappers/                Custom SVG Gantt renderer
  settings/                      Builder-pattern settings tab
  commands/                      Command registration (common / conditional / feishu)
  i18n/                          i18n runtime + en/zh locale JSON
tests/                           Jest suites (parser steps, drift, recurrence, …)

Key conventions

  • DOM class names go through BEM constants in src/utils/bem.ts — no hard-coded strings
  • Regexes live in src/utils/RegularExpressions.ts — no inline regex
  • Tooltips reuse src/utils/tooltipManager.ts — do not reimplement
  • Task edits go through updateTaskProperties() — never patch Markdown text directly
  • UI is declarative React; no manual createEl / addEventListener outside base components, hosts, and the icon wrapper

Contributing

Contributions of all kinds are welcome — bug reports, feature requests, translations, and code.

Reporting bugs & requesting features

Open an Issue and include:

  • Obsidian version, plugin version, OS, and whether it's desktop or mobile
  • Clear reproduction steps
  • Expected vs. actual behaviour
  • Screenshots or a screen recording for visual bugs
  • The exact Markdown task line involved, if task parsing is at fault

Please search existing issues first.

Submitting a pull request

  1. Fork the repository and create a topic branch: git checkout -b fix/gantt-drag-jitter
  2. Keep the diff focused — one logical change per PR. Avoid unrelated reformatting.
  3. Follow the conventions listed in Architecture — BEM constants, shared regexes, updateTaskProperties(), declarative React.
  4. Add tests for parser, date-utility, and data-layer changes under tests/.
  5. Verify before pushing — all three must pass:
    npm run lint
    npm run build
    npm test
    
  6. Commit messages — short imperative subject, optional body explaining why. Reference issues with #123.
  7. Open the PR with a description covering: what changed, why, how you tested it, and any UI screenshots.
  8. Be responsive to review feedback — maintainers may ask for a rebase or changes.

The repository's own rules: never commit or push automatically; commits are made deliberately by the author. Please keep commit history on your branch clean and rebase rather than merge from master.

Translating

UI strings live in src/i18n/locales/. To add a language, copy en.json, translate the values, and register the locale in src/i18n/i18n.ts. Keep the key structure identical.

Releasing (maintainers)

  1. Bump the version in three places — manifest.json, package.json, and versions.json ("<version>": "<minAppVersion>"). npm run version handles manifest.json + versions.json.
  2. npm run build
  3. Commit, then create an annotated tag without a v prefix (e.g. 1.6.3)
  4. Push master and the tag
  5. Create a GitHub Release whose assets are exactly main.js, manifest.json, and styles.css — the community plugin store pulls from there

Roadmap

Task Parsing

  • Tasks and Dataview dual-format parsing
  • Global filter markers
  • Task tags
  • Task description
  • 6 priority levels
  • 6 date fields with time precision (HH:mm)
  • Recurring task recognition and display
  • Recurring task virtual instances across all views (Year/Month/Week/Day/Task/Gantt)
  • Smart write-back (line drift protection, file-level locking, mixed-format preservation)
  • Nested tag recognition
  • Multi-line task recognition
  • Sub-task recognition
  • Task dependency relationships

Views

  • Day View with Daily Note integration (embedded editor)
  • Day View timeline layout
  • Week View continuous time canvas
  • Week/Month View drag & drop
  • Year View heatmap and task count
  • Task View (multi-dimensional filter + date range + recurring task virtual instances)
  • Gantt View (drag + incremental refresh + navigation + recurring task virtual instances)
  • Sidebar View (task list + daily timeline)

Toolbar

  • View switcher
  • Tag / status / priority filtering
  • Date navigation buttons
  • Time field selector
  • Add task button

Interactions

  • Task cards (description, tags, priority)
  • Context menu (edit, create note, priority, status, postpone, cancel, delete)
  • Hover tooltips
  • Quick create on empty time slots

Future Plans (v2.0.0)

  • Third-party calendar subscription (Feishu Calendar, Outlook Calendar)
  • Microsoft To Do sync
  • Google / Apple Calendar via CalDAV

License

MIT


Found a bug or have a suggestion? Open an Issue

Enjoying the plugin? Give it a ⭐!

Similar Plugins

info
• Similar plugins are suggested based on the common tags between the plugins.
Big Calendar
5 years ago by Boninall
Big Calendar in Obsidian, for manage your events in a day/week/month and see agenda too!
Things Link
5 years ago by @gavmn
Heatmap Calendar
5 years ago by Richard Slettevoll
An Obsidian plugin for displaying data in a calendar similar to the github activity calendar
Obsidian Google Tasks
4 years ago by YukiGasai
Add Google Tasks inside Obsidian
Release Timeline
4 years ago by cakechaser
Table to CSV Exporter
4 years ago by Stefan Wolfrum
An Obsidian Plugin that allows to export tables from a pane in reading mode to CSV files.
Habit Tracker
4 years ago by David Moeller
A Plugin to display a Habit Tracker in Obsidian.
Simple Note Review
4 years ago by dartungar
Simple, customizable plugin for easy note review, resurfacing & repetition in Obsidian.md.
Better Inline Fields
4 years ago by David Sarman
Obsidian plugin to enhance Dataview style inline fields
Agile Task Notes
4 years ago by BoxThatBeat
This Obsidian plugin integrates your TFS data from either Jira or Azure Devops
Google Calendar
4 years ago by YukiGasai
Add Google Calendar inside Obsidian
Chronology
4 years ago by Gabriele Cannata
Week Planner
4 years ago by Ralf Wirdemann
Checkbox 3 states
4 years ago by Renaud Héluin @ NovaGaïa
This is a simple plugin for add a third state to checkbox list.
Checklist Reset
4 years ago by Luke Hansford
Add a command to reset the state of any checklists in a document in Obsidian
Order List
4 years ago by Henry Gustafson
Task Marker
4 years ago by wenlzhang
An Obsidian plugin to change task status and append text with hotkeys and right-click context menu.
Pending notes
4 years ago by Ulises Santana
Obsidian plugin for searching links without notes in your vault.
Double Colon Conceal
4 years ago by Michal Srch
Obsidian plugin to display double colon (i.e. Dataview inline fields) as a single colon for more natural reading experience.
Habit Calendar
4 years ago by Hedonihilist
Monthly Habit Calendar for DataviewJS. This plugin helps you render a calendar inside DataviewJS code block, showing your habit status within a month.
Tasks Calendar Wrapper
4 years ago by zhuwenq
This plugin currently provides a timeline view to display your tasks from your obsidian valut, with customizable filters and renderring options.
Brainframe
4 years ago by pedersen
Prioritize
4 years ago by EloiMusk
Obsidian Plugin, to prioritize stuff in Obsidian
Meld Build
4 years ago by meld-cp
Write and execute (sandboxed) JavaScript to render templates, query DataView and create dynamic notes.
OZ Calendar
4 years ago by Ozan Tellioglu
Obsidian plugin to display notes on a calendar based on YAML frontmatter or file names
Dynamic Timetable
3 years ago by L7Cy
Calculate the estimated completion time from the estimated task time and dynamically create a timetable.
Pivotal Tracker Integration
3 years ago by jondeates
Custom State for Task List
3 years ago by Okami Wong
A plugin for Obsidian to define your own states for task items.
TodoTxt
3 years ago by Mark Grimes
Obsidian plugin to manage todotxt files
HackerOne
3 years ago by neolex
A plugin to get our hackerone reports data into obsidian
Time Ruler
3 years ago by Joshua Tazman Reinier
A drag-and-drop time ruler combining the best of a task list and a calendar view (integrates with Tasks, Full Calendar, and Dataview).
Due When
3 years ago by Andy Baxter
An Obsidian plugin which gives shortcuts to insert set due dates
Bulk Exporter
3 years ago by symunona
Bulk export Markdown filtered, renamed and sorted by front matter metadata into a new structure.
Link Tree
3 years ago by Joshua Tazman Reinier
A sidebar foldable list of Obsidian link hierarchies.
ICS
3 years ago by muness
Generate Daily Planner from one or more ical feeds
GTD No Next Step
3 years ago by Tobias Davis
Obsidian plugin for GTD workflow, badge projects with no next step.
Uncheck All
3 years ago by Shahar Har-Shuv
Obsidian plugin to uncheck all checkboxes in a file with one action
moviegrabber
3 years ago by Leon Holtmeier
obsidian.md plugin to grab data from public movie Databases and make them into a note that can be used with dataview querries
TODO Wrangler
3 years ago by Jeel Shah
An obsidian plugin to wrangle your Todos and put them in their place.
Lunar Calendar
3 years ago by OSmile
obsidian插件,一个支持农历的日历插件。
Homework Manager
3 years ago by Kadison McLellan
An Obsidian plugin that keeps track of homework through a to-do list.
MagicCalendar
3 years ago by Vaccarini Lorenzo
An obsidian plugin that exploit a natural language processing engine to find potential events and sync them with iCalendar
Timeline View
3 years ago by b.camphart
Obsidian plugin for viewing your notes linearly based on a given property
Run
3 years ago by Hananoshika Yomaru
Generate markdown from dataview query and javascript.
iCal
3 years ago by Andrew Brereton
This is a plugin for Obsidian that searches your vault for tasks that contain dates, and generates a calendar in iCal format that can be imported into your preferred calendar application.
Feeds
3 years ago by LukeMT, pashashocky, madx
Magic feeds dataview query for obsidian
Timeline Schedule
3 years ago by Evan Bonsignori
Inline timelines generated from human-readable time strings, e.g. 'Walk dog (30min)' in a ```schedule codeblock.
Single File Daily Notes
3 years ago by Pranav Mangal
An Obsidian plugin to create and manage daily notes in a single file
Markline
3 years ago by 闲耘
Markline: Markdown timeline view in Obsidian.
Reason
3 years ago by Joshua Pham
Digest your Obsidian notes
Task list
3 years ago by Ted Marozzi
A simple obsidian plugin enabling better task management via lists.
MemoryLane
3 years ago by BangCa
Relive and celebrate your life's milestones on a personal, interactive timeline. A nostalgic journey through your history with anniversary reminders and cherished memories.
Track-a-Lot
3 years ago by Iulian Onofrei
This is a tracker plugin for Obsidian
Ego Rock
3 years ago by Ashton Eby
An obsidian plugin that implements a basic taskwarrior UI for listing and modifying tasks.
Date Inserter
3 years ago by namikaze-40p
An Obsidian plugin that lets you insert a date at the cursor position using a calendar.
Pomodoro Planner
3 years ago by Onur Nesvat
View Count
3 years ago by Trey Wallis
Add view count tracking to your Obsidian vault
Calendarium
3 years ago by Jeremy Valentine
The ultimate Obsidian plugin for crafting mind-bending fantasy and sci-fi calendars
Things3 Today
3 years ago by wudanyang6
Grind Manager
3 years ago by dromse
Gamify your task management with rewards system, craft your tasks by tags.
Amazing Marvin Integration
3 years ago by Cloud Atlas
Interoperability between Obsidian and Amazing Marvin
Dust Calendar
3 years ago by 纳米级尘埃
obsidian 日历插件
Personal OS
3 years ago by A.Buot
Calendar Event Sync
2 years ago by Stephen Dolan
Set the title of your note to the current event
Checkbox Sounds
2 years ago by yasd251
Adds a nice completion sound for checkboxes when ticked in Obsidian
Timekeep
2 years ago by Jacobtread
Obsidian task time tracking
Focus Tracker
2 years ago by Jeet Sukumaran
Checkbox Time Tracker
2 years ago by UD
Checkbox Time Tracker for Obsidian
Task List Kanban
2 years ago by Chris Kerr
doing
2 years ago by rooyca
What was I doing?
Dataview Serializer
2 years ago by Sébastien Dubois
Obsidian plugin that gives you the power of Dataview, but generates Markdown, making it compatible with Obsidian Publish, and making the links appear on the Graph.
Dataview Publisher
2 years ago by UD
Output markdown from your Dataview queries and keep them up to date. You can also be able to publish them.
Datepicker
2 years ago by Mostafa Mohamed
Datepicker widget for Obsidian.
Vikunja Sync
2 years ago by Peter Heiss
Manage your tasks in vikunja.
Chinese Calendar
2 years ago by DevilRoshan
在obsidian中使用的更符合中国习惯的日历插件。
Daily Statistics
2 years ago by yefengr
obsidian daily statistics
Pug Templates
2 years ago by Nicholas Wilcox
An Obsidian plugin that enables the usage of Pug templates.
Diarian
2 years ago by Erika Gozar
All-in-one journaling toolkit.
Morgen Tasks
2 years ago by Morgen AG
Calendar
6 years ago by Liam Cain
Simple calendar widget for Obsidian.
Dataview
6 years ago by Michael Brenan
A data index and query language over Markdown files, for https://obsidian.md/.
Kanban
5 years ago by mgmeyers
Create markdown-backed Kanban boards in Obsidian.
Org Mode
5 years ago by ryanpcmcquen
Add Org Mode support to Obsidian.
Tasks
5 years ago by Clare Macrae and Ilyas Landikov (created by Martin Schenck)
Task management for the Obsidian knowledge base.
Charts View
5 years ago by caronchen
Data visualization solution in Obsidian, support plots and graphs.
MetaEdit
5 years ago by Christian B. B. Houmann
MetaEdit for Obsidian
Amazing Marvin
5 years ago by Shirayuki Nekomata
Simple plugin for Amazing Marvin
Timeline
5 years ago by George Butco
Obisdian.md plugin for creating timelines
Random To-Do
5 years ago by NatiAris
Pick a random todo item or a file with todo items
Trello
5 years ago by Nathonius
An Obsidian Plugin that connects Trello cards to Obsidian notes.
Jump-to-Date
5 years ago by TfTHacker
Jump to a date via a convenient popup form. This plugin is a part of the Obsidian42 family of Obsidian plugins.
Carry-Forward
5 years ago by Jacob Levernier
An Obsidian Notes plugin for generating and copying block IDs, and copying lines with a link to the copied line
Archiver
5 years ago by ivan-lednev
Archive completed tasks in your Obsidian vault (plus other org-mode-like features)
Itinerary
5 years ago by Adam Coddington
Make planning your trip or event easier by rendering a calendar from event information found in your notes.
Habitica Sync
5 years ago by Leoh and Ran
This is a under-development Obsidian Plugin for Habitica
Flow
2 years ago by Ben Phillips
Implements key processes in David Allen's Getting Things Done (GTD) methodology
Another Simple Todoist Sync
2 years ago by eudennis
Obsidian.md plugin to integrate with Todoist app.
MOC Link Helper
2 years ago by Bogdan Codreanu
This obsidian plugins allows you to quickly see which notes you need to include in your MOC.
Daily notes calendar
2 years ago by bartkessels
Quickly navigate your vault using a calendar view, this plugin allows you to create and navigate to periodic notes and notes that are created on a specific date.
Markdown Timeline
2 years ago by Jiaheng Zhang
An Obsidian plugin to record the events in a Flashback timeline
Simple Todo
2 years ago by elliotxx
A minimalist text-based todo manager (Text-Based GTD) for efficient task management in Obsidian.
Chronos Timeline
2 years ago by Claire Froelich
Render interactive timelines in your Obsidian notes from simple Markdown.
Heatmap Tracker
2 years ago by Maksim Rubanau
A customizable heatmap tracker plugin for Obsidian to visualize daily data trends with intuitive navigation and flexible settings.
Easy Timeline
2 years ago by Romeliun
The Easy Timeline plugin for Obsidian allows you to create timelines easily.
Recent Notes
2 years ago by Kamil Rudnicki
Recent Notes Plugin for Obsidian
Goal Tracker
2 years ago by Ben Rotholtz
Kikijiki Habit Tracker
2 years ago by KIKIJIKI
Kikijiki Habit Tracker Plugin for Obsidian
Dataview Autocompletion
2 years ago by Daniel Bauer
Every Day Calendar
2 years ago by QuBe
Obsidian plugin to create calendars inspired by Simone Giertz's Every Day Calendar
Daily Routine
2 years ago by sechan100
new version of daily-routine obsidian plugin
Asana
2 years ago by Ryan Bantz
Obsidan plugin that creates tasks in Asana for highlighted text or the current line
Content Cards
2 years ago by leo
Insert content cards in Markdown, such as timeline, highlightblock, target card, book information card, music information card, movie information card, photoes ablum, business card, content subfield, countdown, SWOT,BCG.
Tier List
2 years ago by Mox Alehin
Obsidian plugin for visual ranking and organizing content into customizable Tier Lists.
CSV All-in-One
2 years ago by hihangeol
Outlook Meeting Notes
2 years ago by David Ingerslev
An Obsidian plugin to create meeting notes from Microsoft Outlook .msg files
Kanban Status Updater
2 years ago by Ankit Kapur
Obsidian plugin that automatically updates the note property when card is moved to a column.
Generate Timeline
2 years ago by Shanshuimei
An obsidian plugin to generate timelines from tags, folders, files or metadata automatically. 根据标签,文件夹,文件或者属性自动生成时间轴的插件。
ProgressTracker
a year ago by Van Nam
A plugin that helps you track progress and manage tasks in your notes.
DataCards
a year ago by Sophokles187
Obsidian Plugin that transforms dataview tables into visually appealing and customizable card layouts.
MemoChron
a year ago by Michalis Efstratiadis
Calendar integration and note creation with support for public iCalendar URLs.
Vertical Timeline List
a year ago by Jalad
Utilizes task lists to create a timeline... or something like a timeline.
Virtual Footer
a year ago by Signynt
Display markdown text (including dataview queries or Bases) at the bottom, top or in the sidebar for all notes which match a specified rule, without modifying them (sort of like a dynamic template).
Inboxer
a year ago by Eoin Hurrell
Obsidian plugin to add an inbox to notes
Markwhen File Sync
a year ago by rouvenjahnke
Synchronize properties from your Obsidian notes with a Markwhen timeline file.
Timelive
a year ago by aNNiMON
Turn a list of dates into a timeline
Slash snippets
a year ago by echo-saurav
Insert snippet of text with slash command
Markdown Calendar Generator
a year ago by Zach Russell
An intentionally simple obsidian markdown table calendar generator
Timeline Canvas Creator
a year ago by chris-codes1
Quickly create timeline structured canvases in Obsidian.
Send to Canvas
a year ago by wenlzhang
An Obsidian plugin that allows you to send tasks, blocks, and notes to Canvas files as plain text, links, and embeds.
Storyteller Suite
a year ago by Maws
Yandex Tracker Issue
a year ago by Pavel Sokolov
Move Cursor On Startup
a year ago by Jared Kelnhofer
Obsidian plugin to move the cursor to the right and back to the left when starting up. Why? To keep DataView expressions from not running on the first load of, say, your Home file.
Tasks Map
a year ago by NicoKNL
A graph view of your tasks.
Life in Weeks Calendar
a year ago by Jeff Szuc
Plugin for the Obsidian markdown editor. Displays a calendar of your life in weeks with weekly Periodic Notes plugin integration. Includes options for the traditional Memento Mori/Stoic style calendar, as well as a Gregorian calendar accurate version.
TikToker
7 months ago by ameyxd
A Tiktok parser and saver for Obsidian
Kanban Bases View
7 months ago by I. Welch Canavan
A kanban-style drag-and-drop custom view for Obsidian Bases that allows you to organize your notes into columns based on any property.
Calendar Bases
7 months ago by Edrick Leong
Synaptic View
7 months ago by Yongmini
Obsidian Plugin : Synaptic View that unifies your dashboards, hub notes, quick-entry notes, periodic notes, web shortcuts, and calendar navigation—enable it as the default new-tab experience or summon it with a command.
Simplest Todo
5 months ago by kintolayli
Yori Task
5 months ago by yorigo77
task manager, week planner, year planner
Project Manager
5 months ago by stepankropachev
Project management natively in your Obsidian vault. Table, Gantt, and Kanban views with subtasks, dependencies, time tracking, and custom fields — all stored as plain Markdown. No external services.
Breadcrumbs
5 months ago by skepticmystic
Add typed-links to your Obsidian notes
Task Collector
5 months ago by ebullient
Manage tasks and logs within an Obsidian note.
Day Planner OG
5 months ago by ebullient
An Obsidian plugin for day planning and managing pomodoro timers from a markdown task list.
Timelines (Revamped)
5 months ago by seanlowe
Create a timeline view of all notes with the specified combination of tags
April Automatic Timelines
4 months ago by april-gras
Simple timeline generator plugin for story tellers using obsidian
Full Calendar Remastered
4 months ago by obsidian-full-calendar-remastered
Keep events and manage your calendar alongside all your other notes in your Obsidian Vault.
TaskNotes
4 months ago by callumalpass
Task and time-tracking management with calendar integration for Obsidian
Apex Dashboard
4 months ago by PandoraReads
Stop switching between Obsidian notes. One page. Everything you need. Memo your thoughts, crush your todos, track your projects — and make it look incredible doing it.
Live Life Recording
3 months ago by goryugocast
Operate tasks directly in Markdown with start/finish records, routine insertion, and a lightweight daily summary for Obsidian.
Notion Bases
3 months ago by bgarciamoura
Turn any folder into a Notion-style database — 7 views, 17 column types, formulas, relations, rollups, and subtasks. All stored in plain Markdown frontmatter.
Note Toolbar
3 months ago by chrisgurney
Flexible, context-aware toolbars for your notes in Obsidian.
StoryLine
3 months ago by Jan Sandström
StoryLine transforms your Obsidian vault into a complete book planning and writing tool. Organize scenes, build characters, manage locations, track plotlines, and monitor your progress, all inside Obsidian.
ReverySky Map
3 months ago by MoonSkorch Studio
Obsidian plugin rendering the vault graph as an interactive 3D star map with Unity WebGL
GTD Tasks
3 months ago by unpreditable
Sheet Plus
3 months ago by ljcoder
obsidian spreadsheets solutions
Notebook Navigator
3 months ago by Johan Sanneblad
A better file browser and calendar inspired by Apple Notes, Bear, Evernote and Day One.
Day Planner
3 months ago by ivan-lednev
An Obsidian plugin for day planning with a clean UI and a simple task format
Yuhanbo Task
2 months ago by yuhanbo
Obsidian 智能任务管理与番茄时钟插件,集成 AI 智能拆分的任务管理系统,配备专业番茄时钟,提升工作效率。
Smart Chat
2 months ago by 🌴 Brian
Power Bases
2 months ago by Power Plugins
Add board, calendar, timeline, chart, gallery, and table views to Bases, with inline editing, colors, rollups, field types, formulas, and CSV import.
Prisma Calendar
2 months ago by Matej Vavro Productivity
Prisma is not just a calendar plugin. It turns any note with a date into a flexible planning system inside Obsidian. There are no rigid schemas or predefined structures — just your data, your rules, fully under your control. It lets you see your entire vault through time.
Journal View
2 months ago by RUverse
A Journal View for Obsidian
BeautyTasks
2 months ago by Avni Bilgin
Todoist-style task & project manager for Obsidian — one markdown note per task, native UI, no plugin dependencies.
TODOseq
2 months ago by Stephen Cross
TODOseq ("to-do-seek") is a lightweight, keyword-based task tracker for Obsidian
Operon
2 months ago by Hasan Yılmaz
Task management system for humans and agents in Obsidian.
Xboard
2 months ago by wrbin
一款易上手、已美化、更适合AI工作流的obsidian工作台
TaskChute Plus
2 months ago by hiroyaiizuka
Execute Taskchute for Obsidian
Gantt this
2 months ago by Altarok
Obsidian plugin showing multiple TTRPG calendars at once in one gantt chart.