Skip to main content

How to get from Haapsalu to Viljandi by bus?

From Haapsalu to Viljandi by bus

To get from Haapsalu to Viljandi in Estonia, you’ll need to take 3 bus lines: take the 294 bus from Haapsalu Bussijaam station to Vana-Pääsküla station. Next, you’ll have to switch to the 211 bus and finally take the 145 bus from Pärnu Bussijaam station to Viljandi Bussijaam station. The total trip duration for this route is approximately 5 hr 1 min. The bus schedule from Haapsalu may change. We recommend you check the updated bus schedule to Viljandi on the Moovit app.

301min
Walk to bus station
Bus - 294294
Bus - 211211
Bus - 145145
Leaves from Haapsalu Bussijaam

Step by Step

  • 1
    Walk to bus station
    Walk to bus station
    Haapsalu Bussijaam
    ID 5700032-1
    10 m • 1 min
  • 2
    Bus - 294294
    Wait for bus
    294
    Tallinna Bussijaam
  • 3
    Ride to bus station
    Ride to bus station
    Vana-Pääsküla
    ID 04401-1
    75 min
  • 4
    Walk to bus station
    Walk to bus station
    Vana-Pääsküla
    ID 04404-1
    130 m • 2 min
  • 5
    Bus - 211211
    Wait for bus
    211
    Pärnu Bussijaam
  • 6
    Ride to bus station
    Ride to bus station
    Pärnu Bussijaam
    ID 6700741-1
    90 min
  • 7
    Bus - 145145
    Wait for bus
    145
    Tartu Bussijaam
  • 8
    Ride to bus station Viljandi Bussijaam
    Ride to bus station
    Viljandi Bussijaam
    ID 8401095-1
    90 min
*Duration based on 8am traffic

Alternative route from Haapsalu to Viljandi by bus via 294, 270 and 145

To get from Haapsalu to Viljandi in Estonia, you’ll need to take 3 bus lines: take the 294 bus from Haapsalu Bussijaam station to Vana-Pääsküla station. Next, you’ll have to switch to the 270 bus and finally take the 145 bus from Pärnu Bussijaam station to Viljandi Bussijaam station. The total trip duration for this route is approximately 5 hr 1 min. The bus schedule from Haapsalu may change. We recommend you check the updated bus schedule to Viljandi on the Moovit app.

301min
Walk to bus station
Bus - 294294
Bus - 270270
Bus - 145145
Leaves from Haapsalu Bussijaam

Step by Step

  • 1
    Walk to bus station
    Walk to bus station
    Haapsalu Bussijaam
    ID 5700032-1
    10 m • 1 min
  • 2
    Bus - 294294
    Wait for bus
    294
    Tallinna Bussijaam
  • 3
    Ride to bus station
    Ride to bus station
    Vana-Pääsküla
    ID 04401-1
    75 min
  • 4
    Walk to bus station
    Walk to bus station
    Vana-Pääsküla
    ID 04404-1
    130 m • 2 min
  • 5
    Bus - 270270
    Wait for bus
    270
    Pärnu Bussijaam
  • 6
    Ride to bus station
    Ride to bus station
    Pärnu Bussijaam
    ID 6700741-1
    90 min
  • 7
    Bus - 145145
    Wait for bus
    145
    Tartu Bussijaam
  • 8
    Ride to bus station Viljandi Bussijaam
    Ride to bus station
    Viljandi Bussijaam
    ID 8401095-1
    90 min
*Duration based on 8am traffic
The Most Popular Urban Mobility App in Estonia.
All local mobility options in one app

Public transit directions from Haapsalu to Viljandi

The distance between Haapsalu, Estonia and Viljandi, Estonia is approximately 291.11 km, which can typically be travelled in 301 min. Moovit will show you the directions from Haapsalu to Viljandi by bus, so no matter how you choose to travel in Estonia – you will always have plenty of easy options.

Bus schedule from Haapsalu to Viljandi

To check the bus schedule from Haapsalu to Viljandi using the Moovit app, first download and open the app on your smartphone. Enter your starting point (Haapsalu) and destination (Viljandi), then select the desired date and time of travel. Moovit will show all available bus routes, estimated travel times, and any required transfers. You can view detailed departure and arrival times for each bus, as well as real-time updates for delays or changes. Use this information to plan your trip and stay up to date with the latest bus schedules.

Alternative route from Haapsalu to Viljandi by bus via 294, 270 and 145

To get from Haapsalu to Viljandi in Estonia, you’ll need to take 3 bus lines: take the 294 bus from Haapsalu Bussijaam station to Vana-Pääsküla station. Next, you’ll have to switch to the 270 bus and finally take the 145 bus from Pärnu Bussijaam station to Viljandi Bussijaam station. The total trip duration for this route is approximately 5 hr 1 min. The bus schedule from Haapsalu may change. We recommend you check the updated bus schedule to Viljandi on the Moovit app.

301min
Walk to bus station
Bus - 294294
Bus - 270270
Bus - 145145
Leaves from Haapsalu Bussijaam

Step by Step

  • 1
    Walk to bus station
    Walk to bus station
    Haapsalu Bussijaam
    ID 5700032-1
    10 m • 1 min
  • 2
    Bus - 294294
    Wait for bus
    294
    Tallinna Bussijaam
  • 3
    Ride to bus station
    Ride to bus station
    Vana-Pääsküla
    ID 04401-1
    75 min
  • 4
    Walk to bus station
    Walk to bus station
    Vana-Pääsküla
    ID 04404-1
    130 m • 2 min
  • 5
    Bus - 270270
    Wait for bus
    270
    Pärnu Bussijaam
  • 6
    Ride to bus station
    Ride to bus station
    Pärnu Bussijaam
    ID 6700741-1
    90 min
  • 7
    Bus - 145145
    Wait for bus
    145
    Tartu Bussijaam
  • 8
    Ride to bus station Viljandi Bussijaam
    Ride to bus station
    Viljandi Bussijaam
    ID 8401095-1
    90 min
*Duration based on 8am traffic

Questions & Answers

  • What is the fastest way to get from Haapsalu to Viljandi?

    The fastest way takes 301 minutes, using Bus line 294, Bus line 211, Bus line 145.

  • What is the alternative route to get from Haapsalu to Viljandi?

    The alternative route takes 301 minutes, using Bus line 294, Bus line 270, Bus line 145.

  • Is there a direct bus between Haapsalu and Viljandi in Estonia?

    No, you’ll have to take 3 bus lines in total. The total travelling time is 5 hr 1 min.

  • Which bus line goes from Haapsalu to Viljandi in Estonia?

    The 294 bus line goes from Haapsalu Bussijaam station near Haapsalu to Tallinna Bussijaam station. From there you’ll have to take one bus line till Tallinna Bussijaam station near Viljandi in Estonia.

  • How long does it take to travel from Haapsalu to Viljandi in Estonia by bus?

    The total travel time between Haapsalu and Viljandi in Estonia by bus is about 5 hr 1 min.

  • Where do I get on the bus near Haapsalu to get to Viljandi in Estonia?

    Get on the 294 bus from the Haapsalu Bussijaam stop near Haapsalu in Estonia.

  • Where do I get off the bus when travelling between Haapsalu and Viljandi in Estonia?

    Get off the bus at the Tallinna Bussijaam stop, which is closest to Viljandi in Estonia.