In many countries, a rail network consists of single lines with sidings where interactions between trains occur (meet, pass). In this paper, we study two issues of these networks: first, the scheduling of freight trains in a single line corridor while ensuring safe interactions and second, the allocation of freight to freight trains regarding the release dates of freight, weight of freight, and weight capacity of the trains. Both of these issues must be addressed when examining real-world freight train scheduling problems. The objective functions of this study are the minimization of a train's travelling time, the allocation of freight to freight trains, and the reduction of tardiness of freight at destination. Both scheduling and allocation problems are presented using integer linear programming models. In addition, an integrated novel heuristic algorithm has been proposed to solve them. Computational results demonstrated through a generated dataset show both model validation and efficiency of the heuristic algorithm. The heuristic algorithm has been designed to incorporate the practical operational railway rules with modest modification. Although its outputs slightly differ from the exact solutions, it can solve both models simultaneously in large scale problems.