Dataflow is widely used as a model of computation in many application domains, especially domains within the broad area of signal and information processing. The most common uses of dataflow techniques in these domains are in the modeling of application behavior and the design of specialized architectures. In this chapter, we discuss a different use of dataflow that involves its application as a formal model for scheduling applications onto architectures. Scheduling is a critical aspect of dataflow-based system design that impacts key metrics, including latency, throughput, buffer memory requirements, and energy efficiency. Deriving efficient and reliable schedules is an important and challenging problem that must be addressed in dataflow-based design flows. The concepts and methods reviewed in this chapter help to address this problem through model-based representations of schedules. These representations build on the separation of concerns between functional specification and scheduling in dataflow, and provide a useful new class of abstractions for designing dataflow graph schedules, as well as for managing, analyzing, and manipulating schedules within design tools.