Everyday in the RN is a holiday but I assume what you are referring to is leave.
Leave is generally taken in three main blocks: Christmas, Easter and Summer, however you should know that when the ship is away during these periods, you will have to take your leave as and when you can be spared. Occasionally you will have to work over the leave periods as a member of the duty watch and take your leave before or after the main blocks. You will also accumulate sea days which can be taken every so often, either with your main leave or in foreign ports or more likely for an extended weekend i.e. you go home on Thursday instead of Friday or come back Monday instead of Sunday.
Whilst in training you have definite set leave dates:-
2 Weeks for Easter
3 Weeks in the Summer (Sometimes 4 weeks for Raleigh)
2 Weeks at Xmas.
Outside of training you get 38 days leave which includes public holidays. These can be taken at anytime when your ship/unit can spare you. Normally though most guys take them similar to during training ie Easter, Summer and Xmas.
Be aware that the RN work 24/7 365 so you might have to work over a leave period and take in either earlier or later than the rest of the ship.
These are the basic leave dates that everyone gets, you can accumulate other leave for various other things ie sea-going leave, deployment leave etc.
When serving on a ship & proceeding on leave, always remember to thank the Master At Arms (from the jetty), if he/she forgets to announce that the "ship is under Sailing Orders" before allowing you ashore.
Basically this means a Special Offer - if you subsequently get fined for arriving back on board late (adrift) there's 50% Off.