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]


Automatic Flags

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


Maintainer's Corner

Package maintainers

For package maintainers and hackage trustees


Versions [RSS],,,,,, (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
Reverse Dependencies 1 direct, 0 indirect [details]
Executables schedule-planner
Downloads 3911 total (23 in the last 30 days)
Rating (no votes yet) [estimated by Bayesian average]
Your Rating
  • λ
  • λ
  • λ
Status Docs not available [build log]
Last success reported on 2016-12-08 [all 7 reports]

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