The Mac calendar Google never built.
hora Calendar
The Mac calendar Google never built.
Pure SwiftUI. Direct Google Calendar API. Zero compromises.
No Electron. No CalDAV. Just fast.
Website · Features · Blog · Discord · Privacy · Terms · @motoszama · Bluesky
[!NOTE]
hora is native and real-time. Built in SwiftUI, talking to the Google Calendar REST API directly — no CalDAV translation layer, no web views, no Electron. Changes land instantly via APN push sync instead of polling. It sips battery and opens in milliseconds.
Why hora
| | hora | Fantastical | Notion Calendar | | --- | :---: | :---: | :---: | | Pure SwiftUI + AppKit | Yes | Partly | No | | No Electron / no web views | Yes | Yes | No | | Direct Google Calendar API | Yes | CalDAV | Yes | | Google Meet link on create | One click | Yes | Yes | | Built-in Pomodoro timer | Yes | No | No | | Menu bar countdown widget | Yes | Yes | Yes | | Availability sharing (FreeBusy) | Yes | Yes | Yes | | Localized languages | 9 | 8 | Limited | | Pricing | $49 one-time or $30/yr | $100+/yr | Free |
Keyboard shortcuts
The shortcuts you already know from Google Calendar — natively, everywhere.
D Day · W Week · M Month · T Today · C New event · / Search · J / K Prev / Next · ⌘Z Undo · ⌘⇧A Share availability
Features
15 shipped features — click to collapse
| | Feature | Description | |---|---|---| | Day, Week & Month | 3 Calendar Views | Apple Calendar–style layout with smooth transitions between views. | | Drag & Drop | Full CRUD | Create, edit, resize, delete events. Feels native because it is. | | One Click | Google Meet | Add conference links when creating events. Join instantly. | | D/W/M · C · / · J/K · T | Keyboard Shortcuts | Google Calendar shortcuts you already know. | | Real-time | APN Push Sync | Apple Push Notifications deliver calendar changes instantly — no polling, no waiting. | | Incremental | Smart Sync | Configurable intervals as a fallback. Native macOS notifications for upcoming events. | | Multi-Account | Color-Coded | Multiple Google accounts, each with its own color scheme. | | Autocomplete | Attendees | Invite people from Google Contacts with instant suggestions. | | Pomodoro | Focus Timer | Built-in pomodoro timer with configurable work/break intervals. | | Cmd+Shift+A | Availability Sharing | Query free slots via FreeBusy API, copy to clipboard. | | Menu Bar | Widget | Pill-shaped indicators, upcoming events, countdown to next meeting. | | Recurring | Events | Full support for recurring rules with exception handling. | | 9 Languages | Localization | EN, PL, DE, ES, FR, IT, JA, PT, ZH. | | Undo/Redo | Cmd+Z | Full undo/redo for create, edit, and delete operations. | | Light & Dark | Appearance | Matches system appearance. Polished contrast in both modes. |
See horacal.app/features for the full list.
Architecture
flowchart LR
U([You]) --> UI[SwiftUI + AppKit]
UI <--> Core[HoraCore]
Core <--> Sync[HoraSync]
Sync <--> Cache[(SwiftData cache)]
Sync <--> API[HoraGoogleAPI]
API <-->|REST, incremental| GCal[(Google Calendar)]
API -.->|OAuth 2.0 + PKCE| Google{{Google}}
GCal ==>|APN push, real-time| Sync
Three Swift Packages, one main target. SwiftData is a local cache — Google Calendar is the source of truth.
Stack
| | | |---|---| | Language | Swift 6 | | UI | SwiftUI + AppKit | | API | Google Calendar REST API (direct, no CalDAV) | | Auth | OAuth 2.0 + PKCE via ASWebAuthenticationSession | | Storage | SwiftData (local cache, Google API as source of truth) | | Architecture | 3 Swift Packages (HoraCore, HoraGoogleAPI, HoraSync) + main target | | CI/CD | Xcode Cloud (builds + TestFlight) + GitHub Actions (tests on PR) | | Distribution | Mac App Store / TestFlight |
Journey
[!TIP]
24+ features shipped, 25+ bugs squashed. Full changelog on the blog.
Shipped
Day / Week / Month views · full CRUD · drag & drop · resize · multi-account sync · Google OAuth · incremental sync · keyboard shortcuts · menu bar widget · pomodoro timer · availability sharing · invitation management · calendar visibility · recurring events · 9 languages · light & dark mode · 5/7-day week toggle · one-click meeting join · window state restore · Xcode Cloud CI/CD.
Working on now
Apple Intelligence — smart scheduling, focus time planning, meeting prep briefings · Quick "Running late" reply · Email attendees from event detail · Invitation "Ignore" option · Light mode contrast polish · Dynamic Dock icon (macOS 26) · Localization native review.
What's next
| # | Milestone | |---|---| | 1 | ✅ Mac App Store launch — live now | | 2 | iOS & iPadOS TestFlight — same SwiftUI foundation, designed for touch (public beta coming soon) | | 3 | macOS, iOS & iPadOS 27 App Store launch — one hora across every Apple platform |
Links
| | | |---|---| | Website | horacal.app | | Blog | horacal.app/blog (RSS) | | Community | Discord | | X / Twitter | @moto_szama | | Bluesky | @szamski.bsky.social | | Developer | szamowski.dev |
Built with SwiftUI + AppKit. No Electron. No web views. Pure native macOS.