This paper develops an iterative optimization technique that can be applied to mode scheduling. The algorithm provides both a mode schedule and timing of that mode schedule with convergence guarantees. Moreover, the algorithm takes advantage of a line search, and the number of iterations in the line search is bounded. There are two key ingredients in the algorithm. First, a projection operation is used that takes arbitrary curves and maps them to feasible switching controls. Second, a descent direction that incorporates the projection is calculated using the mode insertion gradient. Similar to derivative-based finite dimensional optimization, the convergence guarantees and sufficient decrease criteria follow from a local approximation of the cost in the direction of the search direction, but this local approximation is not the standard quadratic approximation. An example demonstrates the steps to implement the optimization algorithm and illustrates convergence.