Meeting notes in Obsidian.
A template for agenda, decisions and next steps, one Base for upcoming meetings and follow-ups you still owe, client pages that list their meetings, and every open action item on one page. No plugins.
What you’ll build
Meeting notes are only useful if the next steps happen. This setup keeps them in view:
- A meeting template with agenda, notes, decisions and next steps.
- A Meetings base: upcoming meetings, past meetings whose follow-up you haven’t sent, and the last 30 days.
- Client pages that list their own meetings.
- Every open action item from every meeting, on one page.
It’s how meetings work in our Business OS vault. You need Obsidian 1.9 or later with the Bases and Templates core plugins on. Everything below was tested in Obsidian 1.14 with no community plugins.
Step 1: A meeting template
Make a folder called Meetings, and save this as Templates/Meeting.md (with the sample text taken out):
---
type: meeting
meeting_on: 2026-10-14
kind: Check-in
client: "[[Acme Dental]]"
followed_up: false
---
## Agenda
- Review the October invoices
- Plan the new-patient form
## Notes
## Decisions
-
## Next steps
- [ ] Dana: send the form draft by Friday
- [ ] Me: fix the invoice template- Name each note with the date first, such as “2026-10-14 Acme check-in”, so they sort in order.
clientis a link to the client’s note, which makes the client pages in step 3 work.- Next steps are checkboxes with a name in front, so it’s clear who does what.
followed_upgets ticked when you’ve sent the recap.
To use it, make a new note in Meetings and run Templates: Insert template from the command palette.
Step 2: The Meetings base
Make a file called Meetings.base and paste this in:
filters:
and:
- type == "meeting"
- '!file.inFolder("Templates")'
properties:
file.name:
displayName: Meeting
note.meeting_on:
displayName: Date
note.followed_up:
displayName: Follow-up sent
views:
- type: table
name: Upcoming
filters:
and:
- if(meeting_on, date(meeting_on) >= today(), false)
order:
- file.name
- meeting_on
- kind
- client
sort:
- property: meeting_on
direction: ASC
- type: table
name: Follow-up not sent
filters:
and:
- if(meeting_on, date(meeting_on) < today(), false)
- '!followed_up'
order:
- file.name
- meeting_on
- client
sort:
- property: meeting_on
direction: DESC
- type: table
name: Last 30 days
filters:
and:
- if(meeting_on, date(meeting_on) < today() && (today() - date(meeting_on)).days.round(0) <= 30, false)
order:
- file.name
- meeting_on
- kind
- client
sort:
- property: meeting_on
direction: DESC- Upcoming lists meetings from today on, soonest first.
- Follow-up not sent lists past meetings where
followed_upisn’t ticked. A note with nofollowed_upproperty won’t show up at all, so keepfollowed_up: falsein the template. - Last 30 days is for “what did we decide?”
.round(0)keeps a daylight-saving change from shifting the cutoff.
Step 3: Client pages that list their meetings
Add this view under views: in the same file:
- type: table
name: This client
filters:
and:
- file.hasLink(this.file)
order:
- file.name
- meeting_on
- kind
sort:
- property: meeting_on
direction: DESCThen put ![[Meetings.base#This client]] in each client’s note. file.hasLink(this.file) means “meetings that link to this page”, so one line lists the right meetings on every client page.
Step 4: Every open action item, on one page
Bases list notes, not the checkboxes inside them. For the action items, use an embedded search. On your Home page:
## Upcoming meetings
![[Meetings.base#Upcoming]]
## Follow-ups to send
![[Meetings.base#Follow-up not sent]]
## Open action items
```query
task-todo:"" path:Meetings
```task-todo:"" finds every unticked checkbox (the empty quotes mean “any text”), and path:Meetings keeps it to your meeting notes. Leave the quotes in: without them the search finds nothing. Click a result to jump to the meeting; tick it there when it’s done.
A 5-minute routine after each meeting
- Write the decisions while you remember them, even as one line each.
- Turn every next step into a checkbox with a name in front.
- Send the recap, then tick
followed_up. - If a next step is yours, put a date in it, such as “by Friday”.
Mistakes that cost us time
- A meeting with no
meeting_ondate. It won’t show up in any list. Use the 2026-10-14 format. - Typing the client as plain text. The client page needs a link:
"[[Acme Dental]]", with the quotes. - Action items as plain bullets. The search only finds checkboxes (
- [ ]). - The template showing up as a meeting. The
!file.inFolder("Templates")filter fixes it.
Keep going.
How to Build a Simple CRM in Obsidian (No Plugins)
Track clients, follow-ups and invoices with one note per client and a single Base. Copy-paste code, no plugins.
Read the guide Bases recipesObsidian Bases Examples: 10 Copy-Paste Recipes
Ten tested recipes: due this week, days since, late invoices with totals, weighted pipeline, renewals, per-note embeds and the gotchas.
Read the guide Small office ITSmall Office IT Documentation in Obsidian: What to Record
What a small office should write down about its IT, what never to store, and a simple setup in Obsidian.
Read the guide Building with AIA Spec Template for AI Coding Tools (Claude Code, Cursor)
A one-page spec template for Claude Code, Cursor and other AI coding tools, a plan-first prompt, and where Obsidian fits.
Read the guide StudentsObsidian for Students: Track Assignments, Exams and Grades
Assignments with due dates, an overdue list and exam countdowns, plus class pages that list their own work. Copy-paste code, no plugins.
Read the guide Daily planningA Calm Daily Planner in Obsidian: Tasks by Energy and Time
A brain-dump inbox, tasks sorted by energy and minutes, up to three focus tasks, and bills two weeks ahead, on one Today page.
Read the guide Game mastersObsidian for Game Masters: Run a Tabletop RPG Campaign
Session prep in 30 minutes, secrets and clues until they’re revealed, NPCs listed on their places, and faction clocks. Any system.
Read the guide Real estate agentsReal Estate CRM in Obsidian: Follow-ups and Contract Deadlines
Follow-ups due, past clients to check on, and every contract deadline in the next seven days, in a private vault. No plugins.
Read the guide HabitsA Habit Tracker in Obsidian with Bases (No Plugins)
Habit checkboxes in your daily note, and one Base that counts each habit over 7 and 30 days. No streaks to break, no plugins.
Read the guide ReadingA Book Tracker in Obsidian: Reading List, Shelf and Yearly Totals
One note per book: reading now, up next, finished this year with pages and ratings, a shelf board, and author pages. No plugins.
Read the guide ProjectsA Project Tracker in Obsidian: Board, Deadlines and Health
One note per project, a health column that flags overdue and due-soon work, a board in your column order, and client pages that list their projects.
Read the guide