An improved job scheduling system provides for scheduling of a variety of jobs without special purpose coding by the use of time maps to maintain current data, including the preferred path through the shop, as well as scheduling jobs around bottleneck shop resources in a dynamic manner.