T Topolo Docs
application public active Verified 2026-06-01

Calendar

Cloudflare-native scheduling and bookings application with public booking pages, availability, invitations, recurrence, and Google/Microsoft/CalDAV free/busy sync.

Documentation Map

What It Is

Cloudflare-native scheduling and bookings application with public booking pages, availability, invitations, recurrence, and Google/Microsoft/CalDAV free/busy sync.

Architecture

Owners: platform-experience

Source repos:

Dependencies: topolo-auth, topolo-chat, topolo-nexus, topolo-notify, applications-packages

Repo shape

No repo surface entries were detected from the registered repo paths.

Runtime Surfaces

Hosts:

https://calendar.topolo.app https://calendar.stg.topolo.us

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: no

Calendar is a Worker + D1 + per-host Durable Object application. Runtime service identity resolves from the Auth-owned service slug topolo-calendar instead of checked-in concrete srv_* ids. D1 is the system of record for hosts, event types, availability rules and overrides, bookings, attendees, delivery receipts, persisted slot holds, recurrence series/exceptions, external calendar metadata, encrypted external calendar credentials, OAuth callback state, and imported external busy blocks. CalendarHostDO (keyed by host handle) serialises concurrent booking attempts, writes holds through to D1, caches availability windows, and confirms bookings only after persistence succeeds. Calendar emits `calendar.booking.invite_requested`, `calendar.booking.updated`, `calendar.booking.cancelled`, and `calendar.booking.reminder_due` through TopoloNotify; Calendar builds the RFC5545 ICS payload with stable UID, incrementing sequence, REQUEST/CANCEL methods, and TopoloNotify owns template rendering, external recipient routing, Nexus attachment forwarding, retries, dispatch audit rows, provider identity, and optional provider message ids when the provider returns one. Public booking pages (/<handle>/<event-type>) plus availability/hold/confirm and token-backed manage endpoints are unauthenticated by design. Public manage links support invitee view, cancel, and reschedule without a Topolo account. Admin APIs cover booking detail/edit/reschedule/cancel/resend, availability override CRUD, Google Calendar OAuth FreeBusy sync, Microsoft Graph getSchedule sync, CalDAV REPORT sync, manual/ICS busy-block import, and provider connection removal. Recurrence supports daily/weekly/monthly frequency with interval, count/until, exception dates, and 18-month materialization. Meeting sessions remain owned by Topolo Chat; `chat_meeting` bookings call Chat's internal Calendar bridge and store the returned guest URL in `meetingProviderRef`, while external meeting providers store host-configured links or instructions. The public root renders the shared Topolo LandingPage from Auth-managed Calendar landing config. The admin `/login` route renders the shared first-party Topolo login on the app origin, and signed users enter the shared `TopoloAppShell`. Calendar exposes `GET /api/widget` with the shared `@topolo/sdk` widget response contract. Admin endpoints require bearer tokens validated by @topolo/auth-middleware against the resolved Calendar service id and enforce route-level Calendar permissions.

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_4lfDYNsgOYTb

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, handle, and timezone

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 fallback or no explicit route declared

Observability enabled: no explicit setting found

Failure Modes

  • No wrangler.toml surface was discovered under the registered repo paths.
  • The registered contract source is missing: PlatformApplications/TopoloDocs/src/content/public/applications/calendar.mdx
  • Neither OpenAPI nor README-derived interface detail was found.

Debugging Runbooks

Start with these entrypoints:

  • PlatformApplications/TopoloDocs/src/content/public/applications/calendar.mdx

Change Log / Verification

Lifecycle: active

Last verified: 2026-06-01

Any code change to this system is expected to update the canonical docs in PlatformApplications/TopoloDocs and refresh the verification date.