Skip to content

gerchowl/kairos

Repository files navigation

Kairos

CI

Website · ▶ Try it in your browser — the actual Python server on Pyodide/WASM, nothing leaves your machine.

when2meet-style scheduling polls — self-hostable, reverse-proxy-auth friendly, agent-first API (OpenAPI + llms.txt + MCP).

Quickstart

uvx --from kairos-scheduler kairos          # SQLite + demo auth on :8003

or with Docker / a real database:

KAIROS_DB_URL=mysql://user:pass@host:3306/db \
KAIROS_AUTH=header SESSION_SECRET=$(openssl rand -hex 32) \
uvx --from 'kairos-scheduler[mysql]' kairos --host 0.0.0.0

Features

  • Full-day or time-slot polls, when2meet drag grids, heatmaps
  • Public share links + personal email invites (required/optional participants)
  • Convergence light: collecting → ready / partial / blocked
  • Idempotent smart reminders + per-participant contact audit trail
  • Decide a final date → .ics download + "email everyone" with the file attached
  • Light/dark colorblind-friendly theme (Dalton)
  • Agents: REST API (Bearer), /llms.txt, OpenAPI, Swagger UI, MCP server

Deployment model

Kairos trusts identity headers from whatever reverse proxy you already run (KAIROS_AUTH=header): Shibboleth/Apache, oauth2-proxy, Authelia, Cloudflare Access, Tailscale… Respondents never need accounts — share links and invite tokens are self-contained. See kairos/settings.py for all env knobs.

Cookie note for operators: Kairos sets only strictly-necessary cookies (session, signed response-edit token, theme preference) — disclosed on /privacy, no consent banner required (ePrivacy Art. 5(3) / Swiss TCA 45c exemptions). If you add analytics or any third-party embeds to your deployment, that changes — you'll need consent management.

About

when2meet-style scheduling polls — self-hostable, reverse-proxy-auth friendly, agent-first API (OpenAPI + llms.txt + MCP)

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors