schedule-planner: Find the ideal lesson layout

[ convenience, data, lgpl, planning, program ] [ Propose Tags ]

Executable program for calculating layouts for fixed grid schedules as are used in many universities and schools. The primary data format for in- and output is json. A deployable server instance of this software is also available.

[Skip to Readme]
Versions [RSS] [faq],,,,,, (info)
Dependencies aeson (>=0.8), base (>=4.7 && <5), bytestring (>=0.10), composition (>=1.0), containers (>=0.5), HTTP (>=4000.2), http-types (>=0.8), mtl (>=2.2), options (>=1.2), text (>=1.2), text-icu (>=0.7), transformers (>=0.4), wai (>=3.0), warp (>=3.0) [details]
License LGPL-3.0-only
Copyright 2015
Author Justus Adam <>
Maintainer Justus Adam <>
Category Data, Convenience, Planning
Source repo head: git clone git://
this: git clone git:// -b master(tag
Uploaded by justus at 2015-06-21T15:19:02Z
Distributions NixOS:
Executables schedule-planner
Downloads 3408 total (26 in the last 30 days)
Rating (no votes yet) [estimated by Bayesian average]
Your Rating
  • λ
  • λ
  • λ
Status Hackage Matrix CI
Docs not available [build log]
Last success reported on 2016-12-08 [all 7 reports]

Manual Flags

Automatic Flags

Use -f <flag> to enable a flag, or -f -<flag> to disable that flag. More info


Maintainer's Corner

For package maintainers and hackage trustees


Readme for schedule-planner-

[back to package description]

The schedule planner Build Status Hackage version

Take an arbitrary list of weighted "lessons" and calculate the most ideal and valid layout for them based on weighing rules.

Base algorithm seems to work, will add UI soon.


  • get the software
    • clone the repository git clone
    • or find the package on Hackage
  • install using cabal cabal install


You may test it right now just executing the program ./dist/build/schedule-planner/schedule-planner

By default it tries to obtain it's input data from testsuite/test.json, but you can specify any file as input using command line options.

Obtain information about the command line arguments using the -h or --help argument.

Since this is mostly intended to be used by myself to calculate a schedule and I attend the 'TU Dresden' there's a scraper script in util/ that gets all the current lessons as json from the website.

Code documentation

The Haddock documentation can be found on the GitHub pages