PLATFORM
LizCal · Standalone scheduling app
Standalone scheduling app and automation backend that automates team coordination by combining Google Calendar, Slack, and Stripe to turn requests into booked events.
Standalone booking workspace
Centralized app where teammates request time, select availability, and finalize meetings without relying on external tools.
Intelligent scheduling
Inbox requests are parsed into structured intents, matched against mutual availability, and turned into Google Calendar events.
Smooth onboarding + billing
Google OAuth links tenants to Stripe customers, while webhooks keep subscription status and access entitlements in sync automatically.
EXPERIENCE
How the product feels
Teams work inside the LizCal web app: requests, availability, confirmations, and billing live in one place, with optional Slack touchpoints.
App-first booking
Users submit requests, select availability, and confirm meetings inside the LizCal web app, with optional Slack pings for teams that want them.

Inbox to calendar automation
Emails to the dedicated inbox are parsed into structured intents; NestJS workflows normalize metadata, score mutual availability, and write events to Google Calendar.

FLOW
Scheduling pipeline
From intent capture to billing-aware booking, every step is automated so coordinators stay out of the loop.
Capture
Web app requests, embeddable forms, and inbox parsing all normalize into a single meeting intent payload.
Score availability
Availability windows are computed across attendees with conflict rules, buffers, and working-hours preferences.
Book + notify
Google Calendar events are created via service accounts and posted back to Slack with join links and reminders.
Sync billing
Stripe webhooks reconcile subscription state so expired teams are downgraded and new seats unlock scheduling immediately.
BILLING
Onboarding + subscription sync
Google OAuth links tenants to Stripe customers; webhooks adjust entitlements when invoices are paid, cards fail, or seats are added.

MODULES
Stack + integration map
Dedicated modules under src/auth,src/gmail,src/chat, andsrc/payment keep integrations isolated and testable.
Core backend
NestJS + TypeScript modules with guards, pipes, and queues for resilient orchestration.
Data layer
Prisma ORM backed by PostgreSQL for structured persistence and transactional writes.
Integrations
Google OAuth/Calendar/Gmail, Slack Bolt bot + slash commands, and Stripe subscriptions + webhooks wired into dedicated modules.
INTEGRATION DETAILS
What each surface delivers
The core backend is NestJS + Prisma, but each integration is encapsulated so Slack, Google, and Stripe evolve independently.
Auth + Google
- OAuth consent + token refresh
- Google Calendar write + availability lookup
- Gmail parsing for inbound requests
Chat + collaboration
- Slack Bolt app with slash commands
- Interactive modals for time selection
- DM confirmations + reminders
Payments
- Stripe Checkout + Billing Portal
- Webhook validation + customer sync
- Subscription-aware scheduling guardrails