I’ve done some initial research, and there aren’t many cruises for less than a week in Germany. There is a list for your reference below, and I did find one with CroisiEurope for three nights. It’s technically in France on the border, but it’s a lovely area. You could fly into Basel, Stuttgart, or Zurich and do that before exploring Germany (Baden-Baden, Freiburg, Nuremberg) by car or train.
One determining factor will be where you want to be on Christmas Day. Many of the Christmas Markets close on the 23rd or 24th, so those won’t be available. It seems like you have two options for this:
Both have advantages, and it’s totally up to you! Let me know if any of the cruises below appeal to you.
Get monthly travel news, destination guides, and seasonal offers delivered to your inbox.