I have felt for a long time that everything bagel spice is the bomb. But I’ve never been that into eating an entire bagel—it’s just too much dough at one time. Cutting them up into pieces and baking them with sausage and eggs though . . . That, folks, is everything. —Food52
*If you want to keep this veggie, omit the sausage, increase the butter for sautéing the onions by 1 tablespoon, and add another half of a 10-ounce package of thawed frozen spinach.
Heat a large skillet with a tight-fitting lid over medium heat. Add the sausage, if using, and cook, turning occasionally, until cooked through, about 12 minutes (or according to the directions on the package). Remove the sausage from the skillet, cut into 1-inch lengths, place in a large bowl, and set aside.
Melt the butter in the skillet over medium-low heat, then add the onion and cook, stirring occasionally, until lightly golden and translucent, about 9 minutes. While the onion is cooking, pile the thawed spinach into the center of a big clean kitchen towel and roll up the towel.
Over a bowl or the sink, twist the ends toward each other and keep twisting until you wring out as much liquid as humanly possible. (Or make someone else do this.)
Transfer the spinach to the bowl with the sausage and add the onion, bagel chunks, tomatoes, basil, Parm, 1 cup each of the Gruyère and cheddar, 1 teaspoon of the salt, and ½ teaspoon of the pepper. Toss it all together with your hands or a spoon. In a separate bowl, whisk together the eggs, milk, half-and-half, mustard, cayenne, and the remaining 1 teaspoon salt and 1/2 teaspoon black pepper.
Grease a 9 × 13-inch baking dish with butter and arrange the bagel mixture in the dish. Pour the egg mixture over the top, pressing down on the bagels so they soak up the liquid. Nestle the cream cheese chunks in all around the pan (they can be peeking out). Cover and refrigerate for at least 1½ hours and up to 12 hours. (The longer you soak, the moister the inside will be.)
Preheat the oven to 400°F.
Uncover the dish and sprinkle with the remaining ½ cup each Gruyère and cheddar. Bake for 15 minutes, reduce the temperature to 350°F, and bake until the top is golden and the center is set, 50 minutes to 1 hour.