Two concentric rings — AM inner, PM outer — show today's events as colored arcs, sized by duration. Click an empty ring to create one. Drag to move, resize, or flip it across noon and midnight. Everything edits on the face — no forms.
Click an empty ring for a 30‑minute event snapped to a 5‑minute grid — the title editor opens automatically. Press‑and‑drag instead to set the duration as you draw it.
Move & resize
Drag an arc's body to move it — even across the AM/PM gap, which flips it to the other half of the day. Drag its endpoints to resize. A live readout tracks start, end, and duration.
Crossing noon & midnight
An event can span both rings as two connected arcs sharing one title. One that runs past 24:00 leaves a dashed ghost tail on tomorrow's ring.
Conflicts
Overlapping events on the same ring get a red outline and a warning badge — a heads‑up, not a block.
Now / Next
The clock's empty center shows what's happening right now, or what's next — hidden entirely once nothing's left today.
Ghost days
Yesterday and tomorrow render faintly on the same face — dashed and dim for the past, solid and bright for what's coming.
Eight faces
Classic
Minimal
Bold
Roman
Radar
Contrast
Quiet
Dots
Built on trust
Local‑first
Create, move, resize, and delete today's events fully offline — saved to chrome.storage.local and pushed the moment a connection returns. No confirmation needed.
Undo window
Deleting shows a 30‑second undo toast. The actual removal is handled by a background service worker, so it survives the popup closing.
Your calendar, not ours
OAuth2 straight to the Google Calendar API. Multi‑account and multi‑calendar aware; read‑only calendars lock to prevent accidental edits.
No framework
Vanilla HTML, CSS, and JS with hand‑rolled SVG rendering. No build step, no dependencies to rot.