In this PhD thesis, we solve the problem of trip itinerary planning for tourist groups. We assume that each tourist has individual preferences for points of interest and preferences with whom in the group s/he would like to share travelling. This problem has practical relevance, since often tourists prefer going on trip in company, while aiming to visit points of interest that meet their individual preferences. Hence, the proposed solution can relieve the tourists from the task of itinerary planning. However, in terms of optimization, this problem is complex due to its objective to maximize the satisfaction of all tourists, while coping with various individual constraints. We follow a path of three steps for solving the problem at hand. In the first step, we develop an algorithm based on Tabu search for solving the solo trip planning problem, which we compare in quality and time consumption against existing solutions in the literature. In the second step, we define the group trip problem that models the objective and the constraints of itinerary planning for a whole tourist group. Further, we use the algorithm developed in the first step to devise three straightforward approaches for solving group trip problem. The difference between the three approaches is whether tourist travel alone, in subgroups or altogether. Finally, in the third step, we extend our planning algorithm, to develop a sophisticated group trip planning algorithm, which allows tourists to have a personalised trip itinerary throughout the trip. In order to meet individual preferences of tourists, the group trip algorithm combines the itinerary of different tourists so that they are sometimes planned to travel alone, and at other times travel in groups. In order to evaluate the proposed algorithms, we create a new benchmark for the group trip problem by extending the existing benchmarks in the literature for the solo trip problem. We conduct the computational experiments with four different proposed approaches by using the new benchmark. The proposed approaches are evaluated based on the quality and respective computation time. Our experiments show that our sophisticated algorithm finds always a better solution than the other three approaches for our extended benchmarks. In addition, we also make experiments with the aim of identifying two modes of algorithm execution, one which produces high quality solutions with a longer computation time, and the other one that produces slightly worse solutions, but with a much less computation effort.