A fast, keyboard-driven terminal calendar built with Bubble Tea.
- Four Views: Month, Week, Day, and List views with seamless navigation
- Event Management: Create, edit, and delete events with modern modal interface
- Category System: Color-coded event categories with persistent configuration
- KeyJump Navigation: EasyMotion-style instant date jumping (press
f) - Themes: 6 built-in color schemes (cycle with
s) - Vim Keys: Full keyboard navigation with vim-style keybindings
- Smart Layout: Toggleable agenda position and mini-month display
- List View: Chronological event listing with grouped date display
go build -o bubblecal ./cmd/bubblecal/
./bubblecal| Key | Action |
|---|---|
Space |
Cycle views |
f |
KeyJump mode - instant date navigation |
a |
Add event |
e |
Edit event (in agenda) |
d |
Delete event (in agenda) |
? |
Show help |
q |
Quit |
- Move:
h/j/k/lor arrow keys - Jump to today:
tor. - KeyJump:
f→ type letter to jump to any visible date - Switch panes:
Tab
- Toggle mini-month:
m(in week view) - Move agenda:
p(right ↔ bottom) - Themes:
s(6 themes available)
Inspired by vim's EasyMotion, press f to enter jump mode where letter overlays appear on all visible dates. Type any letter to instantly teleport to that date - no more arrow key navigation!
Create and assign color-coded categories to your events. Categories are displayed throughout the interface with their assigned colors and can be easily selected when creating events.
The List view provides a chronological agenda of all upcoming events:
- Groups events by date with clear headers
- Shows "Today" and "Tomorrow" labels for easy scanning
- Displays events with time, category color, and title
- Supports smooth scrolling with
j/kand page navigation withCtrl+u/Ctrl+d - No separate agenda pane needed - the list IS the agenda!
Beautiful, intuitive event creation interface with:
- Field-by-field navigation
- Visual category selector
- All-day event toggle
- Smart time field handling
- Clear error messages and instructions
Events are stored in ~/.bubblecal/days/ as individual files, making them easy to backup or sync. Configuration is saved in ~/.bubblecal/config.json.
Event categories are configured in ~/.bubblecal/config.json with customizable colors:
{
"categories": [
{"name": "Work", "color": "#4287f5"},
{"name": "Personal", "color": "#42f554"},
{"name": "Health", "color": "#f54242"}
]
}Built with Bubble Tea using The Elm Architecture for predictable state management and Lipgloss for styling.



