Ever been late to an important meeting because you didn't notice the notification?
TimelyMeet was born from personal frustration with missing Zoom calls and being "that person" who joins 5 minutes late. It sits in your macOS menu bar and fire full screen alert with one-click meeting join, so you never miss another important call.
🚨 Fullscreen Alerts Beautiful, attention-grabbing fullscreen notifications ensure you never miss an important meeting.
⚡ One-Click Join Instantly join Zoom, Google Meet, Microsoft Teams, and other video conferences with smart URL detection.
📊 Menu Bar Integration Your upcoming meetings are always visible in the menu bar with countdown timers and quick access.
🔔 Smart Notifications Configure custom reminder times, notification sounds, and alert preferences for different meeting types.
⌨️ Keyboard Shortcuts
ESCto dismissEnterto join meetingSto snooze (3 minutes)- Hold snooze button for custom time options
💎 Completely Free No subscriptions, no hidden fees, no premium tiers - all features are free forever.
🔒 Privacy First Your calendar data never leaves your device. No tracking, no analytics, no data collection. Period.
- macOS 15.0 or later
- Calendar access permissions
For Macs where the App Store is unavailable (e.g. managed work machines):
- Download TimelyMeet.dmg from the latest release
- Open the DMG and drag TimelyMeet to Applications
- Launch TimelyMeet from Applications and grant calendar access
The DMG is signed with a Developer ID and notarized by Apple. It has the same features as the App Store version.
Updates: the DMG version does not update itself. To get notified about new versions, click Watch → Custom → Releases on this repository, or use About → Download Latest Version in the app settings.
The same notarized DMG, with updates via brew upgrade:
brew install --cask romancha/tap/timelymeetInstall only one version: the App Store and DMG builds share the same app identifier, so running both leads to duplicate menu bar icons and notifications.
# Clone the repository
git clone https://github.com/romancha/TimelyMeet.git
cd TimelyMeet
# Open in Xcode
open TimelyMeet.xcodeproj
# Build and run
⌘ + R- SwiftUI: Modern declarative UI framework
- EventKit: Calendar and event access
- Core Data: Local data persistence
TimelyMeet/
├── Services/ # Business logic services
├── Views/ # SwiftUI views and components
├── Models/ # Data models and ViewModels
├── Utils/ # Utility functions and extensions
└── Resources/ # Localization and assets
# Build from command line
xcodebuild -project TimelyMeet.xcodeproj -scheme TimelyMeet build
# Run tests
xcodebuild test -project TimelyMeet.xcodeproj -scheme TimelyMeet -destination 'platform=macOS'
# Open in Xcode
open TimelyMeet.xcodeprojThe DMG is built, signed and notarized locally, so the Developer ID key never leaves the maintainer's Mac.
- Bump
MARKETING_VERSION/CURRENT_PROJECT_VERSION, add the version toTimelyMeet/Resources/release_notes.json, commit and push tomaster - Run
./scripts/release.sh: it builds and notarizesTimelyMeet.dmg, shows the release notes generated fromrelease_notes.jsonand, after confirmation, creates the tag and the GitHub release with the DMG attached
# One-time: store notarization credentials in the keychain
xcrun notarytool store-credentials timelymeet --apple-id <apple-id> --team-id KY6MPSHF75
# Dry run: build and sign without notarization or publishing
SKIP_NOTARIZATION=1 ./scripts/build-dmg.sh- 🎨 Theme customization
We welcome contributions!
- Fork the repository
- Create a feature branch
- Make your changes
- Add tests for new functionality
- Submit a pull request
This project is licensed under the Apache License 2.0 - see the LICENSE file for details.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
- 🐛 Bug Reports: GitHub Issues
- 💡 Feature Requests: GitHub Discussions
- 🌐 Website: timelymeet.romancha.org
If TimelyMeet helps you stay on time, consider:
- ⭐ Star this repository to help others discover it
- 🐦 Share on Twitter/X with
#TimelyMeet - 📝 Write a review on the App Store
- 🤝 Contribute code, documentation, or translations
Made by Roman Makarskiy
Built with SwiftUI • Open Source • Privacy First
