The movement in public transport networks is organized according to schedules. The real-world schedules are specified by a set of periodic rules and a number of irregularities from these rules. The irregularities appear as cancelled trips or additional trips on special occasions such as public holidays, strikes, cultural events, etc. Under such conditions, it is a challenging problem to capture real-world schedules in a concise way. This paper presents a practical approach for modelling real-world public transport schedules. We propose a new data structure, called repeating trip, that combines route information and the schedule at the starting station of the route; the schedules at other stations can be inferred. We define schedules as semi-periodic temporal repetitions, and store them as pairs of rules and exceptions. Both parts are represented in a tree structure, termed multislice, which can represent finite and infinite periodic repetitions. We illustrate our approach on a real-world schedule and we perform in-depth comparison with related work.