The papercut
Calendar’s default alert is a single value per calendar. Power users want two: a heads-up a few minutes out and a nudge the moment the meeting starts. You can add a second alert, but only by opening each event and doing it by hand. That is hopeless for invites, synced work calendars, and recurring meetings you didn’t create. Fantastical and BusyCal can add multiple alerts, but only on events you build yourself, and they’re paid subscriptions.
What peal does
It lives in the menu bar and applies multi-alert rules to events you didn’t create. The default rule rings twice on every event: ten minutes before, and again at start. From there you can:
- Fire as many alerts per event as you like (30 / 10 / 0 minutes before).
- Override per calendar, so a Work rule beats the catch-all default.
- Ignore all-day events, or limit a rule to workdays.
- See a live preview of which upcoming events each rule will ring, before you trust it.
- Optionally show a live countdown to your next event right in the menu bar (off by default).
It reads every account that syncs into macOS Calendar (iCloud, Google, Exchange) through EventKit, and posts native macOS notifications on its own schedule. It is read-only: it never creates, edits, or deletes anything.
Built to stay out of the way
A set-and-forget notifier is only useful if it’s running and allowed to notify, so peal ships an open at login toggle and a one-tap “send a test notification” self-check. The firing logic lives in a small, unit-tested rule engine with no dependency on the calendar or the UI. That engine decides which rule wins, applies the filters, drops alerts already in the past, and collapses duplicate fire-times so overlapping calendars never double-ring.