Cost reduction and staff retention are important optimization objectives in home healthcare (HHC) systems. Home healthcare operators need to balance their objectives by optimizing resource use, service delivery and profits. Minimizing total travel distances to control costs is a common routing problem objective while minimizing total finishing time differences is a scheduling objective whose purpose is to enhance staff satisfaction. To optimize routing and scheduling, we propose mixed integer linear programming with a bi-objective function, which is a subset of the vehicle routing problem with time windows (VRPTWs). VRPTWs is a known NP-hard problem, and optimal solutions are very hard to obtain in practice. Metaheuristics offer an alternative solution to this type of problem. Our metaheuristic uses the simulated annealing algorithm and weighted sum approach to convert the problems to single-objective problems and is equipped with operators including swapping, moving, path exchange and ruin and recreate. The results show, firstly, that the algorithm can effectively find the Pareto front, and secondly, that minimizing total finishing time differences to balance the number of jobs per caretaker is an efficient way to tackle HHC scheduling. A statistical test shows that the algorithm can obtain the Pareto front with a lower number of weighted sum problems.