zeekay 6f1223fd2d add the licence this fork inherits
This repository was public with no LICENSE file. It is a fork, so the grant is
the upstream's: MIT, with the upstream copyright retained as MIT requires.
2026-08-20 10:34:45 -07:00
2026-08-20 10:34:45 -07:00

cal.hanzo.ai

The public booking page for Hanzo: pick a time on someone's calendar and book it. Live at cal.hanzo.ai.

The UI is Cal.com's Booker atom; the backend is Hanzo Base at /v1/calendar. There is no Cal.com Prisma, Postgres or Node API in the path — the booking is created in Base.

Run it locally

pnpm install
pnpm dev

That starts the Vite SPA. Routes are / (landing), /{owner}/{slug} (the booker) and /booking/{uid} (confirmation and cancel).

pnpm build        # build every workspace package
docker build .    # self-contained; builds the bundle and serves it from ghcr.io/hanzoai/spa

The Docker build needs no pre-built app/dist, so a local build and a CI build produce the same image.

Layout

  • packages/calendar — @hanzo/calendar, a thin Hanzo-namespaced wrapper over the published @calcom/atoms. It re-exports Provider and Booker under Hanzo names and owns the atoms' style import. The SPA imports only from here, never @calcom/atoms directly.
  • app — the Vite + React SPA, @hanzo/cal-app.
  • deploy/ — the forge mirror script and the paired Base workflow.

CI

.github/workflows/cicd.yml runs on the self-hosted hanzo-build-linux-amd64 pool, never a GitHub-hosted runner, and pushes ghcr.io/hanzoai/cal:sha-<short> on every push. It never deploys — pinning a tag on the cal App CR is a separate, gated step.

Docs

LLM.md is the deep reference: the Base seam, the debranding boundary, and the CI and mirror setup.

Lineage

The booking UI comes from Cal.com via the published @calcom/atoms package (MIT) — see NOTICE. The backend, the wrapper package and the SPA are ours.

S
Description
cal.hanzo.ai — Cal Booker (debranded @hanzo/calendar) on native Hanzo Base /v1/calendar
Readme MIT
565 KiB
Languages
TypeScript 80.9%
CSS 11.3%
Shell 5.9%
HTML 1.9%