This paper describes the design of the Bus Timetabling System (BTS) we have developed for one of the largest privately held bus companies in the world. This Bus Company operates close to 3,500 buses and employs over 7,500 bus drivers. The BTS generates a timetable for each bus route using “distributed constraint-based search” (DCBS). The DCBS algorithm combines techniques of constraint programming, heuristic search, with distributed scheduling. This allows multiple types of constraints to be considered, ensures that idle resources can be shared, and yet generates a timetable within reasonable time. The Bus Timetabling System also determines the bus captain duty assignments for the scheduled bus routes. This paper focuses on both the AI methodologies used and the design of the client-server multi-tiered architecture. We used a distributed object architecture to implement our distributed scheduling system.