Preheat oven to 350°F. Grease a 9x13-inch baking dish with cooking spray or butter.
Heat olive oil in a large skillet over medium heat. Sauté onion until softened, about 5 minutes. Add garlic and spinach, cooking until spinach is wilted, about 2-3 minutes. Remove from heat.
In a large bowl, whisk together eggs, milk, oregano, salt, and pepper until well combined.
Layer the cubed bread in the prepared baking dish. Top with the sautéed spinach mixture, cherry tomatoes, olives, and feta cheese.
Pour the egg mixture evenly over everything, pressing down gently to ensure the bread absorbs the liquid.
Bake for 40-45 minutes, until the center is set and the top is golden brown. Let cool for 10 minutes before serving.
To freeze: Let cool completely, cut into portions, wrap individually in plastic wrap and foil, and freeze for up to 3 months. Reheat in the microwave for 2-3 minutes or in a 350°F oven for 20 minutes.