View your OneCal Unified Calendar View in Raycast.

The screenshot shows demo data (in development mode, pass
demoas the command argument to render mock data without connecting to real calendars).
⌘⇧H), using the server-side isClone flaghangoutLink / conferenceData / onlineMeeting.joinUrl) or from location/description text (text-sourced URLs are validated against a hostname allowlist)https://mcp-server.onecal.io/mcp, OAuth 2.0 + PKCE)Raycast (or anything you like)https://raycast.com/redirect/extension⚠️ OneCal strips the query string from redirect URIs both at registration and at redirect time, so Raycast's default query-based redirect (
https://raycast.com/redirect?packageName=Extension) does not work (thepackageNameparameter is lost and the flow can never return to the extension). This is why the extension uses Raycast's query-freehttps://raycast.com/redirect/extensionredirect instead.
npm install
npm run dev
Enter the Client ID / Client Secret in the extension preferences on first launch, then approve the authorization in your browser.
| Command | Description |
|---|---|
Unified Calendar | Show events for the next 7 days (configurable). Pass YYYY-MM-DD as the argument to change the start date. In development mode, pass demo to render mock data for screenshots |
list-calendars, get-busy-intervals, get-calendar-events, get-calendar-event, create-calendar-event, update-calendar-event, delete-calendar-event, respond-to-calendar-eventget-calendar-events accepts only dateMin / dateMax (ISO 8601 UTC Z notation only — offsets like +09:00 are rejected by the schema) and timeZone (IANA). Per-calendar filtering is not supported[{calendar: {...}, events: [...]}, ...]isClone flag (server-side judgement), which reproduces the web app's "Hide Clone Events" behavior exactly. The title/time-based dedupe fallback is only used if the flag key is ever absentid,name,email,provider,color,timeZone,isShared,isReadOnly / Event keys: id,parentEventId,title,start,end,allDay,isClone,color,attendees,organizer,myResponseStatus,showAs,isRecurring,remindersUseDefault,nativeEvent