Planning effective itineraries for tourists is a major problem that has been gaining attention over the last years. This paper proposes a new bi-objective integer linear programming model for this problem. Decisions include the choice of the best itinerary to be performed considering multi-period routing, time windows for the visited attractions and the choice of restaurants and hotels. The conflicting objectives considered are: (i) maximizing the level of service offered by the itinerary, and (ii) minimizing the total distance traveled. The problem resolution, even for small instances by exact methods, is limited. This motivated the proposition of a new customized MIP-heuristic based on decomposition, fix-and-optimize and MIP-start, to produce good-quality solutions with moderate computational effort. Tchebycheff’s scalarization method was coupled to this heuristic and multiple compromise solutions were obtained. Extensive results with problem instances of different sizes and characteristics showed a good performance of this approach, capable of producing effective solutions within short runtimes. The analysis of the solutions indicated a strong conflict between the objectives, allowing the user to quantify the losses and gains when one criterion is prioritized over the other. A brief sensitivity analysis of some model parameters revealed interesting managerial insights. Some examples include quantifying the negative impacts in terms of the level of service offered by concentrating hotels and restaurants in the center of tourist attractions, increasing visit and transfer times between attractions and reducing the planning horizon for the entire itinerary. These aspects validate the potential of using this MIP model and applying this MIP-heuristic in real situations.