A calendar visualizer that parses .ics files, geocodes event locations, and displays a time-aware schedule with commutes.
- Frontend: React 19, Vite, Tailwind CSS, Mapbox GL JS
- Backend: FastAPI, SQLModel, PostgreSQL, Google Maps API
- Infrastructure: AWS (S3, CloudFront, EC2) via CI/CD pipelines.
For a complete breakdown of the system design, data flow, and infrastructure diagrams, please refer to ARCHITECTURE.md.
- Upload and parse
.icscalendar files - Geocode event locations
- Visualize daily schedules with estimated commute times
- Share schedules via unique links
cd backend
python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt
uvicorn app.main:app --reloadcd ../frontend
npm install
npm run devDuring development, compile Tailwind CSS into styles.css with:
cd ../extension
npm install
npx tailwindcss -i ./tailwind.css -o ./styles.css --minify --watchTo run this extension in Chrome, open chrome://extensions, enable Developer Mode, and click Load unpacked to select the extension/ folder. Firefox is not supported. Only popup.html, popup.js, styles.css, and manifest.json are needed to run the extension.
Create a .env file in both backend/ and frontend/ based on .env.example.
A Postgres database is required for development. Make sure to set the DATABASE_URL in your backend/.env file. You can run Postgres locally using the provided docker-compose.yml:
# Start a local Postgres instance
docker compose up -d
# Stop and remove the instance and its data
docker compose down --volumesIf DATABASE_URL is not set, the app falls back to a local SQLite database at app/database.db, with no setup required.
We are actively iterating based on user needs.
- Try it out: https://calview.me
- Contact: Submit feedback via the form on the website or open a GitHub issue.