01 - Preheat oven to 350°F. Grease a 9x13-inch baking dish with butter or nonstick spray.
02 - In a large skillet over medium heat, cook the sausage, breaking it into crumbles, until browned and fully cooked, about 6 to 8 minutes. Transfer sausage to a plate using a slotted spoon.
03 - In the same skillet, sauté the onion and celery until softened, about 5 minutes. Remove from heat.
04 - In a large bowl, combine cubed bread, cooked sausage, sautéed onions and celery, and cranberries. Add parsley, sage, thyme, salt, black pepper, and red pepper flakes if using. Toss well to distribute evenly.
05 - In a separate bowl, whisk together milk, cream, and eggs. Stir in shredded cheddar and Parmesan if using.
06 - Pour the egg mixture over the bread mixture. Gently toss until evenly moistened.
07 - Transfer the mixture to the prepared baking dish and spread evenly. Let sit for 10 minutes to allow the bread to absorb the custard.
08 - Bake uncovered for 45 to 50 minutes, or until golden brown on top and set in the center.
09 - Allow to cool slightly, then garnish with extra parsley if desired. Serve warm.