Granola → Obsidian
Write Granola meeting notes into the Obsidian Work vault as properly formatted markdown.
Paths
- Vault:
~/Library/CloudStorage/OneDrive-example-corp/Work - Destination:
01-Active/Meetings/(chosen by user 2026-07-07; do not relocate without asking) - Vault rules: read the vault’s
CLAUDE.mdbefore writing — YAML frontmatter, kebab-case filenames, lowercase hyphenated tags,[[wikilinks]], never touch.obsidian/
Prerequisites
Granola MCP is registered at user scope (https://mcp.granola.ai/mcp, HTTP transport).
- Load tools first:
ToolSearchquery+granola(expectlist_meetings,get_meetings,query_granola_meetings,get_meeting_transcript,get_account_info). - If tools are missing or calls return auth errors: tell the user to run
/mcp→ select granola → authenticate (browser OAuth, one-time). Do not retry until they confirm. - Free-plan limits: last 30 days only;
get_meeting_transcriptand folders are paid-plan-only. Only fetch transcripts when the user explicitly asks.
Workflow
- Identify meeting(s). Default = today’s meetings. Otherwise match the user’s description (title/date/attendee) via
list_meetings. Ambiguous match → ask, don’t guess. - Fetch content via
get_meetings(enhanced + private notes). Never invent content that isn’t in the Granola notes. - Dedup check. Grep
01-Active/Meetings/frontmatter for the meeting’sgranola-idbefore writing. Exists → update that file (append/refresh sections), never create a duplicate. - Write the note using the template below. Filename:
YYYY-MM-DD-<kebab-title>.md. - Attendee links. Wikilink an attendee only if a matching
.mdnote already exists in the vault (grep first). Otherwise plain text — never create person notes from this skill. - Report. List file paths written, one-line summary each. Batch runs use a ledger:
[X/N written, Y updated, Z skipped].
Note template
Mirrors the vault’s 03-Knowledge/Templates/Meeting.md. Map Granola’s sections onto these headings; omit sections Granola has nothing for (keep Action Items even if empty).
---
title: "<Meeting Title>"
date: YYYY-MM-DD
attendees: [Name One, Name Two]
tags: [type/meeting, status/active]
granola-id: <granola meeting id>
source: granola
---
# <Meeting Title> — YYYY-MM-DD
**Attendees:** Name One, Name Two
## Agenda
## Discussion
## Decisions
## Action Items
- [ ]
## Next Steps
## Links
- [[related-note]]
Guardrails
- Notes land ONLY under
01-Active/Meetings/. New folder anywhere else = ask first (vault rule). - Private notes from Granola go in the note body like any other content — but never write secrets/tokens/passwords that appear in transcripts (redact per global rules).
- Don’t modify unrelated vault notes; this skill writes/updates meeting notes only.