No description
Find a file
mmattia09 e43a2cdad0 Fix toolbar search returning no results
Bases matches the search query against the view's visible properties
(config.getOrder()); with none configured (or only non-text ones like
file.backlinks) every entry was filtered out. Default the order to
file.name when empty and document the behavior.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-17 21:59:59 +02:00
examples Sidebar, collapsible groups, priority sort, more zoom levels 2026-07-16 16:51:02 +02:00
src Fix toolbar search returning no results 2026-07-17 21:59:59 +02:00
.gitignore Initial release: Notion-style timeline view for Obsidian Bases 2026-07-16 14:17:17 +02:00
esbuild.config.mjs Address plugin review warnings 2026-07-17 21:43:16 +02:00
LICENSE Prepare for community plugin submission as Bases Timeline 2026-07-17 11:11:06 +02:00
manifest.json Fix toolbar search returning no results 2026-07-17 21:59:59 +02:00
package-lock.json Address plugin review warnings 2026-07-17 21:43:16 +02:00
package.json Fix toolbar search returning no results 2026-07-17 21:59:59 +02:00
README.md Fix toolbar search returning no results 2026-07-17 21:59:59 +02:00
styles.css Skip identical re-renders; window.requestAnimationFrame; drop :has selector 2026-07-17 21:43:17 +02:00
tsconfig.json Initial release: Notion-style timeline view for Obsidian Bases 2026-07-16 14:17:17 +02:00
versions.json Fix toolbar search returning no results 2026-07-17 21:59:59 +02:00

Bases Timeline

An Obsidian plugin that adds a Notion-style Timeline view to Bases, designed to manage projects as notes with properties.

How it works

Each project is a note (for example in a projects/ folder) with these frontmatter properties:

---
status: cooking      # inbox | not started | cooking | on hold | clean | archive
priority: high       # urgent | high | medium | low
tags: []
start: 2026-07-06
end: 2026-07-20
---

The project title is the file name.

Timeline view

The view registers alongside the native Bases views (Table, Cards, List) under the name Timeline:

  • Notion-style side panel listing projects, collapsible with an animated transition (on mobile it is the default view);
  • horizontal bars from start date to end date, with a colored priority pill (urgent = red, high = orange, medium = yellow, low = gray); titles overflow past the bar when it is too narrow;
  • red "today" indicator with a Today button to re-center, and a zoom selector in the header;
  • drag a bar to move a project in time, drag its edges to change start or end — dates are written back to the frontmatter, with date labels fading in at the bar edges (also on hover);
  • hover the row of an unscheduled project to preview a bar under the cursor and click to schedule it (default length depends on the zoom level);
  • arrow chips appear at the viewport edges for bars scrolled out of view: hover shows the dates, click scrolls back to the bar;
  • click to open the note (Cmd/Ctrl+click in a new tab, Alt/Shift+click in a split), hover for the page preview;
  • zoom levels: Day / Week / 2 weeks / Month / Quarter / Year / 5 years;
  • collapsible groups (with Bases "Group by", e.g. by status), ordered by your workflow and sorted by priority within each group;
  • drag a project from the side panel onto another group header to change its status, and click the priority pill on a bar to pick a new priority;
  • when a note was opened in a side split from the timeline, later clicks open notes as new tabs next to it instead of replacing the view;
  • icons assigned with Iconize (emoji or icon packs) are shown next to project titles;
  • unscheduled projects appear only in the side panel.

The properties used for start, end and priority are configurable per view (defaults: start, end, priority).

Note: the Bases toolbar search matches against the view's visible properties (the "Properties" menu). The view defaults to file.name when none are configured; add more properties there to make them searchable too.

Setup

  1. Enable the Bases core plugin.
  2. Create a .base file (see examples/Progetti.base) or add a Timeline view to an existing Base.
  3. Filter the Base to your projects folder, e.g. file.inFolder("projects").

The plugin also adds a New project command (and a ribbon icon) that creates a note in the projects folder with the frontmatter already set. The folder, property names, default values, and the status order used for grouping are configurable in the plugin settings.

The interface is available in English, Italian, French, German and Spanish, following the Obsidian language.

Installation

Requires Obsidian 1.10.2+.

Manual

  1. Download (or build) main.js, manifest.json and styles.css.
  2. Copy them to <vault>/.obsidian/plugins/bases-timeline/.
  3. Reload Obsidian and enable Bases Timeline in Settings → Community plugins.

Building

npm install
npm run build   # produces main.js
npm run dev     # build in watch mode

Development

  • src/main.ts — view registration, "New project" command, settings.
  • src/timeline-view.ts — the Timeline view (BasesView).
  • src/i18n.ts — UI translations (en, it, fr, de, es).
  • styles.css — styles (uses Obsidian CSS variables, works in light and dark themes).