In a medium bowl, mix together eggs, milk, half and half, sugar, vanilla, cinnamon, and zest if using.
Add about 3 cups of the bread cubes to the casserole dish or pan. Layer sliced apples on top and add remaining bread cubes. Pour egg mixture on top, cover, and refrigerate overnight.
In the morning, remove French Toast Casserole from the refrigerator and preheat oven to 350°F.
If adding streusel topping, in a medium bowl, mix all ingredients using a pastry cutter or fork (or prepare the night before) and sprinkle over the top of the dish.
Bake uncovered for 50-60 minutes or until a knife comes out clean. If the top is getting really browned, loosely tent with foil for remainder of cook time.
Once done, remove from the oven and allow to rest for 10 minutes before serving. The French toast casserole puffs up while baking and settles after it's been out of the oven for a few minutes.
Notes
Nutritional information does not include optional streusel topping.
You can freeze this casserole 2-3 months ahead of baking. Assemble in the baking dish, cover with aluminum foil, and then plastic wrap and freeze. Thaw in the refrigerator before baking.
Leftovers can be refrigerated for up to 3 days, or frozen for up to 3 months. Cover with foil to reheat in the oven or air fryer.