Put an event in your calendar by describing it, add a task, or jump into your next call — without leaving Raycast, and usually without hora ever coming forward.
This is the official hora Calendar extension, built and maintained by the team that makes the app.
Native Google Calendar for Mac. Create and join meetings without opening your browser.
This extension is a front door, not the product. It drives hora Calendar — a native macOS client for Google Calendar with no Electron and no web views — which holds your calendars, your Google Tasks, your meeting rooms and your invitations.
Recommended: Direct from hora. Download the latest Raycast-compatible version from horacal.app or install it with Homebrew:
brew install --cask szamowski-dev/tap/hora
Setapp also has a Raycast-compatible build. The Mac App Store update is pending, so its current version does not support this extension yet.
The extension detects the supported Direct or Setapp build automatically; there is nothing to configure. You need hora 1.1.5 or newer — earlier versions cannot be scripted, and the extension will tell you how to update.
brew install --cask szamowski-dev/tap/hora. Setapp works too; the Mac App Store update is still pending.That is the whole setup. There is no API key, no token and no account to connect: the extension reaches hora on your own Mac.
If you dismissed the permission prompt, turn it back on under System Settings › Privacy & Security › Automation › Raycast. The extension offers to open that pane for you when it notices the permission is missing.
Type create calendar event and then describe it the way you would say it out loud — lunch with Kuba on Thursday at 1pm, standup tomorrow 9:30, dentist next Friday.
Press Enter and it is in your calendar. hora does not open, does not take focus, does not flash a window at you — all you get is a toast confirming the title and the time it landed on.
The sentence is parsed by hora itself, not by this extension, so you get exactly the result you would get by typing the same thing into the app.
create meeting takes the same kind of sentence, but instead of saving it, hora comes forward with its editor already filled in from what you typed. Nothing is saved until you save it.
Reach for this one when there is more to the event than a time — guests to invite, a room to book, a Meet or Zoom link to attach, a description to write. The parser does the first 80%, you do the rest.
create task opens a small form: the task, which of your Google Tasks lists it belongs to, when it is due, and a note.
The list dropdown is filled from the lists hora has actually synced, and it starts on the same default list hora uses when you add a task from its sidebar. Google Tasks records the day only, never a time of day, which is why there is a date picker and no clock.
join next meeting lists what is coming up that you can actually join — anything with a Google Meet, Zoom or Teams link.
Each row shows which account the meeting belongs to and how soon it starts: in 20 min while it is close, the time while it is still today, the weekday after that. Press Enter and the call opens in the right app, signed in as the right Google account — which matters if you keep work and personal accounts side by side. ⌘ ⇧ C copies the link instead.
Create Calendar Event writes to the calendar set under Default Calendar in the extension's preferences. Leave it empty and events land on the primary calendar of your first connected account.
To put one event somewhere else, use Create Meeting and pick the calendar in hora's editor before saving.
| Preference | What it does |
|---|---|
| Default Calendar | The calendar Create Calendar Event writes to. Empty means the primary calendar of your first connected account. |
| Close Raycast after adding | Dismiss the Raycast window as soon as an event is sent. On by default. |
| Date and Time Locale | Format event dates and times in English (United States) or Polish (Poland). English (United States) by default. |
Nothing leaves your Mac.
The extension makes no network requests of its own. It has no server, no analytics and no account. Everything it does is an Apple event sent to hora, running on the same machine — the same mechanism Script Editor or Shortcuts would use.
Your calendar data is read from hora's local store and used only to draw the list you are looking at. It is never stored by the extension, never cached anywhere outside Raycast's own process, and never sent anywhere.
Your default calendar name, close-after-add setting, and date and time locale stay in Raycast's own preferences on your Mac.
Everything goes through hora's AppleScript dictionary — no private APIs, no reading hora's files, nothing that breaks when hora updates. You can drive the same commands yourself:
tell application id "szamowski.Hora"
parse sentence "lunch with Kuba on Thursday at 1pm" with add immediately
add task "send the invoice"
upcoming events limited to 10 with meeting links
end tell
Every command answers with JSON. Open the full dictionary in Script Editor with File › Open Dictionary… and pick hora Calendar — there is more in there than this extension uses, including RSVPs and deleting events.
Fork the repository and open a pull request describing what you changed. Issues and suggestions are welcome too.
npm install
npm run dev
You will need hora installed for anything to work.
Describe an event in plain language and save it straight to your Google Calendar.
Parse a sentence, then open it in hora to add guests, a room or a call before saving.
Add a task to one of your Google Tasks lists, with a due date and notes.
Find an upcoming meeting and open its link in the right app and the right account.