Yes, the cruise contract says they can cancel a port. And we had 2 ports cancelled on our Prima cruise last summer. On one of them had bought an excursion pre-cruise from NCL, and when NCL cancelled the port even before the cruise, I called to have the money refunded to our credit card. I was told I was going to be given NON-REFUNDABLE OBC instead and I should be grateful for it since they did not have to give me anything. After more discussion, the representative finally realized I was not asking for compensation for a missed port, but rather a refund of an excursion they could no longer provide as they were not going to the port. She put me on hold and consulted a different department. I was given the refund as their policy allows you to cancel an excursion for a refund if it is more than 48 hours before the excursion.