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.

NestJSTypeScriptPrismaPostgreSQLGoogle APIsSlack (Bolt)Stripe

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.lizcal.com

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.

LizCal landing page highlighting the standalone scheduling workspace

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.

LizCal calendar view showing scheduled events created automatically

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.

LizCal dashboard used to manage billing and workspace setup

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