I'll be staying in Salento. What are my options to get to the Tatacoa desert using public transportation? I would guess I can take a bus to Ibague, then from Ibague to Aipe and from there a small boat to Villavieja. I don't find any resource to confirm if this route is possible though...
Bus it to Aipe then Taxi
Rome2Rio suggests a bus from Salento to Pereira, followed by another bus from Pereira to Aipe, and from there a Taxi to Villavieja. Below is a screenshot of the suggested route:
Quoting from the Terminal Pereira website, the scheduled departures for Aipe are:
Buses to/from Salento seem to depart/arrive every 2 hours.
Public Transport from Neiva
The general consensus on the internet seem to be that you should get a form of puyblic transportation from Neiva. According to Wikitravel, Collectivos, minibuses and shared jeeps to Villavieja all depart from the transport terminal in Neiva:
Minibuses or shared Jeeps leave the transport terminal of Neiva. The trip lasts 1 hour and costs 5,000 COP. There's no point to stay in Villavieja though. Just stay in the minibus until it takes you right into the desert. It should be able to drop you off directly at a hostel.
The collectivos from Neiva to Villavieja charge 6,000 COP per person and 15,000 if they bring you directly to the desert (more for a single person, less for a group). A single traveler might just get off at Villavieja and find a mototaxi (motorbike) to the desert for 10,000 COP or less.