Calendar
Cloudflare-native scheduling and bookings application with public booking pages, embeddable widgets, and a cross-app event feed.
Documentation Map
What It Is
Cloudflare-native scheduling and bookings application with public booking pages, embeddable widgets, and a cross-app event feed.
Canonical documentation for Topolo Calendar lives in `PlatformApplications/TopoloDocs`.
Use this repository for implementation only. Local product and operational docs have been retired in favor of the docs application.
See `TopoloDocs` for the runtime contract, auth boundary, permission schema, and failure modes.
Architecture
Owners: platform-experience
Source repos: PlatformApplications/TopoloCalendar
Dependencies: topolo-auth, topolo-chat, topolo-nexus, applications-packages
Repo shape
- PlatformApplications/TopoloCalendar/README.md
- PlatformApplications/TopoloCalendar/index.html
- PlatformApplications/TopoloCalendar/migrations/
- PlatformApplications/TopoloCalendar/package-lock.json
- PlatformApplications/TopoloCalendar/package.json
- PlatformApplications/TopoloCalendar/public/
- PlatformApplications/TopoloCalendar/scripts/
- PlatformApplications/TopoloCalendar/src/
- PlatformApplications/TopoloCalendar/test/
- PlatformApplications/TopoloCalendar/topolo.cloudcontrol.json
- PlatformApplications/TopoloCalendar/tsconfig.json
- PlatformApplications/TopoloCalendar/vite.config.ts
- PlatformApplications/TopoloCalendar/vitest.config.mts
- PlatformApplications/TopoloCalendar/worker-configuration.d.ts
- PlatformApplications/TopoloCalendar/wrangler.jsonc
Runtime Surfaces
Hosts:
https://calendar.topolo.app https://topolo-calendar.topolo.workers.dev No wrangler surface was discovered under the registered repo paths.
API Reference
Coverage: curated
Source: PlatformApplications/TopoloDocs/src/content/public/applications/calendar.mdx
Source exists in repo: yes
Calendar is a Worker + D1 + per-host Durable Object application. D1 is the system of record for hosts, event types, availability rules, bookings, reserved slot-hold audit rows, and external calendar sync metadata. CalendarHostDO (keyed by host handle) serialises concurrent booking attempts, owns short-lived in-memory slot holds, and caches availability windows. Confirmed bookings are written through to D1 before the DO acknowledges success. Meeting sessions remain owned by Topolo Chat and are referenced from Calendar bookings by `meetingProviderRef` once that bridge is enabled; external providers (Microsoft Teams, Google Meet, Zoom) are brokered through Topolo Nexus for metering. The public root renders the shared Topolo LandingPage from Auth-managed Calendar landing config. Public booking pages (/<handle>/<event-type>) and availability/hold/confirm endpoints are unauthenticated. The admin `/login` route renders the shared first-party Topolo login on the app origin, with embedded email/password sign-in enabled by the UI Kit first-party registry, login config reads through `/api/auth/*`, and one-time `sso_code` completion on `/auth/callback`. Signed users without a Calendar host row complete the shared @topolo/onboarding first-run host setup flow before the admin workspace opens. Signed users with a host row enter a shared `TopoloShell` workspace with the shared app launcher mounted immediately for background catalog preload and a default weekly Calendar view backed by `GET /api/admin/bookings`. Admin endpoints require bearer tokens validated by @topolo/auth-middleware against srv_topolo_calendar and enforce route-level Calendar service permissions, accepting Auth's service-scoped canonical grant form such as `srv_topolo_calendar.host:read`. The embed SDK (@topolo/calendar-embed) supports iframe, popup, and floating bubble modes with a @topolo/calendar-react wrapper; embed origins are validated against the service manifest allowlist.
App API page: /reference/apps/topolo-calendar
This system currently relies on a curated or README-derived contract surface instead of a source-controlled OpenAPI spec.
Auth and Permissions
Depends on Topolo Auth: yes
Service IDs:
srv_topolo_calendar API key scopes
Manage Calendar machine credentials
Resource pattern: none
Read weekly availability rules and overrides
Resource pattern: none
Update weekly availability rules and overrides
Resource pattern: none
List and inspect bookings
Resource pattern: none
Cancel or reschedule bookings
Resource pattern: none
Issue embed tokens for third-party websites
Resource pattern: none
List event types
Resource pattern: none
Create, update, or deactivate event types
Resource pattern: none
Connect or revoke external calendar sync sources
Resource pattern: none
View host profile and handle
Resource pattern: none
Create or update host profile and handle
Resource pattern: none
Service permissions
api_keys:write, availability:read, availability:write, bookings:read, bookings:write, embed:issue, event_types:read, event_types:write, external_sync:write, host:read, host:write
Data Ownership
No storage bindings were derived from wrangler configuration.
Queues / Cron / Workflows
Queue bindings:
No queue bindings were detected.
Cron triggers
No cron triggers were detected.
Workflow signals
No explicit queue/workflow script or cron signal was discovered.
Environment Variables and Bindings
Environment variables:
No environment variables were derived from wrangler configuration.
All wrangler bindings
No bindings were derived from wrangler configuration.
Deployments
Deployment environments: default only or not declared
Routes: workers.dev or Pages-only delivery
Observability enabled: no explicit setting found
Build and deploy commands
-
build— PlatformApplications/TopoloCalendar/package.json :: vite build -
deploy— PlatformApplications/TopoloCalendar/package.json :: wrangler deploy
Failure Modes
- No wrangler.toml surface was discovered under the registered repo paths.
Debugging Runbooks
Start with these entrypoints:
- PlatformApplications/TopoloDocs/src/content/public/applications/calendar.mdx
- PlatformApplications/TopoloCalendar/README.md
- PlatformApplications/TopoloCalendar/package.json
Change Log / Verification
Lifecycle: active
Last verified: 2026-04-22
Any code change to this system is expected to update the canonical docs in PlatformApplications/TopoloDocs and refresh the verification date.