C'era una volta intraprende una nuova direzione creativa in questa settima stagione, incentrata su una versione più adulta di Henry Mills, interpretata da Andrew J. West, padre di una bambina di nome Lucy (Alison Fernandez). Jennifer Morrison (volto di Emma Swan), Jared S. Gilmore (Henry), Ginnifer Goodwin (Mary Margaret Blanchard/Biancaneve), Josh Dallas (David Nolan/Principe Azzurro) ed Emilie de Ravin (Belle) lasciano quindi il cast regolare, in alcuni casi apparendo nei nuovi episodi in qualità di guest star. In aggiunta a West e Fernandez, al cast regolare si aggiungono Dania Ramirez (interprete di una versione più adulta di Cenerentola), Gabrielle Anwar (Victoria Belfrey/Lady Tremaine) e Mekia Cox (Tiana/Sabine). Rebecca Mader (Zelena/Perfida Strega dell’Ovest), inoltre, è retrocessa al grado di ricorrente.