Query and sync Granola meetings to Obsidian vault. Use when user mentions Granola, meeting transcripts, or wants to sync meeting notes. Reads from local cache - no API needed.
Query and sync Granola AI meeting notes to Obsidian vault.
Granola stores everything locally at ~/Library/Application Support/Granola/cache-v3.json:
No API calls needed - reads directly from local cache.
# List all meetings
python3 .claude/skills/granola/scripts/granola.py list
# Get specific meeting with transcript
python3 .claude/skills/granola/scripts/granola.py get <id>
# Sync new meetings to vault
python3 .claude/skills/granola/scripts/granola.py sync
# Sync specific meeting
python3 .claude/skills/granola/scripts/granola.py sync --id <id>
List all Granola meetings with sync status.
python3 .claude/skills/granola/scripts/granola.py list
python3 .claude/skills/granola/scripts/granola.py list --limit 5
Output:
[✓] 2026-01-09 Team Sync - Weekly
ID: abc123...
Transcript: 450 segments, ~86 min
[ ] 2026-01-10 Team Standup
ID: def456...
Transcript: 120 segments, ~15 min
[✓] = already synced to vault[ ] = not synced yetView full meeting details and transcript.
python3 .claude/skills/granola/scripts/granola.py get <id>
python3 .claude/skills/granola/scripts/granola.py get <id> --no-transcript
Sync meetings to Meetings/ as structured Markdown.
# Sync new meetings only
python3 .claude/skills/granola/scripts/granola.py sync
# Sync specific meeting
python3 .claude/skills/granola/scripts/granola.py sync --id <id>
# Re-sync all (overwrites existing)
python3 .claude/skills/granola/scripts/granola.py sync --all
Synced meetings are saved to Meetings/ with this structure:
---