← Back to Projects
📅

Add to Calendar

A Progressive Web App (PWA) that uses Google Gemini AI to extract event details from screenshots (or any image) and adds them directly to your Google Calendar. Built with React 19, TypeScript, and Vite, backed by a secure Cloud Run bridge, Google Cloud Storage, and privacy-preserving Neon Postgres analytics.

React 19 TypeScript Vite Gemini AI Cloud Run GCS (v2.0) Neon Postgres (v2.1) PWA Google Calendar API

🛡️ Google Approved: The app and branding were fully verified and approved by Google Trust & Safety. Publicly accessible with standard Google OAuth sign-in.

Status ✅ Live (v2.1)
Verification 🛡️ Approved by Google
Type PWA + Cloud Run Backend
Platform Web / Mobile / Android Share
AI Engine Google Gemini (Server-side)
Storage & DB Cloud Storage + Neon

✨ Core Features & What's New

🛡️

Publicly Available & Google Approved

App and branding have been officially verified and approved by Google Trust & Safety. Anyone with a Google account can sign in and schedule events securely without allowlists or security warnings.

🤖

AI-Powered Event Extraction

Uses Google Gemini AI to intelligently parse event titles, dates, times, and locations from screenshots, invites, posters, and photos — eliminating tedious manual calendar typing.

📸

Cloud Image Storage & Attendee Sharing (v2.0)

Uploads source screenshots concurrently to Google Cloud Storage (GCS) in parallel with AI parsing. Automatically embeds a clickable 📸 View Event Image link in the calendar event description so all attendees can view the original image.

Automated 90-Day GCS Lifecycle (v2.0)

Automated GCS bucket lifecycle rules automatically purge old images after 90 days, keeping maintenance overhead and cloud storage costs near zero.

🔍

Source Thumbnail & In-App Lightbox (v2.1)

Embedded 40×40px clickable screenshot preview badge in the event header. Tap to open a sleek glassmorphic lightbox modal to cross-check dates and times against the original screenshot without losing your place, with a 1-click "Open ↗" tab action.

🔒

Privacy-Preserving Analytics (v2.1)

Neon Postgres serverless integration logging activity over HTTPS. User IDs are deterministically hashed via SHA-256 (user_hash), enabling user retention metrics without storing names, emails, or personal identifiers.

🌍

Zero-Latency In-Memory Geo-Location (v2.1)

Uses geoip-lite to resolve client IP addresses (x-forwarded-for) to country and city in microseconds, supplemented by browser timezone and locale — executed via fire-and-forget background promises with zero response overhead.

📆

Seamless Google Calendar Sync

Inserts events directly into your primary Google Calendar with persistent OAuth 2.0 token refresh, branded event footer, and a direct link to view the created event right after creation.

📱

PWA + Android Share Sheet Target

Installable on mobile (iOS/Android) and desktop. Seamlessly receives images directly from the Android System Share Sheet — share an event screenshot from Google Photos directly into Add to Calendar.

✏️

Editable Details & Manual Entry

Review and modify event summary, location, and start/end times with styled @mui/x-date-pickers before confirming, or use manual entry mode to schedule without uploading an image.

🎉

Warm Sunset UI & Smart Feedback

Rich glassmorphic interface with warm sunset amber accents, confetti animations on success, high-contrast error alerts, and image clarity warnings with automatic fallback.

🛠️ Architecture & Backend Pipeline

🌉

Cloud Run Backend Proxy (`auth-bridge`)

A dedicated Node.js 22 LTS microservice deployed to Google Cloud Run. Securely proxies Gemini AI API calls and GCS uploads while keeping secret keys (GEMINI_APP_KEY, CLIENT_SECRET, DATABASE_URL) safely in Google Secret Manager.

Zero-Latency Concurrent Ingestion Pipeline

Source image upload to Google Cloud Storage runs in parallel with Gemini AI extraction promises. Eliminates sequential round-trips and delivers the event confirmation screen in record time.

📊

Serverless Neon Postgres Logging

Captures comprehensive operational telemetry (login, refresh, parse_image latency/status, event_created with attachment flag, manual_entry, and logout reasons) via non-blocking queries.

🚀

Automated CI/CD Deployment

GitHub Actions automated pipeline deploying the backend microservice to Google Cloud Run (region europe-west1) with Node 24 actions, path-based triggers, and automated secret mapping.

← Back to Projects