a:6:{i:0;s:37417:"				<section id="middle"><br />
				<div class="wrap packages" id="bodyFormatNT">
				<div class="row1 dt columns12"><!--MIDDLE ROW1 STARTS-->
				<div class="col-2 wideColumn ip ls"><!--MIDDLE ROW1 COL-2 STARTS-->				
									<div class="h1"><h1>Bhutan Package</h1></div>
					<p class="breadcrumb ar uu small"><a href="http://www.swaraworldtrip.com/" title="Home">Home</a>
					
											<b class="ffv p2px">&rsaquo;</b><a href="http://www.swaraworldtrip.com/tour-packages.htm" title="Tour Packages">Tour Packages</a>  			
											
					<b class="ffv p2px">&rsaquo;</b>Bhutan Package</p> 
									
						<script language="javascript"> 
							function topDestinationToggle(showHideDiv, switchTextDiv) {
							var ele = document.getElementById(showHideDiv);
							var text = document.getElementById(switchTextDiv);
							if(ele.style.display == "block") {
								ele.style.display = "none";
							  text.innerHTML = "View More &#9660;";
							}
							else {
							  ele.style.display = "block";
							  text.innerHTML = "View Less &#9650;";
							}
							}
		                </script>
											<script type="text/javascript">			
					(function($){	
					  $(function(){
						$('[id^=detailslider]').each(function(){
							$(this).DG_Slider({
								auto: true, mode:'fade', pager:true, pagerType:'short',controls:true
							});
						})
				
						$('a[rel=gall]').fancybox()
					  });	
					}(jQuery))
					</script>
					
					<br />
					<div class="data">
					<table class="w100 formTable bdr0 imgWidth">
					<tr>
					<td class="p10px">
					
											<p class="mb5px"><b>Duration :</b> 
						6 Nights / 7 Days 
						</p>
												<p class="mb5px"><b>Destination Covered :</b> Thimphu, Paro, Punakha, Phuntsholing</p>
												<p class="mb5px"><b>Price (Starting From) :</b> <span class="dif">On Request</span></p>
												<br />
						<p>
						<form name="frmpackagedetail" id="frmpackagedetail" method="post" action="http://www.swaraworldtrip.com/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Bhutan Package - Tour Package"/>
						<input type="hidden" name="allocate_type" value="tour"/>
						<a href="#" onclick="document.getElementById('frmpackagedetail').submit();" class="buttonBig p10px20px c5px b large dib">Book Your Tour</a>
						<input type="hidden" name="pkg_slno" value="125772"/>
						</form>
						
												</p>
											</td>
											<td class="p10px vat imgWidth200 w200px lh0">
						<div class="demo-wrap">
						<ul class="lsn m0px p0px" >
															<li class="bdr bw3px c5px p1px"><div class="dt"><p class="ac vam dtc w200px h200px"><a rel="gall" data-fancybox="showZoomImage" href="https://ttw.wlimg.com/package-images/photo-big/dir_11/304395/203837.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_11/304395/203837.jpg"  width="150" height="150"    alt="Bhutan" title="Bhutan" /></a></p></div></li>
															</ul>
						</div>
						</td>
											</tr>
					</table>
					</div>
													<div class="data mt20px p15px">            
								<div class="mb7px"> 
								<p class="b xlarge mb10px dib">Tour Detail</p>
								</div>
													
								3*/4* Hotels, Twin/triple Sharing,  Map Plan, Pick Up / Drop to Bagdora Airport, <br />
entrance and Immigration Exp. Rs 1500 per Person Extra<br />
<br />
itinerary- (06 Night/07 Days)<br />
day: 1 Bagdogra to Phuntsholing- 170kms ---<br />
arrival At Bagdogra Airport & Departure for Phuntsholing (170 Kms. 04-05 Hrs.)take the Permit to Visit Bhutan.<br />
overnight Stay At Hotel.<br />
day: 2 Phuntsholing to Thimpu – 180kms<br />
post Breakfast Drive Towards Thimphu and After Reaching Thimphu Visit the Following:<br />
kuensel Phodrang:the Kuensel Phodrang or the Buddha Point is the World’s Largest Sitting Buddha Statue, The<br />
statue is 167 Feet High. the Statue is Situated On Top of a Hill Overlooking the City of Timphu, It Can Be Accessed By<br />
road and is About 15 Minutes Away from the City‟s Center. the Word Kuensel Means Everything is Clear and From<br />
this Place You Will Sure Enjoy a Great View of the Thimphu Valley On Both Sides. the Statute Will House a Temple<br />
inside It, the Statue and Its Adjoining Car Park and Recreational Center are Currently Under Construction and Is<br />
expected to Be Ready By December 2012. the Statue is Constructed Out of Bronze and is Studded with Many Semiprecious<br />
stones. Since They are No Factories in Country that Can Make such a Large Bronze Cast Structure,<br />
statute is Being Manufactured in China and the Pieces are Brought to Bhutan and are Assembled Here. On The<br />
drive to the Statue the Steep Winding Hill Road Offers An Unparalleled View of the City of Thimphu and is An<br />
excellent Place to Capture a View of the City Especially After Dark. a Journalist Once Described the View As<br />
“seeing An Osasis of Light in the Desert of Darkness “as the City Light of Thimphu Shine Very Bright in An<br />
otherwise Dark Thimphu Valley.<br />
later in the Evening You Can Visit Tashichho Dzong: the Dzong is a Buddhist Monastery Cum Fortress At The<br />
northern Edge of Thimpu the Capital City of Bhutan. the Dzong Was Built On the Western Bank of the River Wang<br />
chu, and Has Historically Served At the Seat of the Druk Desi or the Dharma Raja of Bhutan‟s Government. After<br />
the Kings Assumed Power in 1907 this Post Was Combined with that of the King and Thimphu Severed as The<br />
summer Caital of the Kingdom Before Becoming the Full Time Capital of Bhutan. the Original Thimphu Dzong (the<br />
dho-ngyen Dzong) is Said to have Been Constructed in 1216 By Lama Gyalwa Lhanangpa. and Was Later Taken Over<br />
by Lama Phajo Drukgom Shigpo Before the Dzong Was Conquered By Shabdrung Ngawang Namgyal, Who Found<br />
the Dzong to Be Too Small and Expanded It to What is Now Known as Thetashichho Dzong is also Called The<br />
"fortress of Glorious Religion." It Was Erected in 1641 and Was Subsequently Rebuilt By King Jigme Dorji<br />
wangchuck in the 1960s. the Dzong Has Been Seat of the Royal Government Since 1952 and Presently Houses The<br />
throne Room and the Kings Secretariat. the Tashichho Dzong is also Home to Several Ministries of the Bhutanese<br />
government, and the Central Monk Body Which is the Apex Organization of the Country's Main Spiritual<br />
order. the Monument Welcomes Visitors During the Thimphu Tsechu Festival Which is Held in Autumn Each Year.<br />
the Dzongs Main Structure is a Two Striped Quadrangle with 3 Storied Towers On Each of Its Four Corners<br />
over Night At Thimphu.<br />
day: 3 Thimpu Sightseeing & Punakha<br />
post Breakfast, Visit the Following:<br />
motithang Takin Preserve: the Motithang Takin Preserve also Known as the Thimphu Zoo By Many is a Small<br />
natural Preserve for the Takin Bhutan‟s National Animal. It Was Originally a Mini Zoo, But It Was Converted in A<br />
preserve Later On as the Takin. the Mini Zoo Contained a Small Number of Takin But the King of Bhutan Later<br />
decreed that It Was Improper for a Buddhist Nation to Keep An Animal in Captivity. the Animals Were Set Free And<br />
the Zoo Was Shut Down, But for Some Reason the Takin Refused to Leave the Area for the Forests Nearby. Instead<br />
the Animals Were Frequesntly Found Roaming Around the Streets of the Capital City in Search for Food. as a Result<br />
the Government Decided to Demarcate An 8 Acre Fenced Location as the Motithang Takin Preserve. the Preserve<br />
is a Forested Preserve that Mimics the Takin‟s Natural Habitat, in Addition to the Takin There are a Few Musk<br />
deer and Barking Deer that Live Inside the Preserve. There are Plans to Expand the Preserves Collection To<br />
include other Rarely Seen Animals that Live in Bhutan, Currently the Preserve Plans to Add the Red Panda and The<br />
himalayan Serow to the Preserve.<br />
jungshi Handmade Paper Factory: this is a Private Factory and They Manufacture a Special Watermark Paper As<br />
well as Products such as Lampshades, Envelopes and other Objects Made of Traditional Bhutanese Paper. They<br />
make Great Gifts to Take Home with You and are Genuinely Unique. It is Not Just the Texture of These Handmade<br />
paper Products that Will Intrigue You, But also Their Unique Earth Tones and Natural Hews. this Factory<br />
manufactures a Special Watermark Paper as Well as Products such as Lampshades, Envelopes and other Objects<br />
made of Traditional Bhutanese Paper. Bhutan Protects Its Environment Through Long-term Sustainability, And<br />
they Follow It Because They Do Not Destroy the Plant When They Extract the Raw Material Required. Paper<br />
products are Manufactured from "daphne Papyracea".<br />
folk Heritage Museum: the Folk Heritage Museum Was Open to the General Public in 2001 Upon Completion. It<br />
treasures Troves of Culture and Rich Bhutanese Heritage Provide Rich Insights Into the Bhutanese Ethos. Try To<br />
schedule Your Visit During the Morning Hours Since the Museum is Less Crowded At that Time and There is Plenty<br />
of Sunlight to Go Around. the Folk Heritage Museum is Housed in a Replica Traditional Bhutanese House Learn<br />
first-hand About Bhutan‟s Rich Cultural Traditions, Its Deeply Rooted Heritage Which Spans Thousands of Years<br />
and the Bhutanese Way of Life. the Tour of this Almost Living Museum Will also Give You a Glimpse Onto How Many<br />
rural Folk of the Country Live Today Following the Ancient Bhutanese Ways.<br />
memorial Chorten: Referred to as Thememorial Chorten, It’s Actual Name is Gongzo Chorten or Gyaldren Chorten.<br />
the Chorten (stupa) is a Chief Landmark in the Capital City and is also a Most Sacred Place of Worship for Local<br />
people. the Idea of the Chorten Was Conceptualized By the Third King His<br />
majesty Jigme Dorji Wangchuck to Ward-off Negative Energies. After His Majesty’s Demise, the Chorten Was Built<br />
in His Memory By the 4 Th King and the Then Queen Mother in 1972.many Old People Come Here Early in The<br />
morning to Circumambulate and Say Their Prayers in the Hopes of Garnering Enough Good Karma for Their<br />
afterlife; They are Joined By the Middle and the Younger Generation in the Evenings Who also Come to Do Either<br />
the Same Thing or to Just Relax Their Mind. the Doors of this Stupa Remain Mostly Closed Except On Holy Days.<br />
inside, There are Three Stories and On Each Floor are Statues of Protective Deities.<br />
coronation Park:located On the Banks of the River (near the City Stadium), this 5.6 Acres of Parkland Offer A<br />
pleasant and Relaxing Environment to Stroll or to Sit and Watch the River Flow By.<br />
craft Bazaar: Organised On Tuesday and Wednesday in Centenary Farmer’s Market, Under Patronage Of<br />
department of Cottage & Small Industry and in Collaboration with the Department of Culture, Tourism Council<br />
and the Department of Agriculture Marketing and Cooperatives, this Market Offers Genuine Bhutanese Arts<br />
& Crafts Thus Contributing in Promotion, Protection and Preservation of Traditional Arts.<br />
afternoon Transfer to Punakha, Via Dochu-la-pass (10,170 Ft.) to View the Higher Himalayas.<br />
drive Toward Punakha, Stop At Dochula Pass (3,100 M), Where On a Sunny Day, You Can Get Stunning Views of The<br />
himalayan Ranges. the Dochu La Pass is Probably the Best Known Mountain Pass in Bhutan. Located At An<br />
altitude of 3150 Meter Above Sea Level, the Dochu La Pass is About 30 Kilometer Away from the Capital City<br />
thimphu and the Road to Punakha. On a Clear Day the Pass Offers Visitors a Spectacular View of the Majestic<br />
eastern Himalayan Ranges. a Cup of Hot Coffee or Tea At the Pass Has Almost Become Part of Tradition for People<br />
travelling to and Fro from Punakha to the Capital City.<br />
there is a Small Cafeteria At the Pass that Offers a Chance for Travelers to Enjoy a Hot Beverage or a Snack, It Is<br />
located Just Off the Road and Overlooks the Pass and is An Ideal Place to Sit Back, Relax and Enjoy the View.<br />
another Striking Feature At the Pass are the 108 Druk Wangyal Khangzang Chortens, that Were Built for the Wellbeing<br />
of all Sentiment Beings On Earth. the 108 Chorten Were Built as a Tribute to the Kings of Bhutan for Their<br />
selfless Service and Leadership They Offer to the People of Bhutan. These Stupas or Chortens also Represent The<br />
peoples Love, Appreciation and Loyalty Towards the Country’s King.<br />
continue Drive Towards Punakha and Stop At Lobesa Village and have Lunch Before Going for a Short Hike to Chimi<br />
lhakhang (temple of Fertility), It is Dedicated to Lam Drukpa Kuenley (divine Mad Man) and is the Place From<br />
where Phalluses Originated as the Symbol of Fertility and Protection and Can Be Seen Everywhere in Bhutan, On<br />
house Walls and Roofs and Altars. Childless Couples Usually Go to this Temple to Get Blessings So that They<br />
conceive and are Blessed with a Child.<br />
(note: the Temple and Has Some Sexual Depictions. You May Want to Reconsider Visiting this Place if You are Not<br />
comfortable with Children Seeing These)<br />
then Drive to Punakha Dzong: the Punakha Dzong or the Pungtang Dechen Phortang Dzong is Located At The<br />
confluence of the Mo Chhu and the Po Chhu River, Combine to Form the Puna Tsang Chu Which in Turn is A<br />
tributary of the Mighty Brahmaputra River. the Dzong Was Constructed By Zhabdrung Ngawang Namgyal in 1638<br />
on the Exact Spot as Prophesized By the Guru Rinpoche Some 800 Years Ago. According to the Prophecy of Guru<br />
rinpoche “a Person Named Namgyal Will Arrive At a Hill that Looks like An Elephant”. Another Legend Associated<br />
with the Dzong is that of Zowe Palep, the Architect of the Dzong Received Vision of the Dzong in His Sleep. This<br />
vision Got Imprinted in the Architects Mind and Enabled Him to Construct the Dzong Without Putting His Plans To<br />
paper.<br />
it is the Second Largest and the Second Oldest Dzong in Bhutan. the Dzong is Home to Some of the Most Sacred<br />
relics of the Drukpa Kagyu School of Buddhism; It is also Home to the Sacred Mortal Remains of Zhabdrung<br />
ngawang Namgyal and Terton Pema Lingpa the Great Treasure Discoverer of Bhutan. the Dzong Has also Served<br />
as the Capital Bhutan Till 1955 Before the Capital Was Moved to Thimphu. the Dzong is Still the Winter Residence<br />
of the Je Khenpo (chief Abbot) and the Central Monastic Body and Plays Host to the Annual Punakha Tshechu<br />
festival Which is Very Popular with the Locals and Tourists Alike.<br />
overnight At a Hotel in Punakha.<br />
day: 4 Punakha to Paro - 145kms<br />
post Breakfast Drive Towards Paro Via Dochula Pass.<br />
on the Way Visit Tamchog Lhakhang: Tachog Lhakhang is Temple that is Dedicated to the 13th Century Saint<br />
thangthong Gyalpo, the Iron Bridge Builder. this Temple is Located Across the River About 15kms from the Paro<br />
towards Thimphu. in Order to Get to the Temple One Must Cross An Iron Chain Bridge, One of the Few Remaining Of<br />
the Many that Thangthong Gyalpo Built. Crossing this Very Old Bridge with Its Swaying and Undulating Movements<br />
can Be Quite An Experience.<br />
ta Dzong (national Museum): the Name Ta Dzong Translates to ‘watch Tower’ and It Served the Function of Watch<br />
tower for the Paro Rinpung Dzong. Back in the Day, Similar Look-out Points Were Built for other Dzongs<br />
(fortresses) to Counter Any Approaching Hostilities, for Those Were the Days of Frequent Strife. These Towers<br />
were Specifically Built High Atop Hills and other Vantage Points During the Old Days.presently Serving as The<br />
national Museum (since Late 60’s), It Houses An Array of Antiquities such as Ancient Thangka (exquisite Scroll<br />
painting), Mural Paintings and other Forms of Art Done By Great Personalities of Those Days, Original Textiles Of<br />
the Kingdom Which Represent the Culture that Still Flourishes, Weapons & Armour Used Back in the Day,<br />
household Objects Typical to the Bhutanese People’s Way of Life Back Then and Even Now, and other Natural And<br />
historical Artifacts.<br />
dumtse Lhakhang: It is a Private Temple Built By Lam Chazampa (thangthong Gyalpo) in the 13-14 Century. This<br />
is a Special Temple with 3 Floors Representing Hell, Earth and Heaven. all the Paintings and Artifacts in The<br />
temples are as Old as the Temple Itself. the Pillars Inside Were Installed By the Different Villages in Paro Valley,<br />
almost in a Competition like Way, Even Today the Names Villages are Engraved in the Pillars. Though the Temple Is<br />
situated Very Close to Town, the Lighting is Powered By Solar Power But is Not Lit Very Much as the Owners Fear<br />
the Lights Will Fade the Colors in the Paintings, So It is Essential to Take a Torch.<br />
drugyal Dzong Ruins: Literally Means 'bhutan's Victory Fortress', It Was Built to in 1654 By<br />
shabdrung Ngawang Namgyal to Commemorate the Victory Over the Tibetan Invaders and It Would also Control<br />
and Guard the Trade Between Bhutan and Tibet as It Stood Right On the Trade Trail. It Stands Atop a Small Hill With<br />
a Commanding View of the Valley Up and Below and On a Clear One Can Get to See the Beautiful Mount Jomolhari<br />
from Here. It Caught Fire in 1951 and Has Been in Ruins Since, Some Renovation Works have Been Carried Out But<br />
has Not Been Able to Go Full Swing. Although in Ruins, the Dzong is Still Beautiful to Look At and One Can Just Walk<br />
about Inside the Ruins Trying to Imagine How Things Were Before.<br />
overnight At Hotel in Paro.<br />
day: 5 Paro - Tiger’s Nest Hike----<br />
have Early Breakfast and Drive Up to the Base of Taktsang Monastery (tiger’s Nest): the Most Famous And<br />
sacred Site among all the Places in Bhutan. Guru Padmasambhava is Said to have Come Riding On a Flying<br />
tigress to this Place and Meditated in a Cave for 3 Months, It Wasn’t Until Zhabdrung Ngawang Namgyal Came<br />
to this Place and Meditated that It Gained the Popularity that It Has Now. the Present Structure is Said to Be Built<br />
in the 15 Th Century But Was Destroyed By Fire in 1998 and Has Been Restored.<br />
the Walk is About 2 Hours Till the Top Through Wide Pathways Which Was Built During the Restoration Works. One<br />
hour Into the Climb There is a Tea Point from Where You Get a Very Good View of the Monastery, They also Serve<br />
lunch Here. from There It’s About Another 45 Minutes Climb to the 2 Nd View Point and the Highest Point in The<br />
hike.<br />
after the Hike have Leisure Time in Paro Town. Just Walking Along Paro Town Itself is Exciting and Really Beautiful<br />
feelings to Enjoy Chilled and Fresh Air of Paro Eveniong.<br />
kyichu Lhakhang: Considered the Oldest Temple Along with Jampa and Kenchosum Lhakhang in Bumthang, It<br />
dates Back to the 7th Century When a Tibetan King Ordered 108 Temples to Be Built in a Single Night to Subdue A<br />
huge Ogress. It Was Later Renovated in the Mid 19th Century and in the Late 1960's By the Grand Queen<br />
mother.it is also Considered By Many to Be One of the Holiest Places in the Country. Inside the Compound is An<br />
orange Tree Which Always Has Oranges No Matter What the Season.<br />
overnight At a Hotel in Paro.<br />
day 06: Paro – Phuentsholing<br />
(distance: 200 Kms. / Driving Time: 7 Hrs. / Altitude of Phuentsholing: 293 Mts.)<br />
after Breakfast Check Out from Hotel and Transfer to Phuentsholing. On Arrival Check in At the Hotel.<br />
overnight Stay At Phuentsholing.<br />
day: 7 Phuentsholing to Bagdogra/kolkata<br />
<br />
entry Permit for Bhutan:<br />
<br />
indian Nationals Do Not Require Any Visa for Bhutan. a Permit Will Be Issued At the Entry Point On Production of A<br />
passport (with a Minimum Validity of 6 Months from the Date of Departure) or Voter Id (only Valid Document For<br />
issuing the Bhutan Entry Permit). the Traveler also Has to Carry Photocopy of the Travel Documents and 04<br />
passport Size Photographs. for Children, Original Birth Certificate in English and Student Id is Required.<br />
if You are Entering Bhutan Via Land, It is to Be Noted that the Permits are Issued Only During Working Days And<br />
hours. (monday to Friday Between 9 am to 4 Pm During Winter and 5 Pm During Summer). It is Suggested that The<br />
travelers Arriving in Phuentsholing On Friday Should Arrive Latest By 10 am in Order to Complete the Entry<br />
formalities. No Permits are Issued On Saturday, Sunday and Bhutan Government Holidays. However, During High<br />
season Depending Upon the Rush Immigration May Take Long Time to Issue the Permit. We Shall Not Be Responsible<br />
for Any Delay During Processing of Permit By the Immigration Authority. Please Keep Your Client Informed They<br />
may have to Stand On Long Queue During High Season to Obtain the Permit if Traveling Via Phuentsholing.<br />
special Permit for Places other Than Phuentsholing, Thimphu and Paro:<br />
special Permit is Required to Visit Places Beyond Thimphu and Paro From, the Department of Immigrations,<br />
thimphu. No Charges Will Be Applicable for this Permit. Please Bring 02 Passport Size Photographs and Voter Id<br />
card or Passport of Each Person Including Child. this Special Permit is Given Only After Guest Has Entered<br />
bhutan. Permits are Not Issued On Saturday, Sunday & Bhutan Govt. Holidays.<br />
railway Tickets, Local Transport.<br />
 Personal Expenses such as Laundry, Telephone Calls, Tips & Gratuity, Mineral Water,<br />
soft & Hard Drinks, Rafting, Rock Climbing, Paragliding, Porterage.<br />
 Additional Sightseeing or Extra Usage of Vehicle, Horse Riding, Doli/baggi, Rope<br />
way/electronics Lift, Khechara Gadi, River Boat/speed Boat, Gandola Ticket, Garden<br />
entrance Ticket, Pony Fide, Shikara Fide Etc. Bother Than Mentioned in the Itinerary.<br />
 Entrance Fees & Guide Charges.<br />
 Any Cost Arising Due to Natural Calamities Like, Landslides, Road Blockage, Political<br />
disturbances (strikes), Etc (to Be Borne By the Client, Which is Directly Payable On<br />
the Spot).<br />
 Any Increase in Taxes or Fuel Price, Leading to Increase in Cost On Surface<br />
transportation & Land Arrangements, Which May Come Into Effect Prior To<br />
departure. Photo Camera, Garden/any Entertainment Shoes Entry Fee.<br />
 Any Condition No Refund. Your Booking Confirmation is 100% Not Refundable Basis.<br />
 Room Heater Charges *service Tax. *insurance.<br />
 Anything Which is Not Included in the Inclusion.<br />
 Meals Outside of the Stated Meal Plan<br />
 Early Check in & Late Check Out At the Hotels (check in & Check Out Time 14.00 To<br />
12.00 Noon) Any other Services Not Specified Above.								</div>
								<br />
																<div class="data mt20px p15px">
								<div class="mb7px"> 
								<p class="b xlarge mb10px dib">Inclusions</p>
								</div>
												
								<ul>
																			<li>Meals</li>
																						<li>Sightseeing</li>
																						<li>Transport</li>
																						<li>Transfers</li>
																						<li>Airport Pickup-Drop</li>
																						<li>Veg Meals</li>
																			</ul>
								</div>
																<div class="data mt20px p15px">
								<div class="mb7px"> 
								<p class="b xlarge mb10px dib">Exclusions</p>
								</div>
								
								<ul><li>Railway Tickets, Local Transport.</li><li>
 Personal Expenses such as Laundry, Telephone Calls, Tips & Gratuity, Mineral Water,</li><li>
soft & Hard Drinks, Rafting, Rock Climbing, Paragliding, Porterage.</li><li>
 Additional Sightseeing or Extra Usage of Vehicle, Horse Riding, Doli/baggi, Rope</li><li>
way/electronics Lift, Khechara Gadi, River Boat/speed Boat, Gandola Ticket, Garden</li><li>
entrance Ticket, Pony Fide, Shikara Fide Etc. Bother Than Mentioned in the Itinerary.</li><li>
 Entrance Fees & Guide Charges.</li><li>
 Any Cost Arising Due to Natural Calamities Like, Landslides, Road Blockage, Political</li><li>
disturbances (strikes), Etc (to Be Borne By the Client, Which is Directly Payable On</li><li>
the Spot).</li><li>
 Any Increase in Taxes or Fuel Price, Leading to Increase in Cost On Surface</li><li>
transportation & Land Arrangements, Which May Come Into Effect Prior To</li><li>
departure. Photo Camera, Garden/any Entertainment Shoes Entry Fee.</li><li>
 Any Condition No Refund. Your Booking Confirmation is 100% Not Refundable Basis.</li><li>
 Room Heater Charges *service Tax. *insurance.</li><li>
 Anything Which is Not Included in the Inclusion.</li><li>
 Meals Outside of the Stated Meal Plan</li><li>
 Early Check in & Late Check Out At the Hotels (check in & Check Out Time 14.00 To</li><li>
12.00 Noon) Any other Services Not Specified Above.</li></ul>
								</div>
																<div class="data mt20px p15px">            
								<div class="mb7px"> 
								<p class="b xlarge mb10px dib">Payments Terms</p>
								</div>
								
								<ul><li><p>1. Above rates are subject to change with our prior notice.<br /></li><li>
2. Above rates are subject to availability & confirmation by hotel<br /></li><li>
3. The Company in no way shall be responsible for Flight Miss, Any loss, injury or damage to person or property<br /></li><li>
in connection with the transportation, caused by acts of strikes, pilferage, breakdown of machinery, accidents ,<br /></li><li>
Snow fall etc. All Sightseeing depends on Permits, weather & road condition.<br /></li><li>
4. The tours is non transferable and non refundable.<br /></li><li>
5. All Transfers on a shared basis in a coach (seat-in-coach)<br /></li><li>
6. Booking charges extra 5% per person<br /></li><li>
7. Cost will be increase when passenger will less.<br /></li><li>
IMPORTANT FACTS</p></li></ul>					
								</div>
												</div>
				<div class="col-3 thinColumn"><!--MIDDLE ROW1 COL-1 STARTS-->
				<div class="column_Box mc">
				<div class="tcl bullet divider">
				<div class="h h2"><b class="plusMinus"></b>
				<p class="b dif rHead">Packages by City</p>
				</div>
				<div class="ic showHide_rp">
				<div class="mt10px">
									<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.swaraworldtrip.com/packages-in-washington.htm" title="Packages in Washington">Washington</a> <b class="alpha50 bn small">(3)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.swaraworldtrip.com/packages-in-san-francisco.htm" title="Packages in San Francisco">San Francisco</a> <b class="alpha50 bn small">(3)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.swaraworldtrip.com/packages-in-new-delhi.htm" title="Packages in New Delhi">New Delhi</a> <b class="alpha50 bn small">(3)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.swaraworldtrip.com/packages-in-ooty.htm" title="Packages in Ooty">Ooty</a> <b class="alpha50 bn small">(3)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.swaraworldtrip.com/packages-in-jodhpur.htm" title="Packages in Jodhpur">Jodhpur</a> <b class="alpha50 bn small">(3)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.swaraworldtrip.com/packages-in-kodaikanal.htm" title="Packages in Kodaikanal">Kodaikanal</a> <b class="alpha50 bn small">(3)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.swaraworldtrip.com/packages-in-singapore-city.htm" title="Packages in Singapore">Singapore</a> <b class="alpha50 bn small">(3)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.swaraworldtrip.com/packages-in-hong-kong.htm" title="Packages in Hong Kong">Hong Kong</a> <b class="alpha50 bn small">(2)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.swaraworldtrip.com/packages-in-gulmarg.htm" title="Packages in Gulmarg">Gulmarg</a> <b class="alpha50 bn small">(2)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.swaraworldtrip.com/packages-in-pahalgam.htm" title="Packages in Pahalgam">Pahalgam</a> <b class="alpha50 bn small">(2)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.swaraworldtrip.com/packages-in-orlando-usa.htm" title="Packages in Orlando">Orlando</a> <b class="alpha50 bn small">(2)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.swaraworldtrip.com/packages-in-jaipur.htm" title="Packages in Jaipur">Jaipur</a> <b class="alpha50 bn small">(2)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.swaraworldtrip.com/packages-in-mysore.htm" title="Packages in Mysore">Mysore</a> <b class="alpha50 bn small">(2)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.swaraworldtrip.com/packages-in-new-york.htm" title="Packages in New York">New York</a> <b class="alpha50 bn small">(2)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.swaraworldtrip.com/packages-in-las-vegas.htm" title="Packages in Las Vegas">Las Vegas</a> <b class="alpha50 bn small">(2)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.swaraworldtrip.com/packages-in-udaipur.htm" title="Packages in Udaipur">Udaipur</a> <b class="alpha50 bn small">(2)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.swaraworldtrip.com/packages-in-srinagar.htm" title="Packages in Srinagar">Srinagar</a> <b class="alpha50 bn small">(2)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.swaraworldtrip.com/packages-in-nainital.htm" title="Packages in Nainital">Nainital</a> <b class="alpha50 bn small">(2)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.swaraworldtrip.com/packages-in-darjeeling.htm" title="Packages in Darjeeling">Darjeeling</a> <b class="alpha50 bn small">(2)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.swaraworldtrip.com/packages-in-munnar.htm" title="Packages in Munnar">Munnar</a> <b class="alpha50 bn small">(2)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.swaraworldtrip.com/packages-in-jaisalmer.htm" title="Packages in Jaisalmer">Jaisalmer</a> <b class="alpha50 bn small">(2)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.swaraworldtrip.com/packages-in-manali.htm" title="Packages in Manali">Manali</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.swaraworldtrip.com/packages-in-lucknow.htm" title="Packages in Lucknow">Lucknow</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.swaraworldtrip.com/packages-in-bhubaneswar.htm" title="Packages in Bhubaneswar">Bhubaneswar</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.swaraworldtrip.com/packages-in-rishikesh.htm" title="Packages in Rishikesh">Rishikesh</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.swaraworldtrip.com/packages-in-mcleodganj.htm" title="Packages in Mcleodganj">Mcleodganj</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.swaraworldtrip.com/packages-in-los-angeles.htm" title="Packages in Los Angeles">Los Angeles</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.swaraworldtrip.com/packages-in-chittorgarh.htm" title="Packages in Chittorgarh">Chittorgarh</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.swaraworldtrip.com/packages-in-bangalore.htm" title="Packages in Bangalore">Bangalore</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.swaraworldtrip.com/packages-in-cairo-tour.htm" title="Packages in Cairo">Cairo</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="uu db ar"><a class="showallspan" data-target="show" href="javascript:void(0)" >View More</a></span>
										
				</div>
				</div>
				</div>
				</div>
				
				<div class="column_Box mc">
				<div class="tcl bullet divider">
				<div class="h h2"><b class="plusMinus"></b>
				<p class="b dif rHead">Packages by Category</p>
				</div>
				<div class="ic showHide_rp">
				<div class="mt10px">
									<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.swaraworldtrip.com/heritage-holidays-catid.htm" title="Heritage Packages">Heritage</a> <b class="alpha50 bn small">(21)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.swaraworldtrip.com/beach-islands-holidays-catid.htm" title="Beach and Islands Packages">Beach and Islands</a> <b class="alpha50 bn small">(12)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.swaraworldtrip.com/mountain-climbing-holidays-catid.htm" title="Mountain Climbing Packages">Mountain Climbing</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.swaraworldtrip.com/paragliding-holidays-catid.htm" title="Paragliding Packages">Paragliding</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.swaraworldtrip.com/river-rafting-holidays-catid.htm" title="River Rafting Packages">River Rafting</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.swaraworldtrip.com/valley-holidays-catid.htm" title="Valley Packages">Valley</a> <b class="alpha50 bn small">(11)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.swaraworldtrip.com/religious-pilgrimage-holidays-catid.htm" title="Religious & Pilgrimage Packages">Religious & Pilgrimage</a> <b class="alpha50 bn small">(2)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.swaraworldtrip.com/lakes-rivers-holidays-catid.htm" title="Lakes & Rivers Packages">Lakes & Rivers</a> <b class="alpha50 bn small">(9)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.swaraworldtrip.com/safari-holidays-catid.htm" title="Safari Packages">Safari</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.swaraworldtrip.com/hill-station-holidays-catid.htm" title="Hill Station Packages">Hill Station</a> <b class="alpha50 bn small">(3)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.swaraworldtrip.com/adventure-holidays-catid.htm" title="Adventure Packages">Adventure</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="uu db ar"><a class="showallspan" data-target="show" href="javascript:void(0)" >View More</a></span>
						
				</div>
				</div>
				</div>
				</div>
				
				
				</div>
				</div>
				
								
				</div>
				</section>
				
				<script>
					window.addEventListener("DOMContentLoaded", function(){
						jQuery(document).on("click", ".showallspan", function(){
							if(jQuery(this).attr("data-target") === 'show'){
								jQuery(this).text("View Less");
								jQuery(this).attr("data-target", "hide");
								jQuery(this).closest("div").find(".spanlist").removeClass("dn");
							}else{
								jQuery(this).text("View More");
								jQuery(this).attr("data-target", "show");
								jQuery(this).closest("div").find(".spanlist").addClass("dn");
							}
						});
					});
				</script>
				";i:1;s:53:"Book Bhutan Package - 6 Nights / 7 Days Tour Packages";i:2;s:133:"book bhutan package - 6 nights / 7 days tour packages, hill station tour packages, thimphu, paro, punakha, phuntsholing tour packages";i:3;s:197:"Book Bhutan Package - 6 Nights / 7 Days tour packages from Swara Tours Packages Consultancy - Get attractive 6 Nights / 7 Days Hill Station  tour packages for  Thimphu, Paro, Punakha, Phuntsholing.";i:4;s:19148:"
			<script type="application/ld+json">
		    {
		      "@context": "https://schema.org",
		      "@type": "TouristAttraction",
		      "address": {
		        "@type": "PostalAddress",
		         "addressRegion": "Thimphu, Paro, Punakha, Phuntsholing"        
		                 },
		      "description": "3*/4* Hotels, Twin/triple Sharing,  Map Plan, Pick Up / Drop to Bagdora Airport, 
entrance and Immigration Exp. Rs 1500 per Person Extra

itinerary- (06 Night/07 Days)
day: 1 Bagdogra to Phuntsholing- 170kms ---
arrival At Bagdogra Airport & Departure for Phuntsholing (170 Kms. 04-05 Hrs.)take the Permit to Visit Bhutan.
overnight Stay At Hotel.
day: 2 Phuntsholing to Thimpu – 180kms
post Breakfast Drive Towards Thimphu and After Reaching Thimphu Visit the Following:
kuensel Phodrang:the Kuensel Phodrang or the Buddha Point is the World’s Largest Sitting Buddha Statue, The
statue is 167 Feet High. the Statue is Situated On Top of a Hill Overlooking the City of Timphu, It Can Be Accessed By
road and is About 15 Minutes Away from the City‟s Center. the Word Kuensel Means Everything is Clear and From
this Place You Will Sure Enjoy a Great View of the Thimphu Valley On Both Sides. the Statute Will House a Temple
inside It, the Statue and Its Adjoining Car Park and Recreational Center are Currently Under Construction and Is
expected to Be Ready By December 2012. the Statue is Constructed Out of Bronze and is Studded with Many Semiprecious
stones. Since They are No Factories in Country that Can Make such a Large Bronze Cast Structure,
statute is Being Manufactured in China and the Pieces are Brought to Bhutan and are Assembled Here. On The
drive to the Statue the Steep Winding Hill Road Offers An Unparalleled View of the City of Thimphu and is An
excellent Place to Capture a View of the City Especially After Dark. a Journalist Once Described the View As
“seeing An Osasis of Light in the Desert of Darkness “as the City Light of Thimphu Shine Very Bright in An
otherwise Dark Thimphu Valley.
later in the Evening You Can Visit Tashichho Dzong: the Dzong is a Buddhist Monastery Cum Fortress At The
northern Edge of Thimpu the Capital City of Bhutan. the Dzong Was Built On the Western Bank of the River Wang
chu, and Has Historically Served At the Seat of the Druk Desi or the Dharma Raja of Bhutan‟s Government. After
the Kings Assumed Power in 1907 this Post Was Combined with that of the King and Thimphu Severed as The
summer Caital of the Kingdom Before Becoming the Full Time Capital of Bhutan. the Original Thimphu Dzong (the
dho-ngyen Dzong) is Said to have Been Constructed in 1216 By Lama Gyalwa Lhanangpa. and Was Later Taken Over
by Lama Phajo Drukgom Shigpo Before the Dzong Was Conquered By Shabdrung Ngawang Namgyal, Who Found
the Dzong to Be Too Small and Expanded It to What is Now Known as Thetashichho Dzong is also Called The
"fortress of Glorious Religion." It Was Erected in 1641 and Was Subsequently Rebuilt By King Jigme Dorji
wangchuck in the 1960s. the Dzong Has Been Seat of the Royal Government Since 1952 and Presently Houses The
throne Room and the Kings Secretariat. the Tashichho Dzong is also Home to Several Ministries of the Bhutanese
government, and the Central Monk Body Which is the Apex Organization of the Country's Main Spiritual
order. the Monument Welcomes Visitors During the Thimphu Tsechu Festival Which is Held in Autumn Each Year.
the Dzongs Main Structure is a Two Striped Quadrangle with 3 Storied Towers On Each of Its Four Corners
over Night At Thimphu.
day: 3 Thimpu Sightseeing & Punakha
post Breakfast, Visit the Following:
motithang Takin Preserve: the Motithang Takin Preserve also Known as the Thimphu Zoo By Many is a Small
natural Preserve for the Takin Bhutan‟s National Animal. It Was Originally a Mini Zoo, But It Was Converted in A
preserve Later On as the Takin. the Mini Zoo Contained a Small Number of Takin But the King of Bhutan Later
decreed that It Was Improper for a Buddhist Nation to Keep An Animal in Captivity. the Animals Were Set Free And
the Zoo Was Shut Down, But for Some Reason the Takin Refused to Leave the Area for the Forests Nearby. Instead
the Animals Were Frequesntly Found Roaming Around the Streets of the Capital City in Search for Food. as a Result
the Government Decided to Demarcate An 8 Acre Fenced Location as the Motithang Takin Preserve. the Preserve
is a Forested Preserve that Mimics the Takin‟s Natural Habitat, in Addition to the Takin There are a Few Musk
deer and Barking Deer that Live Inside the Preserve. There are Plans to Expand the Preserves Collection To
include other Rarely Seen Animals that Live in Bhutan, Currently the Preserve Plans to Add the Red Panda and The
himalayan Serow to the Preserve.
jungshi Handmade Paper Factory: this is a Private Factory and They Manufacture a Special Watermark Paper As
well as Products such as Lampshades, Envelopes and other Objects Made of Traditional Bhutanese Paper. They
make Great Gifts to Take Home with You and are Genuinely Unique. It is Not Just the Texture of These Handmade
paper Products that Will Intrigue You, But also Their Unique Earth Tones and Natural Hews. this Factory
manufactures a Special Watermark Paper as Well as Products such as Lampshades, Envelopes and other Objects
made of Traditional Bhutanese Paper. Bhutan Protects Its Environment Through Long-term Sustainability, And
they Follow It Because They Do Not Destroy the Plant When They Extract the Raw Material Required. Paper
products are Manufactured from "daphne Papyracea".
folk Heritage Museum: the Folk Heritage Museum Was Open to the General Public in 2001 Upon Completion. It
treasures Troves of Culture and Rich Bhutanese Heritage Provide Rich Insights Into the Bhutanese Ethos. Try To
schedule Your Visit During the Morning Hours Since the Museum is Less Crowded At that Time and There is Plenty
of Sunlight to Go Around. the Folk Heritage Museum is Housed in a Replica Traditional Bhutanese House Learn
first-hand About Bhutan‟s Rich Cultural Traditions, Its Deeply Rooted Heritage Which Spans Thousands of Years
and the Bhutanese Way of Life. the Tour of this Almost Living Museum Will also Give You a Glimpse Onto How Many
rural Folk of the Country Live Today Following the Ancient Bhutanese Ways.
memorial Chorten: Referred to as Thememorial Chorten, It’s Actual Name is Gongzo Chorten or Gyaldren Chorten.
the Chorten (stupa) is a Chief Landmark in the Capital City and is also a Most Sacred Place of Worship for Local
people. the Idea of the Chorten Was Conceptualized By the Third King His
majesty Jigme Dorji Wangchuck to Ward-off Negative Energies. After His Majesty’s Demise, the Chorten Was Built
in His Memory By the 4 Th King and the Then Queen Mother in 1972.many Old People Come Here Early in The
morning to Circumambulate and Say Their Prayers in the Hopes of Garnering Enough Good Karma for Their
afterlife; They are Joined By the Middle and the Younger Generation in the Evenings Who also Come to Do Either
the Same Thing or to Just Relax Their Mind. the Doors of this Stupa Remain Mostly Closed Except On Holy Days.
inside, There are Three Stories and On Each Floor are Statues of Protective Deities.
coronation Park:located On the Banks of the River (near the City Stadium), this 5.6 Acres of Parkland Offer A
pleasant and Relaxing Environment to Stroll or to Sit and Watch the River Flow By.
craft Bazaar: Organised On Tuesday and Wednesday in Centenary Farmer’s Market, Under Patronage Of
department of Cottage & Small Industry and in Collaboration with the Department of Culture, Tourism Council
and the Department of Agriculture Marketing and Cooperatives, this Market Offers Genuine Bhutanese Arts
& Crafts Thus Contributing in Promotion, Protection and Preservation of Traditional Arts.
afternoon Transfer to Punakha, Via Dochu-la-pass (10,170 Ft.) to View the Higher Himalayas.
drive Toward Punakha, Stop At Dochula Pass (3,100 M), Where On a Sunny Day, You Can Get Stunning Views of The
himalayan Ranges. the Dochu La Pass is Probably the Best Known Mountain Pass in Bhutan. Located At An
altitude of 3150 Meter Above Sea Level, the Dochu La Pass is About 30 Kilometer Away from the Capital City
thimphu and the Road to Punakha. On a Clear Day the Pass Offers Visitors a Spectacular View of the Majestic
eastern Himalayan Ranges. a Cup of Hot Coffee or Tea At the Pass Has Almost Become Part of Tradition for People
travelling to and Fro from Punakha to the Capital City.
there is a Small Cafeteria At the Pass that Offers a Chance for Travelers to Enjoy a Hot Beverage or a Snack, It Is
located Just Off the Road and Overlooks the Pass and is An Ideal Place to Sit Back, Relax and Enjoy the View.
another Striking Feature At the Pass are the 108 Druk Wangyal Khangzang Chortens, that Were Built for the Wellbeing
of all Sentiment Beings On Earth. the 108 Chorten Were Built as a Tribute to the Kings of Bhutan for Their
selfless Service and Leadership They Offer to the People of Bhutan. These Stupas or Chortens also Represent The
peoples Love, Appreciation and Loyalty Towards the Country’s King.
continue Drive Towards Punakha and Stop At Lobesa Village and have Lunch Before Going for a Short Hike to Chimi
lhakhang (temple of Fertility), It is Dedicated to Lam Drukpa Kuenley (divine Mad Man) and is the Place From
where Phalluses Originated as the Symbol of Fertility and Protection and Can Be Seen Everywhere in Bhutan, On
house Walls and Roofs and Altars. Childless Couples Usually Go to this Temple to Get Blessings So that They
conceive and are Blessed with a Child.
(note: the Temple and Has Some Sexual Depictions. You May Want to Reconsider Visiting this Place if You are Not
comfortable with Children Seeing These)
then Drive to Punakha Dzong: the Punakha Dzong or the Pungtang Dechen Phortang Dzong is Located At The
confluence of the Mo Chhu and the Po Chhu River, Combine to Form the Puna Tsang Chu Which in Turn is A
tributary of the Mighty Brahmaputra River. the Dzong Was Constructed By Zhabdrung Ngawang Namgyal in 1638
on the Exact Spot as Prophesized By the Guru Rinpoche Some 800 Years Ago. According to the Prophecy of Guru
rinpoche “a Person Named Namgyal Will Arrive At a Hill that Looks like An Elephant”. Another Legend Associated
with the Dzong is that of Zowe Palep, the Architect of the Dzong Received Vision of the Dzong in His Sleep. This
vision Got Imprinted in the Architects Mind and Enabled Him to Construct the Dzong Without Putting His Plans To
paper.
it is the Second Largest and the Second Oldest Dzong in Bhutan. the Dzong is Home to Some of the Most Sacred
relics of the Drukpa Kagyu School of Buddhism; It is also Home to the Sacred Mortal Remains of Zhabdrung
ngawang Namgyal and Terton Pema Lingpa the Great Treasure Discoverer of Bhutan. the Dzong Has also Served
as the Capital Bhutan Till 1955 Before the Capital Was Moved to Thimphu. the Dzong is Still the Winter Residence
of the Je Khenpo (chief Abbot) and the Central Monastic Body and Plays Host to the Annual Punakha Tshechu
festival Which is Very Popular with the Locals and Tourists Alike.
overnight At a Hotel in Punakha.
day: 4 Punakha to Paro - 145kms
post Breakfast Drive Towards Paro Via Dochula Pass.
on the Way Visit Tamchog Lhakhang: Tachog Lhakhang is Temple that is Dedicated to the 13th Century Saint
thangthong Gyalpo, the Iron Bridge Builder. this Temple is Located Across the River About 15kms from the Paro
towards Thimphu. in Order to Get to the Temple One Must Cross An Iron Chain Bridge, One of the Few Remaining Of
the Many that Thangthong Gyalpo Built. Crossing this Very Old Bridge with Its Swaying and Undulating Movements
can Be Quite An Experience.
ta Dzong (national Museum): the Name Ta Dzong Translates to ‘watch Tower’ and It Served the Function of Watch
tower for the Paro Rinpung Dzong. Back in the Day, Similar Look-out Points Were Built for other Dzongs
(fortresses) to Counter Any Approaching Hostilities, for Those Were the Days of Frequent Strife. These Towers
were Specifically Built High Atop Hills and other Vantage Points During the Old Days.presently Serving as The
national Museum (since Late 60’s), It Houses An Array of Antiquities such as Ancient Thangka (exquisite Scroll
painting), Mural Paintings and other Forms of Art Done By Great Personalities of Those Days, Original Textiles Of
the Kingdom Which Represent the Culture that Still Flourishes, Weapons & Armour Used Back in the Day,
household Objects Typical to the Bhutanese People’s Way of Life Back Then and Even Now, and other Natural And
historical Artifacts.
dumtse Lhakhang: It is a Private Temple Built By Lam Chazampa (thangthong Gyalpo) in the 13-14 Century. This
is a Special Temple with 3 Floors Representing Hell, Earth and Heaven. all the Paintings and Artifacts in The
temples are as Old as the Temple Itself. the Pillars Inside Were Installed By the Different Villages in Paro Valley,
almost in a Competition like Way, Even Today the Names Villages are Engraved in the Pillars. Though the Temple Is
situated Very Close to Town, the Lighting is Powered By Solar Power But is Not Lit Very Much as the Owners Fear
the Lights Will Fade the Colors in the Paintings, So It is Essential to Take a Torch.
drugyal Dzong Ruins: Literally Means 'bhutan's Victory Fortress', It Was Built to in 1654 By
shabdrung Ngawang Namgyal to Commemorate the Victory Over the Tibetan Invaders and It Would also Control
and Guard the Trade Between Bhutan and Tibet as It Stood Right On the Trade Trail. It Stands Atop a Small Hill With
a Commanding View of the Valley Up and Below and On a Clear One Can Get to See the Beautiful Mount Jomolhari
from Here. It Caught Fire in 1951 and Has Been in Ruins Since, Some Renovation Works have Been Carried Out But
has Not Been Able to Go Full Swing. Although in Ruins, the Dzong is Still Beautiful to Look At and One Can Just Walk
about Inside the Ruins Trying to Imagine How Things Were Before.
overnight At Hotel in Paro.
day: 5 Paro - Tiger’s Nest Hike----
have Early Breakfast and Drive Up to the Base of Taktsang Monastery (tiger’s Nest): the Most Famous And
sacred Site among all the Places in Bhutan. Guru Padmasambhava is Said to have Come Riding On a Flying
tigress to this Place and Meditated in a Cave for 3 Months, It Wasn’t Until Zhabdrung Ngawang Namgyal Came
to this Place and Meditated that It Gained the Popularity that It Has Now. the Present Structure is Said to Be Built
in the 15 Th Century But Was Destroyed By Fire in 1998 and Has Been Restored.
the Walk is About 2 Hours Till the Top Through Wide Pathways Which Was Built During the Restoration Works. One
hour Into the Climb There is a Tea Point from Where You Get a Very Good View of the Monastery, They also Serve
lunch Here. from There It’s About Another 45 Minutes Climb to the 2 Nd View Point and the Highest Point in The
hike.
after the Hike have Leisure Time in Paro Town. Just Walking Along Paro Town Itself is Exciting and Really Beautiful
feelings to Enjoy Chilled and Fresh Air of Paro Eveniong.
kyichu Lhakhang: Considered the Oldest Temple Along with Jampa and Kenchosum Lhakhang in Bumthang, It
dates Back to the 7th Century When a Tibetan King Ordered 108 Temples to Be Built in a Single Night to Subdue A
huge Ogress. It Was Later Renovated in the Mid 19th Century and in the Late 1960's By the Grand Queen
mother.it is also Considered By Many to Be One of the Holiest Places in the Country. Inside the Compound is An
orange Tree Which Always Has Oranges No Matter What the Season.
overnight At a Hotel in Paro.
day 06: Paro – Phuentsholing
(distance: 200 Kms. / Driving Time: 7 Hrs. / Altitude of Phuentsholing: 293 Mts.)
after Breakfast Check Out from Hotel and Transfer to Phuentsholing. On Arrival Check in At the Hotel.
overnight Stay At Phuentsholing.
day: 7 Phuentsholing to Bagdogra/kolkata

entry Permit for Bhutan:

indian Nationals Do Not Require Any Visa for Bhutan. a Permit Will Be Issued At the Entry Point On Production of A
passport (with a Minimum Validity of 6 Months from the Date of Departure) or Voter Id (only Valid Document For
issuing the Bhutan Entry Permit). the Traveler also Has to Carry Photocopy of the Travel Documents and 04
passport Size Photographs. for Children, Original Birth Certificate in English and Student Id is Required.
if You are Entering Bhutan Via Land, It is to Be Noted that the Permits are Issued Only During Working Days And
hours. (monday to Friday Between 9 am to 4 Pm During Winter and 5 Pm During Summer). It is Suggested that The
travelers Arriving in Phuentsholing On Friday Should Arrive Latest By 10 am in Order to Complete the Entry
formalities. No Permits are Issued On Saturday, Sunday and Bhutan Government Holidays. However, During High
season Depending Upon the Rush Immigration May Take Long Time to Issue the Permit. We Shall Not Be Responsible
for Any Delay During Processing of Permit By the Immigration Authority. Please Keep Your Client Informed They
may have to Stand On Long Queue During High Season to Obtain the Permit if Traveling Via Phuentsholing.
special Permit for Places other Than Phuentsholing, Thimphu and Paro:
special Permit is Required to Visit Places Beyond Thimphu and Paro From, the Department of Immigrations,
thimphu. No Charges Will Be Applicable for this Permit. Please Bring 02 Passport Size Photographs and Voter Id
card or Passport of Each Person Including Child. this Special Permit is Given Only After Guest Has Entered
bhutan. Permits are Not Issued On Saturday, Sunday & Bhutan Govt. Holidays.
railway Tickets, Local Transport.
 Personal Expenses such as Laundry, Telephone Calls, Tips & Gratuity, Mineral Water,
soft & Hard Drinks, Rafting, Rock Climbing, Paragliding, Porterage.
 Additional Sightseeing or Extra Usage of Vehicle, Horse Riding, Doli/baggi, Rope
way/electronics Lift, Khechara Gadi, River Boat/speed Boat, Gandola Ticket, Garden
entrance Ticket, Pony Fide, Shikara Fide Etc. Bother Than Mentioned in the Itinerary.
 Entrance Fees & Guide Charges.
 Any Cost Arising Due to Natural Calamities Like, Landslides, Road Blockage, Political
disturbances (strikes), Etc (to Be Borne By the Client, Which is Directly Payable On
the Spot).
 Any Increase in Taxes or Fuel Price, Leading to Increase in Cost On Surface
transportation & Land Arrangements, Which May Come Into Effect Prior To
departure. Photo Camera, Garden/any Entertainment Shoes Entry Fee.
 Any Condition No Refund. Your Booking Confirmation is 100% Not Refundable Basis.
 Room Heater Charges *service Tax. *insurance.
 Anything Which is Not Included in the Inclusion.
 Meals Outside of the Stated Meal Plan
 Early Check in & Late Check Out At the Hotels (check in & Check Out Time 14.00 To
12.00 Noon) Any other Services Not Specified Above.",
		      "name": "Bhutan Package",
		      "telephone": "+91-9422645201"
		    }
		    </script>
			";i:5;N;}