NextMeeting — a macOS Menu Bar Meeting Countdown

Project notes: a native macOS menu bar app with a live countdown to your next meeting and a global shortcut to join instantly. Swift, EventKit, zero dependencies.

Repo: nostrapollo/next-meeting-menu-bar · MIT · ~1,300 lines of Swift

A macOS menu bar app that shows a live countdown to your next meeting — 15m: Team Standup — and joins it with a global keyboard shortcut (Cmd+Shift+J) from anywhere. No clicking through calendar apps, no hunting for the Zoom link at 10:59.

The Problem

The two seconds before a meeting are the worst-designed moment in remote work. The link is buried in a calendar event, behind a notification you dismissed, inside a notes field. Every meeting starts with the same scramble. The fix is embarrassingly simple: the next meeting and its join link should always be one keystroke away.

How It Works

Three services, one model, SwiftUI views. No third-party dependencies — pure Apple frameworks.

Design Decisions

What I’d Point At as the Interesting Bit

The meetingToAlert logic is where the small design tensions live: “alert at start” means within 60 seconds after start (you want it to fire even if the refresh tick lands late), while “alert N minutes before” is a one-minute-wide window checked against the refresh interval. Getting alerts to fire exactly once, on time, across restarts, with user-configurable timing — in a polling app — is fiddlier than the feature list suggests.

Status

Built January–March 2026. In daily use on my own Mac. macOS 13+, needs Calendar and Accessibility permissions. Build with ./build.sh or open in Xcode.