Rail freight distribution operations require assembling trains consisting of multiple freight cars with a common destination, and assigning departure times to the assembled trains. Limits on railyard train assembly capacity restrict the number of trains that may be assembled and, therefore, depart the railyard, per unit time. Each individual car, or unit, in a railyard typically has an associated subsequent destination and preferred due date, as well as an acceptable time window within which the destination location will accept delivery. Railyard planners thus face the recurring problem of determining the assignment of cars to assembled trains, as well as the schedule of train departures within a planning horizon. We propose a 0–1 integer linear program for solving this assignment and scheduling problem under the two objectives of minimizing of the number of required train departures within the week, and maximizing on-time performance. We show that this problem is NP-hard and propose constructive, Lagrangian-based, and neighborhood interchange heuristics for obtaining near-optimal solutions. We also provide computational results that characterize the tradeoff between on-time performance and weekly workload, as measured by the number of weekly train departures.