  We introduce the notion of a scheduling problem which is a boolean function
$S$ over atomic formulas of the form $x_i \leq x_j$. Considering the $x_i$ as
jobs to be performed, an integer assignment satisfying $S$ schedules the jobs
subject to the constraints of the atomic formulas. The scheduling counting
function counts the number of solutions to $S$. We prove that this counting
function is a polynomial in the number of time slots allowed. Scheduling
polynomials include the chromatic polynomial of a graph, the zeta polynomial of
a lattice, the Billera-Jia-Reiner polynomial of a matroid.
  To any scheduling problem, we associate not only a counting function for
solutions, but also a quasisymmetric function and a quasisymmetric function in
non-commuting variables. These scheduling functions include the chromatic
symmetric functions of Sagan, Gebhard, and Stanley, and a close variant of
Ehrenborg's quasisymmetric function for posets.
  Geometrically, we consider the space of all solutions to a given scheduling
problem. We extend a result of Steingr\'immson by proving that the $h$-vector
of the space of solutions is given by a shift of the scheduling polynomial.
Furthermore, under certain niceness conditions on the defining boolean
function, we prove partitionability of the space of solutions and positivity of
fundamental expansions of the scheduling quasisymmetric functions and of the
$h$-vector of the scheduling polynomial.
