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–8 minutes). Transfer sausage to a plate with a slotted spoon.
03 - In the same skillet, sauté 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.
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 to the prepared baking dish and spread evenly. Let sit for 10 minutes for the bread to absorb the custard.
08 - Bake uncovered for 45–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.