In a large skillet, heat the olive oil over medium heat. Add the uncooked Italian sausage, breaking it apart with a spatula. Cook until browned and fully cooked, about 5-7 minutes. Drain any excess fat.
Add the diced onion, red bell peppers, and minced garlic to the skillet. Sauté for about 4-5 minutes, or until the vegetables are softened. Stir in the fresh spinach, Italian seasoning, fresh rosemary, salt, and black pepper. Cook until the spinach wilts, about 2-3 minutes. Remove from heat and let it cool slightly.
In a large mixing bowl, whisk together the eggs, full-fat milk, ricotta cheese, and Parmesan cheese until well combined.
Add the cooked sausage and vegetable mixture to the egg mixture, stirring gently until everything is well incorporated.
Pour the entire mixture into a greased 9x13 inch baking dish, spreading it out evenly. Cover with aluminum foil and refrigerate overnight, or for at least 4 hours.
Preheat your oven to 350°F (175°C). Remove the casserole from the fridge and let it sit at room temperature for about 15 minutes. Bake, covered, for 30 minutes. Remove the foil and bake for an additional 15-20 minutes, or until the top is golden and a knife inserted in the center comes out clean.
Allow the casserole to cool for a few minutes before slicing. Serve warm, and enjoy the delightful flavors of your Easy Overnight Italian Breakfast Casserole!