Concepts and technologies disclosed herein are directed to the optimization of OTA file distribution for connected cars based upon a heuristic scheduling algorithm. According to one aspect disclosed herein, a system can execute instructions of a heuristic scheduling algorithm to schedule distribution of OTA of a file to each connected car of a plurality of connected cars operating in communication with a radio access network (“RAN”). The heuristic scheduling algorithm can set a day value equal to zero. The heuristic scheduling algorithm can determine if a number of unscheduled connected cars of the plurality of connected cars is equal to zero. When the number of unscheduled connected cars of the plurality of connected cars is not equal to zero, the heuristic scheduling algorithm can set the day value equal to the day value incremented by one (e.g., from DAY 0 to DAY 1, from DAY 1 to DAY 2, and so on for a given scheduling time window, such as 30 days), can set a schedule time value equal to zero, and can set a list of connected car candidates equal to a list of unscheduled connected cars. The heuristic scheduling algorithm can then sort in ascending order, for the schedule time value, a plurality of cells of the RAN by a sum of a first set of connected cars connected to a cell of the plurality of cells and a second set of connected cars connected to all neighbor cells of the cell, thereby creating a sorted list of cells. The sorted list of cells can include a number of sorted cells of the plurality of cells. The heuristic scheduling algorithm can then select a first cell from the sorted list of cells. The heuristic scheduling algorithm can select a connected car of the plurality of connected cars connected to the first cell that is connected to a fewest number of cells of the plurality of cells during a time between the schedule time value to a sum of the schedule time value and a schedule unit value, and that has a longest connection duration with the first cell. The heuristic scheduling algorithm can delete all cells connected to the connected car and any neighbor cells during a time between the schedule time value to a sum of the schedule time value and a schedule unit value, thereby creating a set of deleted cells. The heuristic scheduling algorithm can remove all connected cars that are connected to the set of deleted cells during a time between the schedule time value to a sum of the schedule time value and a schedule unit value, from the list of connected car candidates. The heuristic scheduling algorithm can determine if the number of sorted cells in the sorted list of cells is equal to zero. When the number of sorted cells in the sorted list of cells is equal to zero, the heuristic scheduling algorithm can update the schedule time value to be equal to the sum of the schedule time value and the schedule unit value. The heuristic scheduling algorithm can determine if the schedule time value is equal to an end of the value. When the schedule time value is equal to the end of the day value, the heuristic scheduling algorithm can again determine if the number of unscheduled connected cars of the plurality of connected cars is equal to zero, and if so, end execution. When the heuristic scheduling algorithm determines that the number of unscheduled connected cars of the plurality of connected cars is equal to zero, the heuristic scheduling algorithm can end execution. When the heuristic scheduling algorithm determines that the number of sorted cells is not equal to zero, the heuristic scheduling algorithm can select a next cell from the sorted list of cells.