Airtable Tabula

approved

by MehulG

Local Airtable-like tables with selects, filters, query, CSV/Excel import, and optional Airtable sync. - This plugin has not been manually reviewed by Obsidian staff.

1 stars87 downloadsUpdated 24d agoMIT

Airtable Tabula

Local Airtable-like tables inside Obsidian — structured grids next to your notes, with optional Airtable.com sync.

Each table is a .tabula file (JSON) opened in a spreadsheet-style grid.

Features

  • Import CSV / Excel — turn a .csv or .xlsx file into a table in one command
  • Field types — text, long text, number, currency, percent, duration, rating, checkbox, date, date & time, URL, email, phone, single/multi select, attachments, auto number, created / last modified
  • Selects — colored tags, searchable dropdowns, create-on-type, option manager
  • Views — search, filter builder + query string, multi-sort, group by, hide fields, column resize/reorder, freeze primary column, row height
  • Optional Airtable sync — link a base/table, then pull or push with a personal access token

Install

From a GitHub release

  1. Download main.js, manifest.json, and styles.css from the latest release
  2. Put them in .obsidian/plugins/airtable-tabula/ in your vault
  3. Enable Airtable Tabula under Settings → Community plugins

Development

npm install
npm run build
ln -s /absolute/path/to/airtable-tabula /path/to/vault/.obsidian/plugins/airtable-tabula

Then enable the plugin and use Create new table or Import CSV / Excel as table from the command palette.

Import CSV / Excel

  1. Command palette → Import CSV / Excel as table
  2. Pick a .csv or .xlsx file from your computer

What happens:

  • The first row becomes column headers
  • Column types are inferred (text, number, date, checkbox, or single select when a column has few distinct values)
  • A new .tabula file is created in your vault and opened

Tip: In Excel or Google Sheets, “Save as CSV” also works if you don’t need a full workbook.

Optional Airtable sync

  1. Create a personal access token with:
    • data.records:read
    • data.records:write
    • schema.bases:read
    • Access to the bases you want to sync
  2. Obsidian → Settings → Airtable Tabula → paste the token
  3. Open a .tabula file → SyncLink Airtable table…
  4. Choose base + table (optionally replace local columns with the Airtable schema)
  5. Pull from Airtable or Push to Airtable

Link metadata lives in the .tabula file. The token stays in plugin settings only. Sync is optional — the plugin works fully offline without it.

Query syntax

status:Done tags:urgent,design name:~ship
PatternMeaning
field:valueequals / is / contains (multi)
field:~valuetext contains
field:>n / field:<nnumber (or date before/after)
field:!valueis not (single select)
field:a,bis any of / contains any
field:emptyis empty

Field names are case-insensitive. Quote names with spaces: "My Field":Done.

Attachments

Attachment cells store vault-relative paths (e.g. Assets/photo.png). Type a path and press Enter.

License

MIT · Maintainer @MehulG

Out of scope

Formulas, linked records, lookups/rollups, Kanban/Calendar/Gallery views. Sync does not auto-create Airtable fields or resolve edit conflicts beyond last pull/push.

For plugin developers

Search results and similarity scores are powered by semantic analysis of your plugin's README. If your plugin isn't appearing for searches you'd expect, try updating your README to clearly describe your plugin's purpose, features, and use cases.