In a large skillet, cook the breakfast sausage over medium heat until browned and crumbled, then drain and set aside.
In the same skillet, heat olive oil and cook diced potatoes with onion for 8-10 minutes until potatoes are just starting to soften but not fully cooked.
In a large bowl, whisk together eggs, milk, salt, pepper, and garlic powder until well combined.
Grease a 9x13 inch baking dish and spread the cooked sausage, potato mixture, and half of the cheese evenly in the bottom.
Pour the egg mixture over everything and top with remaining cheese and green onions.
Cover tightly with plastic wrap and refrigerate overnight.
Remove from refrigerator 20 minutes before baking and preheat oven to 350°F.
Remove plastic wrap, cover with foil, and bake for 35 minutes, then remove foil and bake an additional 15 minutes until eggs are set and top is golden brown.
Let stand for 5 minutes before cutting into squares and serving.