Heat oven to 350°F; oil a 9x13-inch dish.
Heat oil in a large skillet over medium; cook onion and garlic 3-4 minutes until softened, then spinach about 2 minutes until wilted. Cool slightly.
Whisk eggs, half-and-half, oregano, basil, salt, and pepper in a large bowl.
Layer bread, spinach mixture, tomatoes, olives, and feta in dish.
Pour eggs evenly over filling; press gently to submerge bread.
Cover tightly with foil; refrigerate at least 1 hour or overnight, or freeze for later.
Bake covered 30 minutes, then uncovered 10 minutes until eggs set and top is lightly golden. Cool 5 minutes. If frozen, thaw refrigerated overnight before baking.