mothermachine

Browse / Scheduling and staffing

newdle

CERN's Doodle-style meeting poll with Exchange free/busy, configured through one Flask config file.

Adaptable Business appWeb app Deterministic PythonJavaScript License: MIT

newdle, from the Indico team at CERN, lets an organiser propose candidate slots, see when participants are free from Exchange free/busy, and collect answers on a poll. It is a Flask backend with a React frontend, configured in newdle.cfg (SSO over OIDC, database, SMTP, free/busy providers) and shipped with Docker Compose. The JSON API behind the UI is not documented for agents.

Use it when
  • my organization has SSO and Exchange and I want a when-are-you-free poll that stays inside our network
  • I want a Doodle without ads or accounts for participants, backed by a team that runs it at CERN scale
Gotchas
  • No local accounts: login requires an OIDC provider through Flask-Multipass; SKIP_LOGIN is for development only
  • Free/busy is Exchange only; Google and CalDAV providers are 'work in progress' per the README
  • Creating the final meeting in Indico is still unfinished
  • Last push 2026-04-24, near the edge of the six-month window

Last activity Apr 24, 2026. Fit: adaptable 3, operable 1.

Editions

Free · Free open source

  • Clonegit clone https://github.com/indico/newdle
  • ImageContainer

For agents: JSON · Markdown

Adaptable: what is yours to change

Make it yours

Config only4 things to edit

Copy newdle/newdle.cfg.example to newdle.cfg and set SECRET_KEY, SQLALCHEMY_DATABASE_URI, the MULTIPASS_AUTH_PROVIDER_LOGIN block with your OIDC metadata URL and client credentials, EMAIL_HOST and friends plus NOREPLY_ADDRESS, and FREE_BUSY_PROVIDERS (exchange, or random for testing) with the Exchange settings. PROXY, TOKEN_LIFETIME and NEWDLE_CODE_LENGTH tune behavior. docker-compose.yml runs the production-like stack.

Env vars
none
Config files
newdle/newdle.cfg.example newdle.cfg docker-compose.yml .env
Prompt files
none
Accounts you need
an OIDC identity providerMicrosoft Exchange (free/busy, optional)

Source

Code stack

Languages
PythonJavaScript
Frameworks
FlaskFlask-MultipassSQLAlchemyAlembicReact
Package manager
pip
Database
PostgreSQL
Hosting target
docker
Built
Human-written (recorded, never ranked)

Evidence and confidence

FieldWhere it was seenConfidence
formFactorREADME: Flask backend and React frontend served together; docker compose targets95%
executionModelno model SDK or AI feature95%
operabilityno documented API, MCP or CLI; the React app calls Flask JSON routes that are not documented for external use80%
effortnewdle/newdle.cfg.example read this run; every setting is commented95%
editionsREADME: MIT with the CERN privileges note; no hosted offering95%
activeshortlist pushedAt 2026-04-24–
reach0%

Open questions

  • Operable fit kept at 1 per triage because the Flask JSON API exists but is undocumented and session-authenticated; no Operable capability claimed. Curator to decide
  • Is an OIDC provider a hard requirement, or does Flask-Multipass allow a local provider in production?

Sources