Obsidian Reminders Sync
Description
Bidirectional sync between Obsidian daily notes and macOS Reminders via Claude Code hooks
Installation
This entry records only its repository, not the path inside it, so there is no
exact command to give. Open the source below and copy the folder into
~/.claude/skills/, or the file into ~/.claude/agents/.
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
Auto Update
Pull the latest ECC repo changes and reinstall the current managed targets.
Development Ecc Guide
Navigate ECC's current agents, skills, commands, hooks, install profiles, and docs from the live repository su
Development Epic Claim
Claim an epic issue, stamp coordination state, and sync local ownership.
Development Epic Publish
Publish a validated epic update back to the issue and local cache.
Development Epic Review
Mark epic review requested, approved, or changes requested.
Development Epic Unblock
Sweep blocked epic issues and reopen anything whose dependencies are closed.
Development Related Agents
Django Build Resolver
Django/Python build, migration, and dependency error resolution specialist. Fixes pip/Poetry errors, migration
Openai Codex CLI
(55.8k ⭐) - Lightweight coding agent that runs in your terminal.
src/agents/ — 11 Agent Definitions
**Generated:** 2026-04-11