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 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 the cubed bread, cooked sausage, sautéed onion and celery, and cranberries. Add the parsley, sage, thyme, kosher salt, black pepper, and red pepper flakes if using. Toss well to distribute evenly.
05 - In a separate bowl, whisk together the whole milk, heavy cream, and eggs. Stir in the shredded cheddar and Parmesan cheese if using.
06 - Pour the egg custard mixture over the bread mixture. Gently toss until everything is evenly moistened.
07 - Transfer the mixture to the prepared baking dish and spread into an even layer. Let sit for 10 minutes to allow the bread to absorb the custard.
08 - Bake uncovered for 45 to 50 minutes, or until the top is golden brown and the center is fully set.
09 - Allow the casserole to cool slightly, then garnish with additional fresh parsley if desired. Serve warm.