Obsidian Reminders Sync — Development skill for Claude Code
Bidirectional sync between Obsidian daily notes and macOS Reminders via Claude Code hooks.
How to install Obsidian Reminders Sync
This entry records only its repository, not the path inside it, so there is no
exact command to give. Open jordanlyall/obsidian-reminders-sync and copy the folder into
~/.claude/skills/, or the file into ~/.claude/agents/.
What Obsidian Reminders Sync does
Bidirectional sync between Obsidian daily notes and macOS Reminders via Claude Code hooks.
Alternatives in Development
- Obsidian MCP Server — Read, write, search, and surgically edit Obsidian vault notes, tags, and frontmatter via MCP 686 ★
- Agent Bridge — A local bridge for bidirectional collaboration between Claude Code and Codex 312 ★
- Obsidian Decide — Extract decisions from this conversation and log them to the right project notes 277 ★
README
obsidian-reminders-sync
Bidirectional sync between Obsidian daily notes and macOS Reminders.app — built as a Claude Code hook system.
Write a task in Obsidian and it appears in Reminders within seconds. Complete it on your iPhone or Apple Watch and it syncs back to your vault on the next session. Add a task via Siri and it lands in today's daily note automatically.
How It Works
| Direction | Trigger | File |
|---|---|---|
| Obsidian → Reminders | Every Write/Edit in Claude Code | hooks/reminders-task-detector.py |
| Reminders → Obsidian | Every Claude Code session start | hooks/reminders-session-sync.py |
| Reminders → Obsidian (live) | Every 60s (optional daemon) | scripts/reminders-sync-daemon.py |
All three share a single state file (`.claude/state/reminders-state.json`) for dedup and race condition protection.
Task Priority Convention
Tasks must use emoji priority markers in your daily note:
- [ ] 🔴 Urgent thing that must happen today
- [ ] 🟡 Should happen today
- [ ] 🟢 Nice to have
- [ ] 🔵 Blocked — Waiting for: someone to respond
These map to Reminders.app priority: 🔴 = High, 🟡 = Medium, 🟢 = Low.
Blocked tasks (🔵) appear in Reminders with a `BLOCKED:` prefix and include the blocker reason in the notes field.
Tasks with no priority emoji are ignored by the sync (useful for habits/rituals).
Setup
1. Install
Clone or copy these files into your vault's `.claude/` directory:
your-vault/
└── .claude/
├── hooks/
│ ├── reminders-async-wrapper.sh
│ ├── reminders-task-detector.py
│ ├── reminders-session-sync.py
│ └── task_parser.py
└── scripts/
├── reminders_manager.py
└── reminders-sync-daemon.py (optional)
2. Configure
Edit the `# --- CONFIGURE THIS ---` sections in each file:
**`scripts/reminders_manager.py`**
REMINDER_LISTS = ["Work", "Personal"] # Your Reminders list names
**`hooks/reminders-task-detector.py`**
CONTEXT_TO_LIST = {
"Work": "Work", # ### Work section → Work list
"Personal": "Personal",
"Family": "Personal",
"Health": "Personal",
}
**`hooks/reminders-session-sync.py`**
DAILY_DIR = os.path.join(VAULT_ROOT, "4-Daily") # Your daily notes folder
LIST_TO_SECTION = {
"Work": "Work", # Work list → ### Work section
"Personal": "Personal",
}
**`hooks/task_parser.py`**
DAILY_DIR = os.path.join(VAULT_ROOT, "4-Daily") # Your daily notes folder
PROJECTS_DIR = os.path.join(VAULT_ROOT, "1-Projects", "Current")
3. Create Reminders lists
python3 .claude/scripts/reminders_manager.py setup-lists
4. Wire up Claude Code hooks
Add to your `.claude/settings.json`:
{
"hooks": {
"SessionStart": [
{
"command": "bash \"$CLAUDE_PROJECT_DIR/.claude/hooks/reminders-async-wrapper.sh\" reminders-session-sync.py"
}
],
"PostToolUse": [
{
"matcher
Related Skills
Origin Of Memory
Persistent memory for Claude Code: hooks summarise each session into an Obsidian vault, daily logs compile int
Apple Bridges
Native macOS app access — manage Apple Reminders, Calendar, Contacts, Notes, Mail, and tmux sessions via Swift
Agentlog
Auto-log Claude Code prompts to Obsidian Daily Notes
Agent Transcript Parser
Bidirectional, round-trip-lossless converter between Claude Code and Codex transcript formats — switch provide
Obsidian Vault Kit
A knowledge vault Claude Code maintains for you — document and session-history ingest into a linked Obsidian g
Claude Version Picker
Windows wrapper that let's you chose between 2 different Claude Code versions you want to use. Simply enter th
Related Agents
Connection Agent
Obsidian vault connection specialist. Use PROACTIVELY for analyzing and suggesting links between related conte
Email Copywriter
Writes and revises the outreach email copy for this freight-brokerage tool — cold intros, follow-ups, breakup
Qrspi Plan Goal Traceability Reviewer
Verifies bidirectional traceability between goals and plan tasks — every goal traces forward to plan-authored