Preheat oven to 350°F/177°C.
Spread the cubed bread on a large baking sheet and bake in a single layer for 10 minutes, until lightly toasted.
Remove from oven and let cool. Set aside.
In a large skillet or pan over medium-high heat, add the Italian sausage (squeezed out of its casing), and break it into smaller pieces with a wooden spoon or spatula.
Fry for 1-2 minutes to release its drippings before adding in the red onions, and continue to stir.
Add in fennel seed, chopped sage, salt (if using) and black pepper.
Lower the heat, add in the cubed bread, apple and dried cranberries and toss everything to combine.
Remove from heat and let cool slightly (so that the egg doesn't get cooked in the pan).
Beat together the egg and chicken stock in a bowl.
Pour the egg liquid mixture over the stuffing and mix everything together with a wooden spatula so the bread absorbs the liquid.
Transfer the stuffing to an oven-safe casserole dish and cover with aluminum foil.
Bake at 350°F/177°C for 20 minutes.
Remove the foil and bake uncovered for another 10 minutes.
Serve warm or at room temperature.