Odel
Sessionplan

Sessionplan

@tim-peters4TypeScriptAGPL-3.0Updated 3w ago

Create and edit visual agendas for workshops, trainings, meetings, and events.

Server endpointStreamable HTTPNo authProbed

This is the third-party server itself — Odel doesn't run it. Hitting this URL directly talks straight to the upstream server with no auth or proxying. Connect through Odel to front it with managed auth.

Sessionplan

Sessionplan is a free, browser-based Progressive Web App for visually planning workshops, trainings, meetings, and events using an interactive timeline.

→ Try it live at sessionplan.de

Features

  • Visual timeline — Drag & drop blocks to build your agenda
  • Automatic time calculation — Start times and durations update instantly
  • Live mode — Follow your plan in real-time during sessions
  • Block types & templates — Custom categories, default library, reusable templates
  • Grouping & breakouts — Parallel sessions, configurable lanes, per-lane facilitators
  • Share & export — Snapshot links, JSON export/import, print-ready PDF
  • Offline-first — Works fully offline after first load (PWA)
  • No registration — All data stays in your browser by default

Tech Stack

  • Vite · TypeScript · React 18 · Tailwind CSS · shadcn/ui
  • react-router-dom · react-i18next · @dnd-kit · Vitest

Getting Started

git clone https://github.com/tim-peters/sessionplan.git
cd sessionplan
npm install
npm run dev

Open http://localhost:5173 (or the port Vite assigns) in your browser.

Self-Hosting

Sessionplan is fully functional without a backend — all data is stored locally in the browser. An optional backend enables the Dynamic Link feature for real-time sync between multiple users.

Dynamic Link (optional backend)

To enable the Dynamic Link feature, deploy a PHP backend that implements the /data/sessions.php REST API (see the API reference). Then set the endpoint URL:

# .env
VITE_SESSIONS_API=https://your-server.example.com/data/sessions.php

If VITE_SESSIONS_API is not set, the Dynamic Link toggle is still available in the UI but all requests will fail gracefully — the planner continues to work fully locally.

See ARCHITECTURE.md for the API contract.

License

Sessionplan is licensed under the GNU Affero General Public License v3.0 (AGPL-3.0).

The AGPL ensures that modifications distributed as a network service must also be open-sourced, protecting the project from commercial forks while allowing free self-hosting.

See LICENSE for the full text.

Contributing

Bug reports and pull requests are welcome! See CONTRIBUTING.md for details.

Security

See SECURITY.md for reporting vulnerabilities.