This article delves into the Dial-a-Tour Problem (DATP) frequently encountered in local travel agencies, known for their personalized and hands-on customer service. In the DATP, multiple tourist groups are efficiently matched with different vehicles using vanpooling, maximizing vehicle occupancy while ensuring seamless transfers to the local attractions included in their booked tours. Each tourist group is picked up from and returned to their respective hotels after their journey. The predetermined locations and the sequence of visits for each tour are known in advance. Therefore, the primary objective is to minimize the number of vehicles required to fulfill all requests and maintain the desired level of service.To tackle this challenge, the article presents a comprehensive approach. It introduces a mixed-integer linear model, two constraint programming formulations, and a novel operator called the k-buffer insertion operator. This operator serves as the centerpiece of a descent heuristic proposed in the study.Extensive evaluation across a diverse range of randomly generated instances underscores the superiority of the proposed constraint programming formulations over the mixed integer linear programming model. However, it is noteworthy that the proposed heuristic surpasses even the most effective constraint programming formulation. This highlights its remarkable efficiency in solving real-size instances within notably brief computation times. Such prowess underscores the practical utility of this heuristic in effectively tackling the complexities inherent in the Dial-a-Tour Problem.