What if your daily planner opened instantly, worked in your browser, and was so fast you could craft your entire day without touching the mouse? Meet VimCalendar, a free in-browser day planner that stores everything in localStorage and speaks fluent Vim. No signup, - just an elegant, keyboard-first canvas for your day.
Why This Tool Exists
Most planning tools try to be everything: team collaboration, Kanban, chat, templates, AI, and a kitchen sink of integrations. That’s great - until you just want to map a day from 06:00 to 22:00 and get to work. The result is familiar friction:
- Account creation gates a simple checklist.
- UIs nudge you to “invite your team” when you’re solo.
- Overlapping calendars, workspaces, and sidebars steal attention.
This planner flips the script. It embraces focus over features:
- Client-only: your data lives in localStorage; nothing goes to a server.
- Vim-native: if hjkl is muscle memory, you plan at the speed of thought.
- Two clear views: Day (default) and Week—so you never drown in options.
- Optional data sync: If you want to open the app on mobile, create an account and sync immediately.
The goal: a frictionless, keyboard-driven day planner that respects your time and attention.
Key Features (At a Glance)
- Keyboard-first navigation — Move by time with j/k, by day with h/l, jump to top/bottom with gg/G, and repeat the last change with .. Visual selections (v/V) let you operate on time ranges. Undo/redo with u / Ctrl-r.
- Insert & edit with a minimal overlay — Press i, a, o/O, or I/A to add or edit tasks. A focused modal lets you set Title, Start, End, then save.
- Smart event blocks — Adjacent time slots with the same title render as a single event card with start–end times, creating clear blocks for deep work.
- Consistent color-coding — Event colors are generated from the task title, giving you automatic, consistent labeling without manual tags.
- Search & jump — Hit / to find any task; use n/N to move through matches. Matched slots are highlighted as you scan.
- Command line power — Use :today, :goto YYYY-MM-DD, :set view=day|week step=30 daystart=06:00 dayend=22:00, :export (JSON to clipboard), and :import {json}. Save with :w.
- Status bar clarity — The footer shows the current date + time under the cursor, your slot size (e.g., 30m), and day boundaries like 06:00–22:00. Visual selections display exact time ranges.
- Mobile-friendly — Thoughtful media queries bump tap targets and slot heights, making planning on a phone surprisingly pleasant.
How to Use VimCalendar (Step-by-Step)
1) Open and orient
- Open the single HTML file. You’ll land on DAY view for today.
- Use j/k to move up/down by one slot (30 minutes by default) and h/l to move to the previous/next day.
2) Insert your first task
- Press i (or o/O) to open the Insert / Edit panel.
- Type a Title, then set Start and End.
- Hit Enter or click Save. Your event appears as a colored block spanning the chosen time.
Power tip: Make a visual selection with v across several slots first; the insert dialog pre-fills start/end from your selection, speeding up block scheduling.
3) Edit and restructure quickly
- Place the cursor on a slot and press i to edit.
- Delete ranges with d + motion (e.g., d3j deletes three slots below).
- Yank/paste (y/p) and even record macros (q{a-z} … @{a-z}) to repeat formatting across days. Undo with u, redo with Ctrl-r.
4) Search and jump
- Press / and type part of a task name; n jumps to the next match.
- Matched slots are highlighted so you can scan the whole day or week.
5) Tweak view and working hours
- Enter :set view=week to see a 7-day grid; page weeks with Ctrl-f / Ctrl-b.
- Change slot length or day bounds with :set step=15 daystart=05:00 dayend=23:00. The app gracefully resizes your data to fit the new structure.
6) Export/backup and import
- Type :export to copy a full JSON snapshot (settings + days) to your clipboard.
- Restore or migrate by running :import {…json…}. Since all data is local, this is your simplest backup strategy.
FAQ
Where is my data stored? Is it private?
All data is saved to your browser’s localStorage under a single key. Nothing leaves your machine. You can verify this in DevTools or by reviewing the code.
Does it work offline?
No, you need internet access to open the page. But you can simply download the page as HTML and use it offline.
Can I back up or move my data to another device?
Use :export to copy a JSON snapshot to your clipboard. On another browser/machine, open the tool and run :import {…} with that JSON to restore.
Will it work in my browser?
It’s built with standard HTML/CSS/JS and tested on modern Chromium-based browsers. It avoids heavy frameworks and should work anywhere that supports localStorage and standard keyboard events.
Is it really free? Any limitations?
Yes - free and no signup. The main limitation is that data is per-browser/device unless you export/import manually. That trade-off is what enables the tool’s privacy and speed.
Does it support recurring events or reminders?
Not natively. The philosophy is to keep the core simple and blazing fast. Use macros, yanks/pastes, or export/import if you want to replicate patterns.
How can I access this from other devices?
Simply create an account and create your own version of the app by clicking the notification that shows up when you open the app while logged-in.