Inspiration
During fast-paced meetings or brainstorming sessions, action items often end up scattered across quick notes, Slack chats, or raw transcripts. Translating those messy notes into real action usually takes two painful steps: organizing them into a priority list and manually creating calendar events one by one. I wanted to build a simple tool that bridges the gap between chaotic text and calendar apps, letting you import scheduled events into your daily workflow without any tedious setup or OAuth permissions.
What it does
Chaos-to-Calendar processes unstructured meeting notes or casual text dumps and extracts:
- Prioritized Action Items: Automatically filters out document titles/headers, identifies true actionable tasks, assigns priority levels (High, Medium, Low), and provides an interactive checklist with 1-click Markdown export (
- [x]/- [ ]) ready for Linear, Jira, or GitHub Issues. - RFC 5545 .ics Calendar Events: Identifies scheduled calls and relative deadlines (e.g., "tomorrow 2 PM" or "Friday 5 PM"), converts them accurately using the client's local reference time, and exports standard
.icsfiles that import directly into Google Calendar, Apple Calendar, Outlook, and desktop managers like KOrganizer. - Multi-Scenario Preset Testing: Includes built-in quick selectors for distinct real-world formats: structured Engineering Syncs (sprint tasks & deadlines), unstructured Messy Chats (casual WhatsApp/Slack conversation dumps), and streaming Brain Dumps (long-term untimed to-dos).
- Zero OAuth Friction: Runs purely on client-side calendar generation without requiring third-party logins, calendar read/write permissions, or cloud account connections.
How we built it
The project was developed using a strict plan-first, spec-driven methodology, moving through defined milestones:
- Scope & PRD: Defined strict boundaries, user stories, and target edge cases in
devpost/scope.mdanddevpost/prd.md. - Technical Specification: Documented data schemas, validation layers, and architecture in
devpost/spec.md. - Implementation & Slices: Built using Bun, Vite, React, TypeScript, and Tailwind CSS.
- A Bun backend API validates structured LLM extraction against strict Zod schemas while factoring in client timestamp and timezone anchors.
- A pure client-side RFC 5545 generator formats calendar payloads with proper CRLF line endings, special character escaping, and all-day event parameters.
- Verified calendar formatting with automated test suites before connecting the front-end interface.
Challenges & What we learned
- RFC 5545 Specification Rigor: Desktop and web calendar engines strictly enforce RFC 5545 specifications. Generating clean line endings, handling escaping rules, and properly formatting all-day events required meticulous care and dedicated unit testing.
- Deterministic Relative Date Anchoring: Handling relative dates like "Monday 10 AM" or "by Friday evening" accurately required binding the prompt context to the client's actual timezone and reference timestamp, preventing discrepancies between system clocks.
- Spec-Driven Discipline: Keeping the application focused on its core utility prevented unnecessary scope creep and made delivering a reliable tool straightforward.
Built With
- anthropic
- antigravity
- bun
- gemini-3.8-flash
- google-gemini
- react
- tailwind
- typescript
- vite
- zod


Log in or sign up for Devpost to join the conversation.