A simple macOS menu bar app that shows your next calendar meeting and a countdown timer.
- Menu bar display - Shows countdown + meeting title (e.g., "15m: Team Standup")
- Quick overview - Click to see your next 5 upcoming meetings
- Join meetings - One-click join for Zoom, Google Meet, Microsoft Teams, and WebEx
- Auto-refresh - Updates every 60 seconds
- All calendars - Works with any calendar configured in macOS Calendar app (iCloud, Google, Exchange, etc.)
The menu bar shows your next meeting with a countdown:
📅 15m: Team Standup
Click to see the dropdown with upcoming meetings, times, and join buttons.
- macOS 13.0 (Ventura) or later
- Xcode 15+ (for building)
-
Clone the repository:
git clone https://github.com/yourusername/next-meeting-menu-bar.git cd next-meeting-menu-bar -
Open in Xcode:
open NextMeeting/NextMeeting.xcodeproj
-
Build and run (Cmd+R)
-
Grant calendar access when prompted
On first launch, you'll be asked to grant calendar access. The app needs this to read your upcoming meetings. You can manage this permission in System Settings > Privacy & Security > Calendars.
The app uses Apple's EventKit framework to access your calendars. It:
- Fetches events for the next 24 hours from all your calendars
- Filters out all-day events
- Extracts meeting URLs from event descriptions/locations (Zoom, Meet, Teams, WebEx)
- Displays the next meeting with a countdown in your menu bar
- Refreshes automatically every minute
NextMeeting/
├── NextMeetingApp.swift # App entry point with MenuBarExtra
├── Models/
│ └── Meeting.swift # Meeting data model
├── Services/
│ └── CalendarService.swift # EventKit integration
├── Views/
│ └── MenuContentView.swift # Dropdown menu UI
└── Info.plist # Calendar permissions
This software is provided "as is" without warranty of any kind. Use at your own risk.
- This app accesses your calendar data locally on your device
- No data is sent to external servers
- The app requires calendar permissions to function
- Meeting join links are extracted using pattern matching and may not work for all meeting formats
Contributions are welcome! Feel free to open issues or submit pull requests.
This project is licensed under the MIT License - see the LICENSE file for details.