• v1.3.1 3ecf29f499

    tomas.kracmar released this 2025-10-13 09:43:05 +00:00 | 0 commits to main since this release

    Fix: Auto-delete mirrored placeholders when the source event is removed.
    Triggers even if no source instances remain in the selected window.
    Also cleans legacy mirrors without mirror URLs by matching exact times.

    Release checksum:
    SHA-256: 74ff7e649348ee68129a326ef18c0e37462e34ca2f05de0e22046f5e52a6d3fe

    Downloads
  • v1.3.0 df06564434

    tomas.kracmar released this 2025-10-10 07:58:05 +00:00 | 2 commits to main since this release

    • Mark Private option: mirror events with your prefix + real title while marking them Private on supported servers (e.g., Exchange). Co‑workers see the time block but not the details.
    • Per-route and global toggles for Mark Private; persists in settings and export/import.

    Fixes & improvements

    • More reliable calendar loading after permission grant (reinit EKEventStore).
    • Concurrency: @MainActor on permission/refresh methods.
    • Accepted‑only filter via current user attendee participantStatus.
    • Settings autosave and restore (including source/target selections by IDs).
    • Mirror Now enabled when calendars available; routes or manual selection used as appropriate.

    Build

    • make build-release
    • make package → BusyMirror-1.3.0-macOS.zip and .sha256
    Downloads
  • v1.2.4 d1fbd4c81f

    tomas.kracmar released this 2025-10-10 06:52:47 +00:00 | 5 commits to main since this release

    Fixes

    • Mirror Now is enabled when routes are defined, even if nothing is checked in the main window. This allows fully route-driven runs without requiring a temporary manual selection.

    Build

    • make build-release
    • make package → BusyMirror-1.2.4-macOS.zip and .sha256
    Downloads
  • v1.2.0 ae40b42e6f

    tomas.kracmar released this 2025-09-29 15:52:18 +00:00 | 9 commits to main since this release

    Changelog

    [1.2.0] – 2025-09-29

    Added

    • Filter source events by title
    • Mirror event only from work hours
    Downloads
  • v1.1.0 691575c554

    tomas.kracmar released this 2025-09-29 13:31:11 +00:00 | 10 commits to main since this release

    Changelog

    [1.1.0] – 2025-09-29

    Added

    • Automatic persistence for all settings (including routes) via UserDefaults with a legacy import path.

    Changed

    • Refactored the routes editor into smaller SwiftUI components so the compiler reliably type-checks the view.

    Fixed

    • Eliminated the “self is immutable” crash when importing settings.
    Downloads
  • v1.0.0 37328eeae2

    tomas.kracmar released this 2025-08-23 14:00:48 +00:00 | 13 commits to main since this release

    🚀 BusyMirror 1.0.0

    First public checkpoint release of BusyMirror — a macOS app for mirroring calendar events across multiple accounts.
    This version includes the core functionality for creating mirror routes between calendars, ensuring consistent visibility of your availability.


    Features

    • Define routes between source and target calendars.
    • Mirror events with customizable title prefix (default 🪞).
    • Support for per-route options (all-day handling, merging gaps, prefixing).
    • Global busy mirror toggle.
    • Confirmation dialog before removing placeholder events.
    • Simple, clean SwiftUI interface.

    ⚠️ Security & Signing Notice

    This build is not signed or notarized with an Apple Developer ID.
    To run it on macOS:

    1. Download and unzip BusyMirror-1.0.0-macOS.zip.
    2. Move BusyMirror.app to your Applications folder.
    3. On first launch, macOS may block it.
      • Right-click the app → Open → confirm.
      • Or go to System Settings → Privacy & Security, find BusyMirror, and click Allow Anyway.

    Future versions may be code-signed and notarized for easier installation.


    🗺 Roadmap

    Planned features for future versions:

    • Source filters: include/exclude events by title keywords or other criteria.
    • Tentative/accepted handling: option to mirror only accepted meetings.
    • Ignore placeholders based on naming conventions.
    • Settings persistence: saving per-route settings between launches.
    • Import/export configuration for sharing setups.
    • iOS/iPadOS companion app for Intune-managed devices.
    • More UI polishing (calendar colors, clearer toggles, better feedback).

    💡 Notes

    • This is a checkpoint release for early adopters and testers.
    • Please report bugs, ideas, or UX suggestions via Issues in this repository.
    Downloads