Vimcal sits on top of your Google or Outlook calendar, so the events and invitations stay where they are and a replacement only has to read and write them. A local web calendar with keyboard shortcuts, extra time-zone columns and a button that copies your free slots as pasteable text is a weekend on the Google Calendar API. What takes longer or can't be copied: the speed of a polished native app, Outlook and Exchange, the iPhone app, group polls and public booking pages. Google's OAuth rules also bite: a project left in Testing status issues refresh tokens that expire after 7 days.
Before you buildVimcal's iOS app is free, and the paid plan has a trial with no card. Try the trial for a week and check whether you would miss the polish enough to pay.
Build me a personal keyboard-driven calendar to replace Vimcal. Requirements:
- Node.js 22 + TypeScript: a Fastify server and a React UI built with Vite. `npm start` serves
http://localhost:4770.
- Calendar access: Google Calendar API through `googleapis` with OAuth for my own account
(GOOGLE_CLIENT_ID and GOOGLE_CLIENT_SECRET in .env). Store the refresh token in
./data/token.json with file mode 600. Read and write events on the calendars I pick; use sync
tokens so refreshes are incremental.
- Storage: better-sqlite3 in ./data/cal.db as a local cache of events and calendars so the week
view renders instantly and works offline for reading.
- Views: week, day and month with a current-time line. Keys: j/k and arrows to move, t for today,
c to create, e to edit, x to delete, g then a date to jump, cmd+k opens a command palette.
- Time zones: show up to three extra time-zone columns next to the week view (IANA names from
settings), and a hover that shows the time in each. Use `luxon`; add tests across both daylight
saving changes of a year.
- Slots: select a range of free time, then press s to copy a plain-text list such as
"Thu 12 Nov, 14:00-15:00 CET (13:00 GMT)" for a chosen set of zones. Keep 30-minute buffers
around existing events and skip declined events.
- Create events from a typed line ("lunch with Ana friday 13:00 60m") with `chrono-node`.
- Single user. No accounts, no telemetry, local-first. Outbound calls: the Google Calendar API only.
- Out of scope: Outlook or Exchange, booking pages, polls, team scheduling, a phone app.
- README: creating the Google Cloud OAuth client, adding yourself as a test user, and a warning
that a project left in Testing status issues refresh tokens that expire after 7 days.Opens your agent with the prompt filled in, you press enter. Or copy it and paste it into an empty folder.
The first prompt builds the core. Run these one at a time in the same folder to grow it into your own Vimcal.
Wrap the calendar in this folder in a desktop shell. Requirements: - Use Tauri 2 (or Electron if Tauri is not installed) to open http://localhost:4770 in a window with no browser chrome, started by `npm run desktop`. - A global shortcut (cmd+shift+space) shows and hides the window, and the app starts the Fastify server itself and stops it on quit. - Remember window size and position in ./data/window.json. - Update the README with the build steps for macOS.
Extend the calendar in this folder. Requirements: - Support several Google accounts, each with its own refresh token in ./data/, and show their calendars together with a color per account. - Add read-only ICS feeds (CALENDAR_ICS_URLS in .env, comma separated) for Outlook or others, cached for 15 minutes. - Slot copying treats every source as busy; creating events only writes to Google calendars. - Show a banner when a source fails instead of silently hiding its events. - Update the README.
Add a read-only availability page to the calendar in this folder. Requirements: - A command that renders the next 14 days of free slots, with the same 30-minute buffers, as a static HTML page with a time-zone picker (Intl.DateTimeFormat), written to ./published/. - No booking form: the page shows slots and a mailto: link with the chosen slot in the subject. - Regenerate on demand and delete the folder with an unpublish command. - Update the README with how to put ./published/ on any static host.
People who live in their calendar pay for speed and time-zone handling: reading several zones at once, pasting free slots into an email, scheduling on behalf of someone else. At $35 a month it is a tool for founders, executives and assistants for whom calendar time is the job.
Estimate · Runs on your machine against the free Google Calendar API, so there is no monthly bill. The build is token usage on your agent plan.
| Plan | Monthly | Annual, per month | What you get |
|---|---|---|---|
| iOS only | $0/user | $0/user | iOS calendar, drag and copy availabilities, multi-time zone conversion, auto-merge of duplicate events, dark mode. |
| iOS & Desktop | $35/user | $25/user | Everything in iOS only plus unlimited personal booking links, group polls, the Mac and PC desktop app, team scheduling, the Mac menu bar app and removal of the Created with Vimcal event signature. |
| EA Scheduling | $85/user | $68.75/user | Everything in iOS & Desktop plus 5 simultaneous time zones, auto-created and auto-deleted calendar holds, collaborative spreadsheets for large meetings, calendar audits and weekly metrics, per-executive preferences and one-click account handoff. |
| Enterprise | custom | — | SAML SSO with SCIM, a custom MSA and DPA, advanced security controls, security questionnaires, a dedicated support manager and custom billing. |
Free covers the iOS app only: calendar, drag-and-copy availabilities, multi time zone conversion, duplicate-event merging and dark mode.
Kinda. The core is a weekend build with the prompt on this page, but real gaps remain: Outlook and Exchange calendars in the same view, The iPhone app and the Mac menu bar app.
About $35 a month on the iOS & Desktop plan per seat, $420 a year (checked 2026-10-19).
Outlook and Exchange calendars in the same view; The iPhone app and the Mac menu bar app; Booking links, group polls and team scheduling; One-click Zoom, Teams and Meet links on events; The polish: instant rendering and every shortcut Vimcal ships. If any of those matter to you, keep paying.
Yes: Notion Calendar (free), Google Calendar (free), Cal.diy (open source).