Releases: VatsalSy/RemindersSync
v3.5 - URL Parsing Fix
What's Changed
- Fix URL parsing to handle spaces in task titles (closes #5)
- Ignore CLAUDE.md, AGENTS.md, .claude and other CLI tools' instruction .md files.
Compatibility
- macOS 13+ (Ventura)
- Compatible with macOS 26 (Tahoe)
Installation
sudo ./install.shFull Changelog: v2.0...v3.0
🚀 RemindersSync v2.0: Your Swift Bridge Between Obsidian & Apple Reminders 🚀
RemindersSync v2.0 Release Notes
v2.0 - Enhanced Tag Filtering and Bug Fixes
What's New in v2.1
- Enhanced #cl Tag Filtering: Improved tag detection with symmetric boundary matching to prevent false positives
- File Path Normalization: Fixed file path handling for consistent task mapping across different systems
- Robust Tag Detection: Added comprehensive testing and validation for #cl tag filtering
- Bug Fixes: Resolved issues with UID assignment to filtered tasks and improved error handling
Improvements Since v1.75
Tag Filtering Enhancements
- Symmetric Boundary Matching: #cl tag detection now uses word boundaries to prevent false positives like "include" or "classical"
- Comprehensive Testing: Added extensive unit tests for tag detection edge cases
- Consistent Filtering: All tools now use the same improved tag detection logic
- Performance: Optimized regex patterns for faster tag filtering
Bug Fixes
- Fixed file path normalization that could cause inconsistent task mapping
- Prevented UID assignment to tasks that should be filtered out
- Improved error handling in tag detection
- Enhanced boundary detection to avoid matching partial words
Commands Overview
All commands from v1.75 remain available with improved reliability:
- RemindersSync - Full bidirectional sync between vault and Apple Reminders
- ScanVault - One-way sync from Obsidian to Reminders
- ExportOtherReminders - Two-way sync for non-vault reminders
- ReSyncReminders - Clean vault for fresh sync
- CleanUp - Remove completed tasks while preserving incomplete ones
Installation
Quick start remains the same:
git clone https://github.com/vatsalag09/RemindersSync.git
cd RemindersSync
swift run RemindersSync /path/to/vaultFor system-wide installation:
sudo ./install.shv1.75 - Major Feature Release
What was new in v1.75
- ReSyncReminders: New tool for preparing vault for a fresh sync by removing all task IDs and completed tasks
- CleanUp: New tool that removes only completed tasks while preserving incomplete tasks with their IDs
- Automated Installation: Added
install.shanduninstall.shscripts for easier system-wide installation - Enhanced Cleanup: CleanUp tool now removes tasks deleted from Obsidian but still present in Apple Reminders
Overview
RemindersSync is a Swift-based command-line suite for maintaining bidirectional task synchronization between an Obsidian vault and Apple Reminders. It respects completion states, preserves due dates, and maintains consistent task IDs across both systems.
Features
- Bidirectional Sync: Keeps tasks coherent between your vault and an Apple Reminders list (same name as vault)
- Selective Integration: Does not interfere with other Reminders lists unless explicitly configured
- Task ID Preservation: Maintains unique IDs in both systems to avoid duplications
- State Management: Tracks mappings using lightweight JSON databases (
._RemindersMapping.json,._TaskDB.json) - Task Filtering: Automatically excludes tasks with
#cltag from all sync operations - Vault Maintenance: Tools for cleaning completed tasks or preparing for fresh sync
Commands
1. RemindersSync
Full two-way sync of tasks between your vault and the matching Reminders list.
swift run RemindersSync /path/to/vault2. ScanVault
One-way sync from your vault to a Reminders list. Does not pull completion status back into Obsidian.
swift run ScanVault /path/to/vault3. ExportOtherReminders
Syncs all non-vault tasks to a dedicated _AppleReminders.md file and back.
swift run ExportOtherReminders /path/to/vault
swift run ExportOtherReminders /path/to/vault --cleanup4. ReSyncReminders (New)
Prepares vault for a fresh sync by removing all task IDs and completed tasks.
swift run ReSyncReminders /path/to/vault
# Then run RemindersSync to complete the fresh sync
swift run RemindersSync /path/to/vault5. CleanUp (New)
Removes only completed tasks while preserving incomplete tasks with their IDs.
swift run CleanUp /path/to/vaultInstallation
Quick Start
git clone https://github.com/vatsalag09/RemindersSync.git
cd RemindersSync
swift run RemindersSync /path/to/vaultSystem-Wide Installation
Automated (New)
sudo ./install.sh
# To uninstall:
sudo ./uninstall.shManual
swift build -c release
sudo cp .build/release/RemindersSync /usr/local/bin/obsidian-reminders
sudo cp .build/release/ScanVault /usr/local/bin/obsidian-scan
sudo cp .build/release/ExportOtherReminders /usr/local/bin/obsidian-export
sudo cp .build/release/ReSyncReminders /usr/local/bin/obsidian-resync
sudo cp .build/release/CleanUp /usr/local/bin/obsidian-cleanupThen run from anywhere:
obsidian-reminders /path/to/vault
obsidian-scan /path/to/vault
obsidian-export /path/to/vault
obsidian-resync /path/to/vault
obsidian-cleanup /path/to/vaultUsage Notes
- Grant permission to access Reminders upon first run
_AppleReminders.mdstores your non-vault tasks- List-specific tasks sync back to the same list in Apple Reminders
- Use the
--cleanupflag if you see duplicates - Keep task IDs intact—do not edit them manually
- Tasks with
#cltag are automatically excluded from syncing - Use
ReSyncRemindersfor a complete fresh start,CleanUpto just remove completed tasks
Known Limitations
- Works best with the task plugin using minimal customization (keep custom date entry and similar options unchecked)
License
Distributed under GPLv3. You're free to use, modify, and distribute this work under the same license.
Enjoy seamless task management between Obsidian and Apple Reminders! ✨