a:6:{i:0;s:37382:"				<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-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-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-munnar.htm" title="Packages in Munnar">Munnar</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-jaisalmer.htm" title="Packages in Jaisalmer">Jaisalmer</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-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 spanlist dn"><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 spanlist dn"><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-mount-abu.htm" title="Packages in Mount Abu">Mount Abu</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-yamunotri.htm" title="Packages in Yamunotri">Yamunotri</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-goa-city.htm" title="Packages in Goa City">Goa City</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-dharamshala.htm" title="Packages in Dharamshala">Dharamshala</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-varanasi.htm" title="Packages in Varanasi">Varanasi</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-puri.htm" title="Packages in Puri">Puri</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-sonamarg.htm" title="Packages in Sonamarg">Sonamarg</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-bangkok.htm" title="Packages in Bangkok">Bangkok</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-kochi.htm" title="Packages in Kochi">Kochi</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;}