We consider a mixed-operation ride-hailing system that offers customers the option to request a ride on-demand or to pre-book it in advance. For time-sensitive customers, pre-booking provides a service guarantee at a price premium. From the operator’s perspective, pre-booking allows for planning ahead with higher certainty but may incur the duty to operate unfavorable trips that may even induce a shift in the demand distribution, e.g., in low-demand suburban neighborhoods. So far, the literature on ride-hailing systems mainly focused on the pure on-demand setting, and only a few works investigated the effects of pre-booking, assuming pre-booked rides follow the same distribution as on-demand rides. Against this background, we develop an optimization framework for a mixed-operation ride-hailing system, allowing us to study the trade-offs between higher planning certainty and the rise of unfavorable rides due to shifts in the demand distribution. Accordingly, we propose a two-stage stochastic optimization formulation in which the first-stage problem consists of deciding which pre-booking requests to accept, while the second-stage problem involves assigning vehicles to requests and planning routes in the face of uncertain on-demand requests. We develop a scalable solution algorithm that solves simplified versions of the second-stage subproblems using a polynomial-time algorithm. We conduct experiments based on the New York City network using historical yellow taxi trip data. We show that greedily accepting all pre-booking requests decreases the operator’s profit and increases dead mileage compared to the pure on-demand baseline. In contrast, optimal solutions to our formulation lead to increased profit and higher fleet utilization while maintaining customer service quality.