This paper presents a mathematical programming model that optimizes the daily schedule of maintenance technicians in a railway depot. The aim of the model is the minimization of the associated labor costs, while assigning the different technicians and skills required for each maintenance task. A case study of a Portuguese train operating company is explored, including many technical constraints imposed by the company. A mixed-integer linear programming model is formulated and applied to the case study, while observing the rolling stock schedule and the maintenance tactical plan. The optimized solution shows that the maintenance team could be shortened, as some workers are not necessary to carry out all maintenance actions, suggesting the need for more flexible maintenance crew scheduling and associated labor conditions. The present model is integrated within a tactical maintenance planning model, which finds a feasible annual maintenance plan for the entire fleet, and an operational maintenance scheduling model, which assigns train units to service tasks and schedules the maintenance tasks within the rolling stock. Together, the three models provide a decision framework that can support maintenance planning and scheduling decisions. Finally, the present maintenance crew scheduling model adds a key aspect to the literature: the skills of maintenance technicians.