Back to Projects
macOS App Swift + SwiftUI macOS 14+requirement Privacy-firstdesign
BiruniCal app icon

BiruniCal

Menu bar calendar for macOS — reads from EventKit, no accounts, no cloud. Quick event preview with month navigation and Calendar.app deep links.

Business Problem

macOS Calendar widget is not scrollable and forces users to open the full Calendar.app. No quick-access menu bar calendar exists without third-party paid apps (Fantastical $57/yr, InstaCal $10).

Architecture

SwiftUI + AppKit hybrid. NSStatusItem + NSPopover for menu bar presence. EventKit for calendar data. PKG installer with postinstall script for Gatekeeper bypass.

Personal Contribution

Solo development — architecture, UI/UX, EventKit integration, PKG installer, Cloudflare deployment for companion website. Iterative bug fixing through 7 development sessions.

Technical Challenge

Swift 6 concurrency compliance, NSPopover sizing without clipping, EventKit deduplication, ical:// URL scheme for Calendar.app deep linking, PKG installer with quarantine removal.

Key Features

Scrollable month view, event dots, relative date display ("2 days ago"), appearance toggle (System/Light/Dark), week start preference, launch at login, settings overlay.

Impact

Eliminates the need to open Calendar.app for quick schedule checks. Reduces friction for users who want a glanceable calendar. Free alternative to paid menu bar calendars.

App Screenshots

BiruniCal calendar popover showing month view with event dots and event list

Calendar popover with month navigation, event dots, and event list below the grid

BiruniCal event opening in Calendar.app

Clicking an event opens Calendar.app at the specific date via ical:// URL scheme

BiruniCal settings overlay with appearance, week start, launch at login, and event dots toggles

Settings overlay with appearance toggle, week start preference, launch at login, and event dots

Tech Stack

Core Technologies

Swift 6.3 SwiftUI AppKit EventKit NSPopover NSStatusItem

Build & Distribution

XcodeGen PKG Installer Ad-hoc Signing GitHub Releases Cloudflare Pages
Download Installer