In this work we formulate a model to solve a type of vehicle scheduling problem, derived from the operation of the mass transit system (MIO) in Cali city, Colombia. Four companies operate the system with 3 types of buses and four depots. Two kinds of tasks should be assigned to operators' buses. A task is a sequence of consecutive travels of a route between two stations: initial and final. Each task should start and should finish in a depot, not necessarily the same. There are two main objectives defined by the operators. One objective is to minimize the total deadhead kilometers between depots and stations where tasks should start or end. The other objective is to minimize the maximum deviation of kilometers (commercial and deadhead) assigned to the operators regarding the ideal quantity of kilometers that they should have, according to the number of their buses in the fleet. We have implemented the proposed model in AMPL using Gurobi solver and we validate it using nine representative instances, generated with real data obtained from the system operation. The results obtained, in all cases, improve the solutions proposed by the company. Model variations are proposed to deal with new desirable constraints for the company. RESUMEN: En este trabajo se formula un modelo para resolver un tipo de problema de programación de vehículos, derivado de la operación del sistema de transporte masivo (MIO) en la ciudad de Cali, Colombia. Cuatro compañías operan el sistema con 3 tipos de buses y cuatro patios. Dos tipos de tareas deben asignarse a los buses de los operadores. Una tarea es una secuencia de viajes consecutivos de una ruta entre dos estaciones: inicial y final. Cada tarea debe comenzar y debe terminar en un patio, no necesariamente el mismo. Hay dos objetivos principales definidos por los operadores. Un objetivo es minimizar el total de kilómetros en vacío entre patios y estaciones donde las tareas deben comenzar o terminar. El otro objetivo es minimizar la desviación máxima de kilómetros (comercial y en vacío) asignada a los operadores con respecto a la cantidad ideal de kilómetros que deberían tener, según el número de sus buses en la flota. El modelo propuesto se implementa con el software Gurobi, utilizando nueve instancias representativas generadas con datos reales obtenidos de la operación del sistema. Todos los resultados obtenidos mejoran las soluciones propuestas por la empresa. Se proponen variaciones del modelo para considerar nuevas restricciones deseables para la empresa.