Elastisched is an elastic scheduling system for time-constrained tasks and recurring events. It combines deterministic constraints with a C++ optimization engine, an API-first backend, and an interactive calendar UI.
- Flexible "blob"-based event model with schedulable windows and policy flags.
- Simulated-annealing scheduler with configurable cost weights and granularity.
- Recurrence system (
single,multiple,weekly,delta,date). - FastAPI backend for local scheduling, recurrence, and analytics workflows.
- Vanilla JS frontend with day/week/month/year views and scheduling controls.
backend/: FastAPI app, persistence, and scheduling routes.core/: Python scheduling domain primitives (blob, timerange, recurrence).engine/: C++ scheduler +pybind11Python bindings.frontend/: Browser UI served at/ui.learning/: Preference-learning and embedding scaffolding.
backend/README.mdcore/README.mddocs/README.mdengine/README.mdfrontend/README.mdlanding/README.mdlearning/README.mdtests/README.mdbin/README.md
cp .env.example .envdocker compose --env-file .env up --build- Open
http://localhost:8080(recommended) orhttp://localhost:8000/ui.
python3 -m venv .venvsource .venv/bin/activatepip install -r requirements.txtuvicorn backend.main:app --reload --host 0.0.0.0 --port 8000- Open
http://localhost:8000/ui
Common environment variables:
DATABASE_URL(default:sqlite+aiosqlite:///./core.db)ELASTISCHED_PROJECT_TZ(default:UTC)
Use .env.example as the template for local setup.
- Python tests:
pytest -q - C++ engine tests:
cmake -S engine -B engine/build_tests -DELASTISCHED_BUILD_TESTS=ONcmake --build engine/build_testsctest --test-dir engine/build_tests --output-on-failure
MIT. See LICENSE.
