application public active Verified 2026-04-22

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

api_keys.write

Manage Calendar machine credentials

Resource pattern: none

availability.read

Read weekly availability rules and overrides

Resource pattern: none

availability.write

Update weekly availability rules and overrides

Resource pattern: none

bookings.read

List and inspect bookings

Resource pattern: none

bookings.write

Cancel or reschedule bookings

Resource pattern: none

embed.issue

Issue embed tokens for third-party websites

Resource pattern: none

event_types.read

List event types

Resource pattern: none

event_types.write

Create, update, or deactivate event types

Resource pattern: none

external_sync.write

Connect or revoke external calendar sync sources

Resource pattern: none

host.read

View host profile and handle

Resource pattern: none

host.write

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.