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 with integrations and LLM-assisted scheduling flows.
- Vanilla JS frontend with day/week/month/year views and scheduling controls.
backend/: FastAPI app, persistence, routing, integrations, and LLM runtime.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.
Each major folder has its own README:
backend/README.mdcore/README.mddocs/README.mdelectron/README.mdengine/README.mdfrontend/README.mdlanding/README.mdlearning/README.mdmcp/README.mdtests/README.mdbin/README.md
docker compose up --build- Open the app at
http://localhost:8000/ui(or the frontend proxy athttp://localhost:8080).
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)GEMINI_API_KEY,GEMINI_MODELGOOGLE_OAUTH_CLIENT_ID,GOOGLE_OAUTH_CLIENT_SECRET,GOOGLE_OAUTH_REDIRECT_URI,GOOGLE_OAUTH_SCOPES
- 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.
