R336 downloadsTurn any folder into a Timeline/Gantt view. 把任意目录变成时间轴/甘特图。
Turn any folder into a timeline

Folder Mode — treat a folder as a timeline:
start / end fields to any note's frontmatter to put it on the axis.Base Mode — embed a timeline inside any Obsidian Base:
.base file → Layout → + Add View → Timeline.A view config file is any regular Markdown file. When its frontmatter contains timeline: true, it is recognized as a view config file. You can edit and save it through the in-view form, or edit the file directly.
---
timeline: true
folder: ""
recursive: false
startField: "start"
endField: "end"
showFileName: true
displayMode: "month"
sortBy: "start"
sortOrder: "asc"
---
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
timeline |
boolean | yes | - | The file is treated as a view config file only when this is true. |
folder |
string | yes | - | Folder to display, a path relative to the vault root; empty string means the vault root. |
recursive |
boolean | no | false |
Whether to scan all subfolders under folder recursively. |
startField |
string | yes | - | Start-time field name; read from each file's frontmatter. |
endField |
string | yes | - | End-time field name. |
showFileName |
boolean | no | true |
Whether to show the file name on the bar. |
displayMode |
"year" | "month" | "day" |
no | "month" |
Timeline scale granularity. |
sortBy |
"created" | "modified" | "start" | "end" |
no | "start" |
Sort key for bars (top to bottom). |
sortOrder |
"asc" | "desc" |
no | "asc" |
Sort direction: ascending / descending. |
Time value formats: common Obsidian frontmatter formats are supported, such as 2026-08-06, 2026-08-06T20:30:00, 2026-08-06 20:30, etc. A note with a start but no end renders as a single-point event (a circular marker); a start later than the end is treated as an invalid item and summarized in the view.
<your-vault>/.obsidian/plugins/pnpm install # install dependencies (package manager is pinned to pnpm)
pnpm dev # build in watch mode
pnpm build # production build, outputs main.js
pnpm lint # run ESLint
MIT