SystemSculpt
Install free (opens Obsidian's plugin directory in a new tab)

Obsidian Bases: Setup Guide and 5 Real Examples (2026)

Published 10 min read

On this page

Obsidian Bases is a core plugin that shows your notes as a database: a table, cards, a list, a Kanban board or a map, built from each note's properties. You can sort, filter, group and edit the properties right in the view. Nothing is copied into a separate database: the data stays in your Markdown files, and the view itself is a small .base text file.

This guide covers what Bases does, how to set up your first base step by step, and five real bases you can download: a reading list, a project board, a meeting log, a people list and a daily-notes index. Each one was built and opened in Obsidian 1.15.0.

Checked on November 2, 2026 against Obsidian 1.15.0, released that day, and Obsidian Help.

Download all 5 bases (.zip)

What Bases does

A base is a saved query over your vault. It starts with every file, narrows them with filters, and shows the result in one or more views. Each row or card is a file; each column is a property.

  • Filters keep only the notes you want, by tag, folder, property value, link or date.
  • Properties pick the columns, including file details such as name, folder and modified time.
  • Formulas add calculated columns, such as days until a due date.
  • Sort and group order the results and split them into sections.
  • Views save different layouts and filters in the same base, such as "Reading now" and "Finished".
  • Editing a cell writes the new value back to that note's properties.

Bases is free, built into Obsidian, and works on desktop and mobile. You can export any view as CSV or copy it into a spreadsheet.

The five layouts

LayoutWhat it shows
Table (1.9)Rows of files and columns of properties, with summaries such as Average
Cards (1.9)A grid of cards with an optional cover image
List (1.10)A bulleted or numbered list
Map (1.10)Pins on a map; needs the official Maps plugin
Kanban (1.14)Columns by a grouped property; drag a card to change it

The number is the Obsidian version that added the layout.

Obsidian 1.15 lets you drag filters to reorder them, shows when search hides some results ("Showing 10 of 40"), and on phones moves filters into the Display menu.

Set up your first base

Bases needs Obsidian 1.9 or later. The steps below use 1.15. Kanban needs 1.14 or later.

1. Turn on Bases

Open Settings → Core plugins and make sure Bases is turned on.

2. Give your notes properties

A base can only show what your notes record. Add properties at the top of each note:

---
tags:
  - book
author: Cal Newport
status: Finished
rating: 4
finished: 2026-09-20
---

The quickest way to keep properties consistent is a template. Our 10 free Obsidian templates include these properties for books, projects, meetings and people, and the examples below use them.

3. Create the base

Use any of these:

  • Run Bases: Create new base from the command palette. The base is created in the same folder as the note you have open.
  • Right-click a folder in the file explorer and select New base.
  • Select Create new base in the left ribbon.

A base with no filters shows every file in your vault.

4. Filter, choose properties and sort

  1. Open Filter and add a filter that keeps notes tagged book. Filters under All views apply to every view; filters under This view apply to the open view only.
  2. Open Properties and tick the columns you want, such as author, status and rating. Drag them to reorder.
  3. Open Sort, select Add sort and pick a property, such as finished, newest first.
  4. Optionally open Group and group by a property, such as status.

Click the code button in the Filter menu to see or type the filter as text. Anything you do in the toolbar is saved to the .base file.

5. Add views and embed the base

Click the view name in the top left and select Add view to add another layout with its own filters and sort. The first view in the list opens by default.

To show a base inside a note, embed it like any file: ![[Reading list.base]], or ![[Reading list.base#Finished]] for a specific view. You can also write the whole base inside a note in a base code block, as the person example below does.

5 Obsidian Bases examples

Each example is a complete .base file. Download it into your vault, or create a new base, open it as text and paste the YAML. They expect notes made from our templates, and they all skip your Templates folder so the templates themselves don't show up as rows.

1. Reading list with a cover shelf

Three views of your book notes: what you are reading now, a shelf of covers, and finished books with their average rating. cover can be an image in your vault, an image URL or a hex colour.

An Obsidian Bases cards view showing four books with coloured covers, authors and ratings

filters:
  and:
    - file.hasTag("book")
    - '!file.inFolder("Templates")'
properties:
  file.name:
    displayName: Title
  note.author:
    displayName: Author
  note.rating:
    displayName: Rating
  note.started:
    displayName: Started
  note.finished:
    displayName: Finished
views:
  - type: table
    name: Reading now
    filters:
      and:
        - 'status == "Reading"'
    order:
      - file.name
      - author
      - started
  - type: cards
    name: Shelf
    order:
      - file.name
      - author
      - rating
    image: note.cover
  - type: table
    name: Finished
    filters:
      and:
        - 'status == "Finished"'
    order:
      - file.name
      - author
      - rating
      - finished
    sort:
      - property: finished
        direction: DESC
    summaries:
      rating: Average

Download reading-list.base

2. Project board (Kanban)

A board with one column per status, plus a table of open projects due in the next 14 days with a Days left formula. Drag a card from Planned to In progress and Obsidian updates that note's status. The New button under a column creates a note with that column's status.

An Obsidian Bases Kanban view with Planned, In progress and Done columns of project cards

filters:
  and:
    - file.hasTag("project")
    - '!file.inFolder("Templates")'
formulas:
  days_left: 'if(due, (date(due) - today()).days.round(), "")'
properties:
  file.name:
    displayName: Project
  note.status:
    displayName: Status
  note.due:
    displayName: Due
  note.area:
    displayName: Area
  formula.days_left:
    displayName: Days left
views:
  - type: kanban
    name: Board
    groupBy:
      property: note.status
      direction: ASC
    groupOrder:
      - Planned
      - In progress
      - Done
    order:
      - file.name
      - due
      - area
  - type: table
    name: Due in 14 days
    filters:
      and:
        - 'status != "Done"'
        - 'due <= today() + "14d"'
    order:
      - file.name
      - status
      - due
      - formula.days_left
    sort:
      - property: due
        direction: ASC

groupOrder fixes the column order. Without it, columns follow the sort direction of the grouped property. Subtracting two dates gives a duration, so the formula reads .days and rounds it; without .round() a daylight-saving change can show 5.04 days.

Download projects.base

3. Meeting log

Every meeting note, newest first, plus a view of the last 30 days grouped by project.

An Obsidian Bases table of meetings from the last 30 days, grouped by project

filters:
  and:
    - file.hasTag("meeting")
    - '!file.inFolder("Templates")'
properties:
  file.name:
    displayName: Meeting
  note.date:
    displayName: Date
  note.attendees:
    displayName: Attendees
  note.project:
    displayName: Project
views:
  - type: table
    name: All meetings
    order:
      - file.name
      - date
      - attendees
      - project
    sort:
      - property: date
        direction: DESC
  - type: table
    name: Last 30 days
    filters:
      and:
        - 'date >= today() - "30d"'
    groupBy:
      property: note.project
      direction: ASC
    order:
      - file.name
      - date
      - attendees
    sort:
      - property: date
        direction: DESC

Download meetings.base

4. People and who to catch up with

A simple contact list with a Days since contact formula, and a Catch up view of everyone you haven't spoken to in 90 days.

An Obsidian Bases table of people with organization, role, last contact date and days since contact

filters:
  and:
    - file.hasTag("person")
    - '!file.inFolder("Templates")'
formulas:
  days_since_contact: 'if(last_contact, (today() - date(last_contact)).days.round(), "")'
properties:
  file.name:
    displayName: Name
  note.organization:
    displayName: Organization
  note.role:
    displayName: Role
  note.last_contact:
    displayName: Last contact
  formula.days_since_contact:
    displayName: Days since contact
views:
  - type: table
    name: Everyone
    order:
      - file.name
      - organization
      - role
      - last_contact
      - formula.days_since_contact
    sort:
      - property: file.name
        direction: ASC
  - type: table
    name: Catch up
    filters:
      and:
        - 'last_contact < today() - "90d"'
    order:
      - file.name
      - organization
      - last_contact
      - formula.days_since_contact
    sort:
      - property: last_contact
        direction: ASC

The person template goes one step further. Its embedded base uses this, which inside an embed means the note that contains it, so every person note lists the meetings that link to that person:

A person note in Obsidian with an embedded base listing the two meetings that link to it

```base
filters:
  and:
    - file.hasTag("meeting")
    - file.hasLink(this.file)
views:
  - type: table
    name: Meetings
    order:
      - file.name
      - date
    sort:
      - property: date
        direction: DESC
```

Download people.base

5. Daily notes index and recently edited notes

A list of your last 31 daily notes, newest first, and a table of every note you edited in the past week, wherever it lives. This base has no global filter; each view has its own.

An Obsidian Bases list view of daily notes from newest to oldest

properties:
  file.name:
    displayName: Note
  file.folder:
    displayName: Folder
  file.mtime:
    displayName: Modified
views:
  - type: list
    name: Daily notes
    filters:
      and:
        - file.hasTag("daily")
        - '!file.inFolder("Templates")'
    order:
      - file.name
    sort:
      - property: file.name
        direction: DESC
    limit: 31
  - type: table
    name: Edited this week
    filters:
      and:
        - 'file.mtime > now() - "1 week"'
        - 'file.ext == "md"'
        - '!file.inFolder("Templates")'
    order:
      - file.name
      - file.folder
      - file.mtime
    sort:
      - property: file.mtime
        direction: DESC

Download daily-notes.base

Tips that save time

  • Quote filters that start with ! or contain quotes, as in '!file.inFolder("Templates")'. YAML reads a bare ! as something else.
  • Spell values the same way everywhere. In progress and In Progress become two separate Kanban columns. Templates prevent this.
  • Prefer file.links over file.backlinks. Obsidian's help notes that backlinks are slow and don't refresh automatically.
  • Open a base in the right sidebar and this becomes the note open in the main pane, so a filter like file.hasLink(this.file) follows you as you move between notes.

Bases or Dataview?

Dataview is a popular community plugin with its own query language and JavaScript. Its query results are read-only views. Bases is built in, needs no query language for everyday filters, and lets you edit properties in the view. If you already rely on Dataview queries, they keep working; Bases is a good fit for new tables and boards, and for anyone who would rather click than write queries.

Let AI fill the properties

A base is only as good as the properties in your notes. If you have years of notes without them, an AI agent can add them for you.

SystemSculpt is a free Obsidian plugin that puts an AI chat in a side pane. On desktop it can run your own signed-in Claude Code or Codex, with no SystemSculpt account. Attach notes with @ and ask, for example: "Add author, status and rating properties to every note in Books/, using what each note says." Pick Ask mode in the run line (Ask before edits with Claude Code) to approve each change before it is written.

Install the free SystemSculpt plugin from Obsidian's community plugins. Hosted AI, including chat on your phone, uses a SystemSculpt account; eligible new accounts can claim 500 one-time starter credits with no card, and paid plans are $9 a month or $90 a year. Compare plans.

Common questions

Is Obsidian Bases free? Yes. It is a core plugin included with Obsidian, on desktop and mobile.

Where is a base stored? In a .base file in your vault, written in YAML, or in a base code block inside a note. Your data stays in the notes' properties.

Why is my base showing every file? It has no filters yet. Add one, such as a tag or folder, under Filter.

Can I make a Kanban board in Obsidian without a plugin? Yes, since Obsidian 1.14. Add a Kanban view to a base and group it by a property such as status.

Can Bases show a calendar? Not as a built-in layout. The built-in layouts are table, cards, list, Kanban and map; community plugins can add more.

Can I import a Notion database into Bases? Yes. Obsidian's Importer plugin turns Notion databases into bases. See our Obsidian vs Notion guide.

Sources

TopicsObsidianKnowledge ManagementProductivity

Try SystemSculpt inside your vault

SystemSculpt adds first-party AI chat, semantic search, transcription, and document workflows to Obsidian.