A free progressive web app for people in recovery. Search 59,000+ meetings by location, build a personal weekly calendar, track sobriety, export to iCal, get AI-generated "What to Expect" guides for new meetings, and email your schedule. All wrapped in a warm, handcrafted interface that feels like a physical planner, not a clinical tool.
People in recovery rely on meetings as the foundation of their daily structure. AA, NA, Recovery Dharma. But finding meetings is fragmented across dozens of regional websites with inconsistent data, broken links, and no way to save anything. The existing tools feel clinical or institutional. Nobody had built something that lets you search 59,000 meetings by location, save them to a personal calendar, export to iCal, track your sobriety date, and get a warm AI-generated guide about what to expect at a new meeting. The goal was a personal planner for sobriety that treats the user like a human being, not a patient.
59K
Meetings aggregated from 237+ national sources across AA, NA, and Recovery Dharma. Searchable by location, day, time, and fellowship.
0
Dependencies and build tools. The entire app is a single HTML file. No framework, no bundler, no node_modules. Just vanilla JS, CSS, and the browser.
14K
Lines in one file. All CSS, HTML, and JavaScript live in index.html. A deliberate architectural choice that keeps deployment instant and complexity low.
Brand Identity
Warm paper, not cold pixels.
The design system was built around one question. What if your recovery planner felt like a physical notebook you carried with you? Warm paper tones, ink-dark text, a gold accent that feels handwritten rather than highlighted. The grid lines, the rounded-nothing borders, the Futura PT uppercase labels. Everything says "personal planner," not "health tech startup." Users can customize their accent color, paper tone, and ink mood, making the app feel like theirs.
Color Palette
Ink
#313131
Ink Light
#5a4a32
Accent
#E49B1D
Paper
#EAE4DD
Kraft
#c8a96e
Headlines / Futura PT
Your meetings. Your schedule. Your recovery.
Body & UI / System Sans-Serif
Find nearby meetings, build your weekly calendar, and track your sobriety. All in one place. Free, private, works offline.
UI Labels & Navigation
Week · Month · All Meetings · My Meetings · Find Nearby
Voice & Tone
Warm, private, never clinical.
Recovery is personal. The app's voice reflects that. Supportive without being preachy, helpful without being condescending. It speaks like a friend who's been there, not a doctor reading from a clipboard.
Privacy as a default, not a feature
The app works without an account. Demo mode lets you explore everything with data stored only in your browser. Sign-in is optional and only exists for cloud sync. No tracking, no analytics on user behavior, no data sold. Recovery is anonymous by tradition. The app honors that.
"Try it first. No account needed. Your meetings stay on your device until you decide otherwise."
Structure, not surveillance
The sobriety tracker counts days without judgment. No streaks, no gamification, no sad notifications when you reset. The calendar shows your meetings without asking why you missed one. The app provides structure. What you do with it is yours.
"Your sobriety date is yours to set, change, or keep private. The calendar is here when you need it."
Nervous is normal
The "What to Expect" feature generates a short, warm guide for any meeting. It describes the room, the format, whether you'll need to speak, what to bring. The tone is always reassuring without being saccharine. It meets people at the moment of highest friction: the gap between wanting to go and actually walking through the door.
"Most people just listen for the first few meetings. You don't have to share. Arrive a few minutes early and someone will probably say hello."
The entire PWA lives in one 14,000-line HTML file. No framework, no build step, no node_modules. This wasn't laziness. It was a deliberate choice. Deployment is a file copy. There's no build to break. The service worker caches one file. For a free tool maintained by one person, simplicity is a feature, not a compromise.
Analog aesthetic
Every design choice reinforces the planner metaphor. Paper-toned backgrounds with subtle grid lines. Ink-dark text. Gold accents that feel stamped, not highlighted. The 3px border radius on everything. Users pick their own accent color and paper tone. The app feels personal in a space where personalization carries real emotional weight.
Privacy by architecture
Demo mode stores everything in localStorage. No account, no server, no trace. Signed-in users sync to Firebase, but the app works fully without it. There's no analytics tracking user behavior. Recovery is anonymous by tradition. The architecture respects that by making privacy the default state, not an opt-in setting.
"What to Expect" AI guides
Nervous about a new meeting? Tap any meeting card and hit "What to Expect" for a warm, AI-generated guide written for that specific fellowship, format, and setting. It tells you what the room will feel like, whether you need to speak, and what to bring. It's the feature that turns "I'll go next week" into "I'll go today."
Geolocation-powered search
The Find Meetings modal lets users search by city or zip code, set a radius, and filter by day, fellowship, and format. Results come back with distance and a match-confidence score. A separate Next.js aggregator crawls 237+ national sources into a unified Postgres database for cross-fellowship coverage.
iCal export and email delivery
Export any single meeting or your entire schedule as a standards-compliant .ics file, with options for one-time or recurring weekly events. Or skip the file and email your formatted schedule directly from the app via EmailJS. Two paths to get your meetings into whatever calendar you already use.
How it serves you
Every piece works for the person, not the platform.
Search across every fellowship.
Find meetings from 237+ national sources in one place. AA, NA, Recovery Dharma at parity. A separate aggregator service does the crawling so the search stays fast and complete, not biased toward whichever fellowship has the loudest directory.
Your meetings follow you across devices.
Sign in once and your meetings, sobriety date, and preferences sync everywhere. Sign-in is optional. The app works fully without an account, with everything stored on your device. Whichever you choose, the app respects it.
Your schedule, in your inbox.
Email yourself or a sponsor your weekly schedule, sobriety milestone, or what to expect at a new meeting. Sent straight from the app in branded templates that match the warm aesthetic. No inbox setup needed.
Works offline. Lives on your home screen.
Install Recovery Calendar on any device. Meetings, your calendar, and your sobriety tracker show up even with no connection. Looks and feels native. Updates quietly in the background when you're back online.
Photograph a flyer. It's in your calendar.
Snap a photo of any meeting flyer or upload a PDF. The app pulls out the names, days, times, and locations and adds them to your calendar. The clipboard-to-calendar friction that kept people from saving meetings is gone.
Make it yours.
Pick your accent color, paper tone, and ink mood. Every component re-tints to match. In a space where personalization carries real emotional weight, the planner feels like your planner, not someone else's product.
Walk into any meeting prepared.
Tap a meeting and get a warm guide for what to expect. Format, room, whether you'll need to speak, what to bring. There's also a chat helper for any other recovery question. The tone is always friend-who's-been-there, never doctor-with-a-clipboard.
Start at your own pace.
First-visit walkthrough covers adding meetings, finding nearby, using the sobriety tracker, and exporting to calendar. Revisitable from Settings anytime. Nothing on the page feels permanent or pressured. Recovery is at the user's pace, the app should be too.