zakin93 downloadsView and manage Apple Reminders from a sidebar panel. macOS only.
View and manage your Apple Reminders from a sidebar panel in Obsidian.
macOS only. Nothing is sent over the network — the plugin talks to the Reminders app directly through Apple's EventKit framework, entirely on your machine.
!!/!), overdue reminders are highlightedOnce this plugin is available in Obsidian's Community Plugins directory:
main.js, manifest.json, styles.css, and reminders-cli-macos-universal.zipreminders-cli-macos-universal.zip — it contains a bin/reminders-cli executable<your-vault>/.obsidian/plugins/apple-reminders-plus/, so the folder looks like:<your-vault>/.obsidian/plugins/apple-reminders-plus/
├── main.js
├── manifest.json
├── styles.css
└── bin/
└── reminders-cli
chmod +x bin/reminders-cli in that folderThe first time the plugin talks to Reminders, macOS will ask if it can access Reminders — click OK. You can review or change this later at:
System Settings → Privacy & Security → Reminders
The plugin bundles a small, pre-compiled command-line helper (bin/reminders-cli) built from the Objective-C source in objc/reminders-cli.m. It links against Apple's EventKit framework — the same API Apple's own Reminders app and Shortcuts use — and exposes a handful of subcommands (lists, fetch, create, delete, complete) that read and write reminders, printing JSON to stdout.
The Obsidian plugin (main.ts) calls this helper via Node's child_process.execFile and renders the result. There is no AppleScript, no network access, and no data leaves your machine. The helper ships as a universal binary (Intel and Apple Silicon).
You can inspect and rebuild the helper yourself — see Development below.
main.js)clang and the EventKit/AppKit frameworks) — only needed to (re)build the reminders-cli helpernpm install
npm run build # type-checks and bundles main.js (production) — cross-platform, no macOS needed
npm run dev # watches and rebuilds main.js on change
npm run build:cli-helper # (re)compiles the reminders-cli helper from objc/reminders-cli.m — macOS only
The plugin's TypeScript/JavaScript build (npm run build) doesn't touch the native helper — that's what keeps it runnable in any CI environment. To actually use the plugin locally you still need a compiled bin/reminders-cli, which npm run build:cli-helper produces.
This project uses eslint-plugin-obsidianmd, the same linter used by Obsidian's plugin review process:
npm run lint
Copy main.js, manifest.json, styles.css, and bin/ into <vault>/.obsidian/plugins/apple-reminders-plus/, then reload Obsidian (or use a tool like hot-reload during development).