Pour olive oil into a 10 inch cast iron or oven-safe skillet over medium heat. Once hot, add the shallots and cook for 2-3 minutes until softened. Add the minced garlic and cook an additional minute until fragrant. Remove from heat and set aside.
Whisk the eggs and milk together in a large bowl. Add the parmesan, salt, pepper, cooked shallots and garlic and stir together.
Add the spinach to the egg mixture in batches and stir until combined. Pour the frittata mixture into the skillet and bake in the oven for about 25 minutes until the frittata is puffy and the middle is set.
Remove from the oven and let rest for 10 minutes before slicing and serving.