Tokyo has the easiest and most direct access to Hakuba so if you are trying to choose an airport to fly into, pick Narita or Haneda. For travel options from the Tokyo area, please check out our transportation entries here. If you have been exploring the country, hanging with the geisha in Kyoto, or got a good deal on a flight to Osaka, then you will have fewer transportation options when making your way to Hakuba.
If you are travelling on a JR rail pass then best stick to JR trains. From Shin-Osaka, Shin-Kobe, and Kyoto, you can catch the Takaido Shinkansen (bullet train) to Nagoya and then change to the Shinano line bound for Matsumoto. In Matsumoto you will need to change to the Oito Line, where there are a few direct trains to Kamishiro/Hakuba but others will stop in Shinano-Oomachi where you will have to board a connecting train bound for Hakuba. If you will be joining us at Lodge tabi-tabi, be sure to get off at Kamishiro (NOT Minami-Kamishiro) station. From there we are a 10 minute walk or a 1000 yen taxi ride.
If you are like me, and don't mind a little extra travel time if it means less transfers and less hassles, then I suggest taking the Shinano Limited Express from Osaka at 8:58 am. This train will arrive at Matsumoto station at 13:03 where you can change to the Oito line bound for Hakuba. Although a little more out of the way, you can get off 50 minutes later at Nagano station and then take the Alpico Bus bound for Hakuba. Please note, the ¥1500 yen bus fare will not be covered by a JR Rail pass but all Oito Line trains from Matumoto are.
If you are looking for the cheapest way to get to Hakuba, and don't have a JR Rail pass, then I suggest taking the Hankyu Bus from Osaka or Kyoto to Matsumoto and the train from there. The 5 1/2 hour journey from Umeda costs 5,700 one way and 10,000 yen return. For a link to the Hankyu Bus schedule and fares, click here. The train from Matsumoto to Hakuba is another ¥1200 and you may need to transfer in Shinano Oomachi station.
If you are callin from overseas, drop the first zero and add the country code, "81".