The visa part....
Tourists travelling to Sri Lanka can use the online Electronic Travel Authorization (ETA) mechanism to obtain the visa. A 30 day double entry visa costs 10 USD for SAARC tourists whereas it is 20 USD for other countries. The payment is online and ETA arrives quickly, I got mine within 30 min via email. Just take a copy of the ETA and get the passport stamped on arrival. There is no delay at the immigration counters and no additional forms to fill. However, do keep a copy of accommodation booking, return flight and proof of sufficient funds handy, though they are usually not asked.
For ETA application & other details: http://www.eta.gov.lk/slvisa/
From Bangalore, there is a daily flight late evening by Sri Lankan Airlines, but it is more economical to fly from Chennai due to the variety of flight options and presence of both budget carriers like SpiceJet, Air India Express and full service carriers like Sri Lankan & Jet Airways. There are also flights to Colombo from other South Indian cities like Kochi and Tiruchirapalli.
Bandaranaike International Airport (code: CMB and formerly, Katunayake) is currently the lone International Airport of Sri Lanka though a 2nd one is being built at Hambantota. The Airport is not exactly in Colombo but located around 35km north of Colombo. Infact, it is closer to the Beach town of Negombo which is about 15km away. The airport is smaller compared to the ones in New Delhi & Chennai but has an international look. we didnt experience hassles at immigration, customs or security, it was smooth, however we did experience a lot delay during checkin on return. It took us around 1.30 hrs for checkin, so it is advised to reach early. For transport to/from Airport, the possible options are taxi, 3 wheeled rickshaws (tuk-tuk) or public bus. For public bus, buses are available at the airport depot which I heard is about 10-15min away by walk.
Airport site: http://airport.lk
The Sri Lankan currency is LKR (Sri Lankan Rupee), it normally hovers around 1 Indian Rupee (INR) = 2.3 or 2.4 LKR. This is about 1 USD = 125 - 135 LKR. There are restrictions on the import/export of the LKR (maximum 5000 LKR for import/export) and also on certain currencies of South Asia such as the Indian and Pakistani Rupees. Moreover, the forex rates provided for LKR outside Sri Lanka are very low for both buy and sell. So, if travelling from India or any other country, it is better to go with USD or any other internationally currency such as the Euro. Even with double conversion, you will get a good rate. Even while on return, convert the left over LKRs to USD or Euro. Once in Sri Lanka, the LKRs could be obtained at the airport (there are 4-5 bank counters after customs near the exit) or from banks or money exchangers within Sri Lanka. Large tour operators and hotels usually accept payment in USD or other major currencies, however, for entrance fees for tourist spots, expenditure at shops, restaurants/smaller hotels or local transport and other local expenses, the payment is always required in LKR.
I m not recommending in any specific operator, this is just for info..there are plenty of large and small tour operators in Sri Lanka who will provide end to end tour packages for a variety of tastes and budgets. If you intend to go for packaged tours, it is good to go with Sri Lankan operators (usually ex-Colombo airport).
Some of the larger and well rated ones are Red Dot, Walker, Aitken Spence and JF Tours. Red Dot caters to luxury tastes, thereby big budget, it also has a brilliant website with lots of good info, certainly the best operator website I ever saw for my Sri Lanka planning.
For the other end of the economy, there are plenty of small operators..infact hundreds of them (just google them), you can book accommodation inclusive packages with them or just avail transport incase you are booking hotels directly. The pros of a smaller operator are that they are more flexible with accommodation...luxury, budget or a combination, for the vehicle used or itinerary and are much cheaper than the larger ones. The cons are that many of these are very small, lack a clear policy w.r.t backups in case of car breakdown etc and some might even have issues with tourist licenses or registration with Govt. Tourist boards.
In any case do remember these before booking a tour package:
1. Decide your itinerary, preferred local transport and accommodation (hotels or guesthouses) and then check with multiple operators. You wont be surprised if you get a variety of quotes for the same itinerary. Almost all operators tend to give a single quote (USD/person) , never broken up into detail. Do try to get a breakdown of the quote or atleast compare it with your expectation. Also, find out the type of vehicle provided
2. To get your expected quote, check the tariffs of the same hotels on booking sites like Agoda or Booking.com (note: SL has about 22-25% tax on hotels, ensure it is inclusive). SL seems to have some dual pricing for tourist accommodation, so when booked by local operators this is usually much lower than what booking engines give. It is ok for the operator to take a cut but it shouldn't be huge. Ensure you are really getting a better deal from the operator otherwise it is easier for you to book directly, sometimes, an operator might be getting a discount from the hotel but might be charging the external rate from you thereby pocketing the difference (20-30% or more). For driver accommodation, it is free in almost all large/mid-size hotels. Only certain small space starved hotels/guest houses don't provide it or might charge for it. I also heard that hotels in Colombo don't provide it, so check with the hotel for these areas but otherwise, you can assume it is provided and you don't need to pay anything extra towards it.
For the transport, find out the distance being covered. The rate for a car is about 40-45 LKR/km varying based on the vehicle.
3. Check what is inclusive/exclusive of the package. There could be a reason for a cheaper/higher quote.
a) Accommodation, Meal options - B&B, half/full board. Many of the hotel locations outside major cities & towns might not have restaurants nearby, so you may have to rely on the hotel for your dinner. The touristy hotels/restaurants usually provide free meal to the driver when you are eating.
b) Entrance fees: Tickets to tourist spots for foreigners are very expensive in SL. SAARC citizens get a 50% discount in most places (detailed later).
c) Are any strings for shopping excursions attached?
d) Parking fees.
e) Guidance. For small groups, a driver cum guide is sufficient. Charges are higher for those proficient in languages other than English - say if need one speaking Russian or German. Drivers cant guide you in historical spots like Sigiriya unless they have a separate license for it and these places have separate guides in case you need them.
You can book the hotels directly and go about travelling on your own. If you are visiting multiple spots every day, it is better to take a car with driver. One of the large rental companies is Malkey. I had checked once with Malkey, their approx quotes were reasonable (it ll be variable since total cost is calculated at the end of the journey based on mileage in case of rental companies) and neatly broken up into mileage, driver charges, taxes etc. You can also book transport from the small tour operators, they usually give a single fixed quote (usually 60-70 USD all incl per day for a car + driver assuming travel distance is in normal range, say 100-150km in a day). Note: Roads in SL are well paved in most stretches, better than the state highways in India, but are mostly 2 lane (no divider) and heavily trafficked. So, you can cover atmost 35-40km/hr. For eg: It took us 4.5 hrs to cover Airport -> Sigiriya (about 150km) by car.
It is not possible to book trains online (except for few luxury trains). There are plenty of public/private buses and trains connecting major towns. If you have sufficient time and your plan is not tight, it would be cheaper to take this option.
Don't use your credit/debit cards in SL unless it is a large credible hotel or retailer. Prefer to pay by cash at all other places - shops, restaurants, ticket counters and so on.