Via Rail runs a year-round, two-day train ride from the town of Jasper, in the heart of the world-famous Jasper National Park, to the Port of Prince Rupert. From there it's easy to get to Haida Gwaii by ferry or air - see details below.
This Youtube video offers a flavour of the experience (taken on the return leg, from Prince Rupert to Jasper).
Extend your vacation by a few days, and combine two unforgettable experiences of Canada in one trip that will leave you with a lifetime of memories!
Vehicle & Ferry
BC Ferries sails from Port Hardy, on the northern tip of Vancouver Island, to Prince Rupert on the BC mainland coast. You can board the ferry at either Port Hardy or Prince Rupert. Both sailings land at Skidegate, on the south end of Graham Island. From there it's a scenic 70 mile drive to Masset. Sailing frequency varies, from three times per week in the winter to five times per week in high summer.
The ferry crossing from Prince Rupert takes six hours each way. Ferry cabins can be booked for overnight crossings. Early booking is recommended for summer crossings - the ferry is often full to capacity at this time of year.
With almost 2,000 islands, the archipelago of Haida Gwaii offers opportunities for a whole season of exploration by boat. However, please be advised that due to the sometimes extreme weather conditions in the North Pacific, the Canadian Coast Guard considers the area to be under a constant small-craft warning.
This Parks Canada page is specific to Gwaii Haanas National Park, but it has good general information for small craft operators in that area of Haida Gwaii.
North Pacific Seaplanes also offers daily flights by seaplane from Prince Rupert, on the BC mainland.
In addition, Air Canada Jazz flies from Vancouver to Sandspit, on the north end of Moresby Island. From there, it's a 20-minute ferry trip aboard BC Ferries' MV Kwuna to Skidegate on Graham Island. Bus service is available from Sandspit Airport to Skidegate.
Vehicle rentals are available in Sandspit, Masset and Queen Charlotte City.