Pure SwiftUI. Direct Google Calendar API. Zero compromises.
No Electron. No CalDAV. Just fast.
Website · Features · Blog · Discord · Privacy · Terms · @moto_szama · 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.
| 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 |
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
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.
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.
| 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 |
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 |
| 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.

