This paper focuses on the problem of scheduling and routing workers in a courier service to deliver packages for a set of geographically distributed customers and, on a specific date and time window. The crew of workers has a limited capacity and a time window that represents their labor length. The problem deals with a combination of multiples variants of the vehicle routing problem as capacity, multiple periods, time windows, due dates and distance as constraints. Since in the courier services the demands could be of hundreds or thousands of packages to be delivered, the problem is computationally unmanageable. We present a three-phase solution approach. In the first phase, a scheduling model determines the visit date for each customer in the planning horizon by considering the release date, due date to visit and travel times. We use an expert system based on the know-how of the courier service, which uses an inference engine that works as a rule interpreter. In the second phase, a clustering model assigns, for each period, customers to workers according to the travel times, maximum load capacity and customer’s time windows. We use a centroid based and sweep algorithms to solve the resulted problem. Finally, in the third phase, a routing model finds the order in which each worker will visit all customers taking into account their time windows and worker’s available time. To solve the routing problem we use an Ant Colony Optimization metaheuristic. We present some numerical results using a case study, in which the proposed method of this paper finds better results in comparison with the current method used in the case study.