← All templates

Meeting Scheduler

Business & SaaS · React + Node (Express) · 12 @molecule/* packages

Calendly-like scheduling with availability, booking, and calendar sync — with built-in Stripe-backed subscription tiers

Open in Molecule

What is inside

  • auth
  • availability
  • booking
  • calendar
  • email-notifications
  • subscriptions

Screens (18)

  • Landing /
  • Login /login
  • Signup /signup
  • ForgotPassword /forgot-password
  • ResetPassword /reset-password
  • Dashboard /dashboard (signed in)
  • Calendar /calendar (signed in)
  • EventTypes /event-types (signed in)
  • EventTypeEditor /event-types/:id (signed in)
  • BookingPage /book/:slug
  • Availability /availability (signed in)
  • Integrations /integrations (signed in)
  • Settings /settings (signed in)
  • Bookings /bookings (signed in)
  • MeetingDetail /bookings/:id (signed in)
  • BookingConfirmation /book/:slug/confirmed
  • Notifications /notifications (signed in)
  • Billing /settings/billing (signed in)

Data model (7 tables)

  • availability_overrides — id, user_id, date, is_unavailable, start_minute, end_minute, created_at, updatedAt
  • availability_rules — id, user_id, day_of_week, start_minute, end_minute, timezone, created_at, updatedAt
  • bookings — id, event_type_id, host_user_id, invitee_name, invitee_email, invitee_timezone, start_at, end_at, …
  • devices — id, createdAt, updatedAt, userId, name, pushPlatform, pushSubscription, hasPushSubscription
  • event_types — id, owner_id, name, slug, description, duration_minutes, location_kind, location_value, …
  • external_calendars — id, user_id, provider, access_token, refresh_token, calendar_id, sync_enabled, last_sync_at, …
  • payments — id, createdAt, updatedAt, userId, transactionId, productId, platformKey, data, …

API (4 handlers)

  • availability api/src/handlers/availability.ts
  • bookings api/src/handlers/bookings.ts
  • event-types api/src/handlers/event-types.ts
  • profile api/src/handlers/profile.ts

Subscription tiers

free / pro / team — gated by: maxAvailability, maxBookings, maxEventTypes, advancedFeatures, canExport, retentionDays

Built from 12 @molecule/* packages

Browse all @molecule/* packages →

Required secrets

  • DATABASE_URL PostgreSQL connection string
  • MAILGUN_API_KEY Mailgun API key for booking confirmations
  • MAILGUN_DOMAIN Mailgun sending domain

The @molecule/* packages are Apache-2.0. The app you build from this template is yours to export and self-host. Licensing