This paper proposes three novel distributed algorithms to optimally schedule Plug-in Electric Vehicle (PEV) charging. We first define the global optimization problem, where we seek to control large heterogeneous fleets of PEVs to flatten a net Load Curve. We demonstrate that the aggregated objective can be distributed, via a new consensus variable. This leads to a dual maximization problem that can be solved in an iterative and decentralized manner: at each iteration, PEVs solve their optimal problem, communicate their response to the aggregator, which then updates a price signal. We propose three distributed algorithms to compute the optimal solution, namely a gradient ascent and two incremental stochastic gradient methods. We prove their rate of convergence, their precision level and expose their characteristics in terms of communication and privacy. Finally, we use the Vehicle-To-Grid simulator (V2Gsim), and present a set of case studies, with an application to flattening the “Duck Curve” in California.