Preheat oven to 350 degrees and grease and 9×13 baking dish.
Melt butter in a medium sized skillet. Once butter is hot, add the onion and garlic. Saute 2 minutes. Add ham and continue to sauté until ham has crisped some. Set aside to cool.
Press all excess water out of broccoli and spinach. Toss together in a bowl. Add cooled ham mixture and mix well. Layer in the bottom of your baking dish.
Whisk eggs, cream, salt, pepper and half the cheese together and pour over top of the ham mixture. Top with remaining cheese.
Bake for 30 minutes or until edges are golden brown.