a:6:{i:0;s:13799:"				<div class="h1"><h1>Druk Wangyel Festival Tour</h1></div>
				<p class="breadcrumb ar uu small"><a href="http://www.exoticvacationsbhutan.biz/" title="Home">Home</a> 
				
									<b class="ffv p2px">&rsaquo;</b><a href="http://www.exoticvacationsbhutan.biz/holiday-packages.htm" title="Holiday Packages">Holiday Packages</a>  			
									
				<b class="ffv p2px">&rsaquo;</b>Druk Wangyel Festival Tour</p>
				<br />
				
								
						<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">
					<table class="w100 packageForm">
											<tr>
						<td class="b p5px w125px vat">Tour Code </td>
						<td class="p5px pl0px vat">03</td>
						</tr>
												<tr>
						<td class="b p5px w125px vat">Duration </td>
						<td class="p5px pl0px vat">
						6 Nights / 7 Days 
						</td>
						</tr>
												<tr>
						<td class="b p5px w125px vat">Destination Covered </td>
						<td class="p5px pl0px vat">Thimphu, Paro, Punakha</td>
						</tr>
												<tr>
						<td class="b p5px w125px vat">Price (Starting From) </td>
						<td class="p5px pl0px vat">
						USD 1515 Per Person						</td>
						</tr>
												<tr>
						<td class="b p5px dif w125px vat">Special Offer </td>
						<td class="p5px pl0px dif vat">15% discount will be offered to those who contact directly</td>
						</tr>
												<tr>
						<td></td>
						<td>
						<p>
						<form name="frmpackagedetail" id="frmpackagedetail" method="post" action="http://www.exoticvacationsbhutan.biz/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Druk Wangyel Festival Tour - Tour Package"/>
						<input type="hidden" name="allocate_type" value="tour"/>
						<a href="#" onclick="document.getElementById('frmpackagedetail').submit();" class="button p7px pl12px pr12px c5px b large dib mt10px">Book Your Tour</a>
						<input type="hidden" name="pkg_slno" value="126666"/>
						</form>
						</p>
						</td>
						</tr>
											</table>
					</td>
										</tr>
					</table>
					</div>
					<br />
					
					15% discount will be offered to those who contact directlyAir Fares,Guide and Driver tips and Personal Expenses11-0431-12<br />						<div class="headHr">
			            <p class="p7px b pl10px xlarge">Tour Itinerary</p>
			            </div>
			            
								<div class="data">
								<table class="w100 formTable bdr0 imgWidth">
								<tr>
								<td class="p10px vat">
								<p class="b large mb5px"><b class="dif">Day 1:</b> Arrive Paro International Airport - Thimphu
								</p>
								<p class="aj">Upon arrival at Paro International airport, you will be welcomed by our company representative and the tour guide will receive and escort you to designated Hotels in Paro or Thimphu depending on the Final Itinerary that may be agreed upon.<br />
<br />
The drive to Thimphu - world’s smallest capital takes about an hour on a well paved two lane road that follows Paro River downstream to the confluence with Wang Chu (Thimphu River). The 60 kms road then turn upstream towards Thimphu along the Wang Chu. Check in at the designated hotel in Thimphu.</p>
								</td>
								</tr>
								</table>					
								</div>
								<div class="data">
								<table class="w100 formTable bdr0 imgWidth">
								<tr>
								<td class="p10px vat">
								<p class="b large mb5px"><b class="dif">Day 2:</b> Thimphu - Sightseeing
								</p>
								<p class="aj">We will start our sightseeing tour visiting Memorial Chorten built in memory of the 3rd King Jigme Dorji Wangchuck who reigned the Kingdom from 1952-1972. Visit the National Library where ancient manuscripts are preserved. Further, we will visit the Zorig Chusum - 13 Arts & Crafts Institute where traditional arts and crafts are still kept alive. The visitors can see students of different trades at work like: Sculpting, Thanka Painting, Wood Carving and other skills.<br />
<br />
Afternoon visit to the Textile Museum, Handicrafts Emporium, Crafts Bazaar where Bhutanese textiles and other arts and crafts are displayed and can be purchased. In the evening free for a leisure walk to explore Thimphu city - the world’s smallest capital and the only capital city where Traffic Lights are absent. The walk around the city is easy and would be enjoyable to experience the Bhutanese way of life.</p>
								</td>
								</tr>
								</table>					
								</div>
								<div class="data">
								<table class="w100 formTable bdr0 imgWidth">
								<tr>
								<td class="p10px vat">
								<p class="b large mb5px"><b class="dif">Day 3:</b> Thimphu - Punakha
								</p>
								<p class="aj">Check-out from the hotel and drive up to Dochula-La pass (3,100m) to attend the spectacular Druk Wangyel Festival. Set amidst this breathtaking backdrop of Himalayan Mountains, the Druk Wangyel Tsechu is an experience unlike any other and truly exemplifies Bhutanese cultural traditions. The Druk Wangyel Tshechu is a unique festival performed by the Royal Bhutan Army rather than monks or lay people. It is a tribute to the wise leadership of His Majestry Jigme Signgye Wanchuck, the fourth King of Bhutan.<br />
<br />
Afterwards drive towards the Royal Botanical Park at Lamperi. The Park serves as the biological corridor connecting to the Jigme Dorji National Park and Jigme Singye Wangchuck National Park. Continue on to Punakha, the formal capital of Bhutan where you will take a stroll through Punakha town in the evening. Overnight at Punakha.</p>
								</td>
								</tr>
								</table>					
								</div>
								<div class="data">
								<table class="w100 formTable bdr0 imgWidth">
								<tr>
								<td class="p10px vat">
								<p class="b large mb5px"><b class="dif">Day 4:</b> Punakha
								</p>
								<p class="aj">After a leisurely breakfast, we will visit Punakha Dzong built in 1637 by Zhabdrung Ngawang Namgyel, the "Unifier of Bhutan" to serve as the religious and administrative center of the region. It is placed strategically at the junction of the Pho Chu and Mo Chu rivers. Damaged over the centuries by four catastrophic fires and an earthquake, the Dzong has been fully restored in recent years by the present monarch and displays some of the best works of Bhutanese arts and crafts.<br />
<br />
After lunch enjoy a walk to Chimi Lhakhang, the temple of fertility, blessed by the Divine Mad in the 1500s. The walk to the temple will take about 45 minutes one way through rice paddy fields. Overnight at Punakha/WangduePhodrang.</p>
								</td>
								</tr>
								</table>					
								</div>
								<div class="data">
								<table class="w100 formTable bdr0 imgWidth">
								<tr>
								<td class="p10px vat">
								<p class="b large mb5px"><b class="dif">Day 5:</b> Punakha - Paro
								</p>
								<p class="aj">In the morning drive to Yabesa village and hike to through rice fields and up to Khamsum Yueley Namgyal Chorten, built by her majesty the queen Ashi Tshering Yangdon Wangchuk. Take a picnic lunch on a picturesque riverside before exploring the Wangduephodrang Dzong. Built in 1639 the strategically located Dzong is perched on a spur at the confluence of two rivers.<br />
<br />
In the evening take a stroll through Paro town. The town is flooded with handicraft shops catering to tourist interest. There also fake jewelry shops. Bargaining is accepted and part of business deals.</p>
								</td>
								</tr>
								</table>					
								</div>
								<div class="data">
								<table class="w100 formTable bdr0 imgWidth">
								<tr>
								<td class="p10px vat">
								<p class="b large mb5px"><b class="dif">Day 6:</b> Paro
								</p>
								<p class="aj">Hike to Tiger`s Nest, one of the most sacred Taktshang monasteries in Bhutan. It is perched on the cliff where Guru Rinpoche is said to have flown to the site riding on a tigress. He subsequently meditated here for three months. You can have lunch at the Taktshang cafeteria from where you get a spectacular view of the monastery.<br />
<br />
In the afternoon drive to the ruins of the 17th Century Drukgyel Dzong, an historic monument built by the Zhabdrung to commemorate his victory against invading Tibetans in 1644. In fine weather the towering peak of the sacred Mount Jomolhari (7314m) appears as a stunning backdrop. On the return drive to Paro, visit 7th Century Kyichu Lhakhang, one of the 108 temples constructed by the Tibetan king Songtsen Gampo. Overnight at Paro.</p>
								</td>
								</tr>
								</table>					
								</div>
								<div class="data">
								<table class="w100 formTable bdr0 imgWidth">
								<tr>
								<td class="p10px vat">
								<p class="b large mb5px"><b class="dif">Day 7:</b> Paro - International Airport
								</p>
								<p class="aj">The guests will be Seen Off by a Representative of our company and the Tour Guide at the Exit Gate. Wish Bon Voyage!!!</p>
								</td>
								</tr>
								</table>					
								</div>						<br />
												 <p class="headHr p7px b pl10px xlarge">Tour Detail</p>
			             <div class="data p15px aj">
										
						<p class="large b mb5px dif">Inclusions :</p>
						<ul>
															<li>Hotel</li>
																		<li>2 Star Hotel</li>
																		<li>3 Star Hotel</li>
																		<li>4 Star Hotel</li>
																		<li>5 Star Hotel</li>
																		<li>Meals</li>
																		<li>Sightseeing</li>
																		<li>Transport</li>
																		<li>Transfers</li>
																		<li>Airport Pickup-Drop</li>
																		<li>Private Cab</li>
																		<li>Private Guides</li>
																		<li>Entry Tickets</li>
																		<li>Sim Card</li>
																		<li>Complimentary Drinks</li>
																		<li>Bus Transfer</li>
																		<li>Cab Transfer</li>
																		<li>Stay Included</li>
																		<li>Non Veg Meals</li>
																		<li>Veg Meals</li>
																		<li>Veg & Non Veg Meals</li>
															</ul>
						<br />
												<p class="large b mb5px dif">Exclusions :</p> <ul><li>Air Fares,Guide and Driver tips and Personal Expenses</li></ul><br />
												<p class="large b mb5px dif">Specific Departure Dates :</p>All season Awaits<br />
											
						<p class="large b mb5px dif">Terms &amp; Conditions :</p>~^#^~~^#^~<header>
<h1>Cancellation Policy</h1>
</header>

<p><strong>Tour programs booked and subsequently cancelled shall be subject to cancellation charges as follows:</strong>

<table>
	<tbody>
		<tr>
			<td>1</td>
			<td>Within 45 days of the start of the tour program</td>
			<td>15% of the total tour cost</td>
		</tr>
		<tr>
			<td>2</td>
			<td>Within 30 days</td>
			<td>25% of the total tour cost</td>
		</tr>
		<tr>
			<td>3</td>
			<td>Within 21 days</td>
			<td>30% of the total tour cost</td>
		</tr>
		<tr>
			<td>4</td>
			<td>Within 15 days</td>
			<td>50% of the total tour cost</td>
		</tr>
		<tr>
			<td>5</td>
			<td>Less than 7 days</td>
			<td>100% of the total tour cost</td>
		</tr>
	</tbody>
</table>

<h5>*&nbsp;DELAYED ARRIVAL/DEPARTURE</h5>

<ul>
	<li>There shall be no fixed charge for the number of days of delay in arrival of visitors due to weather conditions, Druk-air problems or road blocks except for minimum charge on hotel cancellation, transport and guide.</li>
	<li>There shall be no charge for the number of days of delay in departure of visitors due to weather conditions, Druk-Air problems or roadblocks. They will be charged only the actual expenses on accommodation, food, transport, guide and any other services required.</li>
</ul>

<p><strong>DRUK AIR CANCELLATION POLICY:</strong>

<ul>
	<li>Tickets issued and cancelled shall be subject to cancellation charges as follows:</li>
	<li>Within 45 days of the start of travel: no charges except documentation fees</li>
	<li>Within 30 days of the start of travel: 50% of the fare</li>
	<li>Within 15 days of the start of travel: 100% (No refund)</li>
	<li>Name Change: USD 25 per ticket</li>
</ul>												</div>
												
						<div class="ac mb10px">
						<form name="frmpackagedetail" id="frmpackagedetail" method="post" action="http://www.exoticvacationsbhutan.biz/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Druk Wangyel Festival Tour - Tour Package"/>
						<input type="hidden" name="allocate_type" value="tour"/>
						<a href="#" onclick="document.getElementById('frmpackagedetail').submit();" class="button p7px pl12px pr12px c5px b large dib mt10px">Book Your Tour</a>
						<input type="hidden" name="pkg_slno" value="126666"/>
						</form>
						</div>
						
						";i:1;s:65:"Book Druk Wangyel Festival Tour - 6 Nights / 7 Days Tour Packages";i:2;s:135:"book druk wangyel festival tour - 6 nights / 7 days tour packages, festive & events tour packages, thimphu, paro, punakha tour packages";i:3;s:190:"Book Druk Wangyel Festival Tour - 6 Nights / 7 Days tour packages from Exotic Vacations Bhutan - Get attractive 6 Nights / 7 Days Festive & Events  tour packages for  Thimphu, Paro, Punakha.";i:4;s:540:"
			<script type="application/ld+json">
		    {
		      "@context": "https://schema.org",
		      "@type": "TouristAttraction",
		      "address": {
		        "@type": "PostalAddress",
		         "addressRegion": "Thimphu, Paro, Punakha"        
		                 },
		      "description": "15% discount will be offered to those who contact directlyAir Fares,Guide and Driver tips and Personal Expenses11-0431-12",
		      "name": "Druk Wangyel Festival Tour",
		      "telephone": "+975-77685791"
		    }
		    </script>
			";i:5;N;}