Skip to content

Repository files navigation

YourCal

YourCal is a reusable scheduling-product starter kit: a responsive landing page, a Free/Pro application, public booking pages, Supabase persistence, and a Google Calendar integration layer.

The repository is designed to work in two modes:

  • Demo mode: run it immediately without credentials. Data is temporary and resets on refresh.
  • Connected mode: add Supabase credentials. Authentication, event types, availability, bookings, plans, and calendar connections use the included backend.

Included

  • Responsive marketing site and pricing
  • Passwordless email and Google sign-in
  • Free and Pro workspace plans
  • Event types and public booking links
  • Weekly availability and date-override schema
  • Transactional booking creation with overlap protection
  • Dynamic monthly availability generated from schedules, existing bookings, buffers, notice rules, and Google free/busy data
  • Google Calendar OAuth token encryption, refresh, calendar listing, free/busy checks, and event creation
  • Row Level Security for customer data
  • Supabase migrations, seed data, and Edge Functions
  • Vercel configuration
  • Setup instructions for people using Codex or Claude Code

Quick preview

npm install
npm run dev

Open http://localhost:5173. Without .env.local, YourCal automatically uses demo mode.

Connect the backend

Follow docs/SETUP.md. The short version is:

  1. Create a Supabase project.
  2. Copy .env.example to .env.local and add the project URL and publishable key.
  3. Link the repository with the Supabase CLI.
  4. Push the included migration and deploy the Edge Functions.
  5. Configure Google OAuth and the Calendar API.
  6. Import the GitHub repository into Vercel and add the same browser-safe environment values.

Repository map

src/
  config/product.js       Brand, demo profile, pricing, and feature switches
  lib/supabase.js         Browser client and connected-mode detection
  services/auth.js        Magic-link and Google authentication
  services/data.js        Application data operations
supabase/
  migrations/             Versioned database schema and security policies
  functions/              Protected booking and Google Calendar operations
  seed.sql                Reproducible plan data
docs/
  SETUP.md                Complete installation guide
  GOOGLE_CALENDAR.md      Google-specific setup and testing
  VERCEL.md               Recommended deployment flow
  AI_ASSISTANTS.md        Codex and Claude Code workflow

Customization

Start in src/config/product.js. Change the product name, public domain, pricing, default profile, and feature switches there. Replace the sample avatar and demo copy before distribution.

Do not place service-role keys, Google client secrets, refresh tokens, database passwords, or Stripe secrets in any VITE_ variable. Vite variables are shipped to the browser.

Plans without Stripe

Free and Pro are stored in plan_catalog, and each workspace references a plan. Browser users cannot change that field. Until Stripe is added, update a workspace plan from a trusted server process or the Supabase dashboard.

Deployment note

Vercel is the recommended frontend host. Its Hobby plan is free for personal, non-commercial projects; professional or commercial deployments should use the appropriate Vercel plan. Supabase hosts the database, authentication, and server functions separately.

Distribution checklist

Before selling or sharing a copy:

  • Replace all sample branding and copy.
  • Add your commercial template license and support terms.
  • Add real Terms and Privacy pages.
  • Verify OAuth redirect URLs for the final domain.
  • Run the database and security checks in docs/SETUP.md.
  • Add production rate limiting or bot protection to public booking traffic.
  • Do not include .env.local, provider secrets, test-user data, or internal QA captures.

About

Open-source scheduling starter kit with Supabase, Google Calendar, and Vercel setup guides.

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages