Appointments have been widely used in service systems to manage customer arrivals, aiming to smooth customer flow and improve service efficiency. This study considers managing customer appointments for a generic service system consisting of multiple stages of service and multiple servers at least in one stage. The problem is challenging because of the unfixed service order and random service durations, which further cause discontinuous cost function. We propose a simulation-based optimization framework to determine the customer arrival times of the first stage while assuming customer service follows a first-come-first-served rule in the subsequent stages. The goal is to minimize a weighted total expected cost associated with the customer's waiting and sojourn and the server's overtime work. By exploiting conditional Monte Carlo sampling, we smooth the originally discontinuous sample path cost function and propose a tailored stochastic gradient algorithm for a good-performing approximate solution. We conducted a series of numerical experiments, and the results show that our approach significantly outperforms the benchmark strategies in lowering the expected cost. We also discuss the impact of capacity allocation of servers among the stages and provide managerial insights about the system configuration.