diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..ff8edb4 --- /dev/null +++ b/.gitignore @@ -0,0 +1,21 @@ +# Xcode / Swift +.DS_Store +xcuserdata/ +DerivedData/ +build/ +*.xcuserstate + +# SwiftPM +.build/ +Package.resolved + +# Archives / exports +*.xcarchive +*.ipa +*.dSYM +*.dSYM.zip +ExportOptions.plist + +# Misc +*.swp +*.zip diff --git a/README.md b/README.md index 3003926..46ccc67 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,26 @@ -# busymirror +# BusyMirror +BusyMirror mirrors meetings between your calendars so your availability stays consistent across accounts/devices. + +## What it does (current checkpoint) +- Manual “Run” to mirror events across selected routes (Source → Targets). +- DRY-RUN mode shows what would happen. +- Prefix-based tagging of mirrored events. +- Cleanup of placeholders (with confirmation). +- Loop/duplicate guards so mirrors don’t replicate themselves. +- Time window and merge-gap settings. + +## Why +Use one calendar’s confirmed meetings to block time in other calendars (e.g., corporate iPad vs. personal devices). + +## Build (macOS) +1. Open `BusyMirror.xcodeproj` in Xcode. +2. Select the BusyMirror scheme → My Mac. +3. Product → Build. +4. Product → Archive → Distribute App → Copy App (no notarization) to export a `.app` (or ZIP it for sharing). + +## Roadmap +See [ROADMAP.md](ROADMAP.md) + +## License +MIT — see [LICENSE](LICENSE). diff --git a/ROADMAP.md b/ROADMAP.md new file mode 100644 index 0000000..395c839 --- /dev/null +++ b/ROADMAP.md @@ -0,0 +1,17 @@ +# BusyMirror Roadmap + +## Next +- Source filters (name patterns like `[HOLD]`, `#nomirror`) +- Mirror only **Accepted** meetings (exclude tentative/declined) +- Persistent settings (routes, window, prefix) +- Import/Export settings (.busymirror.json) + +## Then +- iOS/iPadOS app (Run Now, Shortcuts, iCloud sync) +- UI: route editor & clearer toggles +- “Dry-run by default” preference + +## Later +- Background monitoring (macOS) +- Smarter cleanup & conflict resolution +- Profiles & MDM/Managed Config support