The vision of urban air taxis is edging closer to a reality, with many companies (Volocopter, Lilium, Aurora, etc.) actively developing prototypes of aircraft designed for intra-city transit. While many engineering and regulatory concerns must be addressed first, the concept of urban air mobility opens up many interesting problems for exploration. For instance, given that such aircraft will only land at specifically designed ports, where should these ports be placed throughout the city? Once these ports are placed, where should the air taxis travel to satisfy as many requested trips as possible? We must keep in mind the finite capacity of the aircraft and the ports, the finite battery life of the aircraft (as most prototypes in development are electrically powered), and the time windows for passengers requesting rides. Given such constraints, as well as a set of typical trip demand data throughout the day, where should the aircraft be scheduled to satisfy the most demand? Demand data is given in the form of origins, destinations, and time windows. With the goal of on-demand urban mobility, we explore routing customer trips dynamically. Given that flights are initialized to some schedule, how can the schedule be modified mid-day to include new customers? We have developed a set of mixed integer programs and heuristics for addressing these questions. The output can then be used to perform sensitivity analysis on the parameters that remain unknown, such as flight speed and aircraft capacity, and could inform engineering decisions as prototype aircraft are developed.