a:6:{i:0;s:17179:"				<div class="h1"><h1>The Beauty triangle Darjeeling Tour</h1></div>
				<p class="breadcrumb ar uu small"><a href="http://www.grabyourholidays.in/" title="Home">Home</a> 
				
									<b class="ffv p2px">&rsaquo;</b><a href="http://www.grabyourholidays.in/tour-packages.htm" title="Tour Packages">Tour Packages</a>  			
									
				<b class="ffv p2px">&rsaquo;</b>The Beauty triangle Darjeeling 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">Duration </td>
						<td class="p5px pl0px vat">
						5 Nights / 6 Days 
						</td>
						</tr>
												<tr>
						<td class="b p5px w125px vat">Destination Covered </td>
						<td class="p5px pl0px vat">Gangtok, Darjeeling, Kalimpong</td>
						</tr>
												<tr>
						<td class="b p5px w125px vat">Price (Starting From) </td>
						<td class="p5px pl0px vat">
						INR 14875 Per Person						</td>
						</tr>
												<tr>
						<td class="b p5px dif w125px vat">Special Offer </td>
						<td class="p5px pl0px dif vat">Huge Discounts on Group Tour Bookings!!</td>
						</tr>
												<tr>
						<td></td>
						<td>
						<p>
						<form name="frmpackagedetail" id="frmpackagedetail" method="post" action="http://www.grabyourholidays.in/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="The Beauty triangle Darjeeling 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="82879"/>
						</form>
						</p>
						</td>
						</tr>
											</table>
					</td>
											<td class="p10px vat imgWidth150 w150px lh0">
						<div class="demo-wrap">
						<ul class="lsn m0px p0px" >
															<li class="bdr bw3px c5px p1px"><div class="dt"><p class="ac vam dtc w150px h150px"><a rel="gall" data-fancybox="showZoomImage" href="https://ttw.wlimg.com/package-images/photo-big/dir_16/457916/146833.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_16/457916/146833.jpg"  width="150" height="150"    alt="The Beauty triangle Darjeeling Tour" title="The Beauty triangle Darjeeling Tour" /></a></p></div></li>
															</ul>
						</div>
						</td>
											</tr>
					</table>
					</div>
					<br />
					
					*Breakfast Included.<br />
*Private Cab.<br />
*Sightseeing.Huge Discounts on Group Tour Bookings!!The Cost of meals which is not mentioned in included <br />
Monuments Entrances Fee.<br />
Any domestic or international air fare<br />
Medical and insurance of any kind. Any expenses arising out of unforeseen circumstances like flight delay/cancellation/hike in fare, strike or any other natural calamities<br />
Personal nature Expenses i.e. Telephone Calls, Laundry, Soft / Hard Drinks Meals, Tipping etc. Camera Fee at.<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> IXB to Kalimpong (75 km in 2 hrs)
								</p>
								<p class="aj">Our representative will warmly welcome you on arrival and assist you to the vehicle for the further journey. He will provide you all the relevant documents (Hotel vouchers and Itinerary).<br />
There after you will depart towards your dream destinations. Throughout your journey, you can enjoy the versatility in climate. Pleasant weather will win your heart completely. On the way, you will pass through Mahananda Wild life Sanctuary and more this journey offers magnificent views of the mountains, valleys and village life, the forest, waterfalls and hills covered with tea gardens.<br />
After reaching at Kalimpong, we assist you to check in at hotel and take rest. We suggest you to sleep early for next day tour. Overnight stay at Kalimpong.</p>
								</td>
									<td class="p10px vat imgWidth150 w150px lh0">
									<div class="demo-wrap">
									<ul class="lsn m0px p0px" >
												<li class="bdr bw3px c5px p1px"><div class="dt"><p class="ac vam dtc <? echo $p_class; ?>"><a rel="gall" data-fancybox="showZoomImage" href="https://ttw.wlimg.com/package-images/photo-big/dir_16/457916/146833.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_16/457916/146833.jpg"  width="150" height="150"    alt="The Beauty triangle Darjeeling Tour" title="The Beauty triangle Darjeeling Tour" /></a></p></div></li>
									</ul>
									</div>
									</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> Half Day Kalimpong City Tour visit to 5 points & transfer to Gangtok
								</p>
								<p class="aj">After Breakfast enjoy Kalimpong city tour. Visit Durpin Dara View Point, Army Golf Course, Graham’s Home, Deolo View Point and Pine View orchid nursery.<br />
Kalimpong to Gangtok, 80kms in 2.5hrs.<br />
Check out from Kalimpong and depart for Gangtok (Alt 5550Ft / 1675M). Enjoy the view of River Teesta on the way. After arrival check in at Hotel. Free evening for personal activities. Overnight stay at Gangtok.</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> Gangtok to Tsomgo Lake with Baba Mandir Excursion – 52kms in 3hrs - One way (Timing 7.30AM to 2.30
								</p>
								<p class="aj">You need to get up early, get fresh and have heavy breakfast till 7.30am. We drive you to Tsomgo Lake (Alt 12000ft/3600M), a high altitude alpine lake close to Indo-China Border. The 1 km long and 15m deep lake is considered sacred to the local people. During the winter, the pure clear water remains frozen and it continuous to be till the month of May. Enjoy playing in snow and Yak Ride. Proceed further to Legendary Baba Harbhajan Singh Mandir (Hero of Nathula An Indian soldier who was awarded the Maha Vir Chakra medal for his bravery and known for doing his duty still after death). Back to Hotel for late Lunch. Optional tour to Nathula Pass (Alt 14000Ft / 4200M) on China Border can also be arranged (Except Mon, Tue) for Indian Nationals only with 30 Days Advance Request at an additional cost. <br />
Take some rest. Or you may visit the famous M G Marg. This pedestal marg is an open shopping mall with a lovely ambience where tourists take a leisure stroll and relax on the benches laid along the both sides of the road. The entire area is free of litter, smoke and vehicle. Overnight stay at Gangtok.</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> City tour & transfer to Darjeeling
								</p>
								<p class="aj">Post breakfast Half day Gangtok City tour – (Timing 8.30AM to 1.00PM).<br />
Visit Banjakhri Water Falls, Government Institute of Cottage Industry (Closed on Sunday, 2nd Saturday), Orchid House Flower Show, Sikkim Research Institute of Tibetology, Do-drul Chorten.<br />
Gangtok to Darjeeling, 110kms in 4hrs – Check out from Gangtok and depart for Darjeeling (Alt 7100Ft/ 2100M). On the way, you can take a halt at Teesta Bazaar. After reaching at Darjeeling, we assist you to check in at hotel and take rest. We suggest you to sleep early for next day tour. Overnight stay at Darjeeling hotel.</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> Darjeeling Local Sightseeing
								</p>
								<p class="aj">Early morning 4.00am, your tour starts with visiting Tiger hill sunrise point.<br />
11 km far from city, you will watch the combined beauty of different colors, clouds, hills, snowy Mt. Kanchendzonga and vast landscape of Darjeeling. You can’t forget these moments ever. On your way back visit Ghoom Monastery and Batasia Loop. (Timing 4.00am to 7.30am)<br />
After breakfast visit most famous tourist points including Darjeeling Zoo, Mountaineering Institute (Closed on Thursday), Happy Valley Tea Estate, Tenzing Rock, Gombu Rock, Tibetan Refugee center (Closed on Sunday) Lebong Race Course outer view and Japanese temple & Peace pagoda. (Timing 9.30 to 2.30). <br />
Evening will be allocated for leisure time or to roam the local area, see their culture, activities, diversity & trend and also feel the difference between city life and hill life. Overnight stay at Darjeeling hotel.</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> Darjeeling to IXB/NJP 90kms in 3hrs
								</p>
								<p class="aj">Your heart will never allow you to leave this place but your destination awaits you. Today you will depart from Darjeeling with a cute smile on your face remembering all the sweet moments spent here and drive back to NJP Railway Station/Bagdogra Airport for further journey. Today your tour with Northeast Tour ends. Fly back with sweet memories of Northeast Tour.</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>Sightseeing</li>
																		<li>Transport</li>
																		<li>Transfers</li>
																		<li>Airport Pickup-Drop</li>
																		<li>Private Cab</li>
																		<li>Stay Included</li>
															</ul>
						<br />
												<p class="large b mb5px dif">Exclusions :</p> <ul><li>The Cost of meals which is not mentioned in included </li><li>
Monuments Entrances Fee.</li><li>
Any domestic or international air fare</li><li>
Medical and insurance of any kind. Any expenses arising out of unforeseen circumstances like flight delay/cancellation/hike in fare, strike or any other natural calamities</li><li>
Personal nature Expenses i.e. Telephone Calls, Laundry, Soft / Hard Drinks Meals, Tipping etc. Camera Fee at.</li></ul><br />
												<p class="large b mb5px dif">Departure Cities with rates :</p>New Jalpaiguri, Bagdogra, Darjeeling.<br /><br />
											
						<p class="large b mb5px dif">Terms &amp; Conditions :</p>~^#^~~^#^~<div>
<p><strong>SIGHTSEEING TIMING, TERMS &amp; CONDITIONS</strong>

<p><strong>***Halfday Sightseeing Means:- Sightseeing upto 4.30 hours from vehicle reporting time</strong>

<p><strong>***Full Day Sightseeing Means:- Sightseeing upto 8.30 hours from vehicle reporting time</strong>

<p><strong>***In Halfday/Fullday Sightseeing we always mention maximum points, can be covered/visited in that period. It is upto you how many points you can cover in that time</strong>

<p><strong>***Tsomgo/Nathula vehicle reporting time in normal/off season is&nbsp;<span data-term="goog_596416435" tabindex="0">8am to 9.30am</span>&nbsp;&amp; sence there is huge rush in peak season getting a permit for the same take some extra time so in peak season vehicle reporting time will be&nbsp;<span data-term="goog_596416436" tabindex="0">9 to 10.30AM</span></strong>

<p><strong>***Tiger Hill vehicle reporting time is&nbsp;<span data-term="goog_596416437" tabindex="0">4am</span>&nbsp;&amp; if you start after&nbsp;<span data-term="goog_596416438" tabindex="0">4.30am</span>&nbsp;we will not be hall responsible fot traffic/Missing the sunrise</strong>

<p><strong>***If any Sightseeing places are closed due to any reason you are doing the Sightseeing it cannot be covered next day in any circumstances.</strong>

<p><strong>***You cannot clubbed sightseeing &amp; Marketing at the time of your Sightseeing, if you want to do so kindly to the driver directly &amp; pay him extra</strong>

<p><strong>***If you are a group of less than 6 people then in peak season you may get a clubbed Nathula permit but at the same price.Now let me clear what is clubbed Nathula permit in peak season Sikkim tourism department wants to send maximum tourist to Nathula Pass so to ensure that they issue clubbed Nathula permit in this system you can visit Tsomgo Lake &amp; Baba Mandir in your exclusive vehicle but from Nathula gate you have to go with some other passergers some times in your vehicle/any others vehicle.</strong>
</div>

<div>&nbsp;</div>

<p><strong>Notes:&nbsp;</strong>

<p><strong>Note 1:</strong>&nbsp;For Nathula &amp; Tsomgo Lake each person of your group needs to bring 4 passports size photographs each and one Government issued ID each. Such as driving license, Adhaar card, Voter Id. These are required to get permits approved to visit this location and for Sikkim entry.

<p><strong>Note 2:</strong>&nbsp;The Sikkim Government and Indian Army reserve the right to cancel Nathula Trips on any given day, without prior notice. In such cases the Clients will be taken to only Tsomgo Lake &amp; Baba mandir. Also in case permit is not approved as only 40 vehicles are given permit on any given day. In such cases 1000 extra needs to pay to procure permits for special Request. In the event of Cancellation of Permit or permit not being approved.&nbsp; No&nbsp; refund&nbsp; for&nbsp; the&nbsp; Permit&nbsp; fess&nbsp; is&nbsp; made&nbsp; by&nbsp; the&nbsp; Sikkim&nbsp; Government.

<p><b new="" style="color: rgb(34, 34, 34); font-size: 12.8px; font-family: " times=""><font size="4">&nbsp;*</font></b>&nbsp;For Extra points like Nathula Pass and Zero Point 3000/- Extra for Nathula &amp; 3000/- Extra for Zero Point.

<p><strong>Terms &amp; Conditions:</strong>

<p>*Mentioned rated are applicable for group tour of min 4 pax and above.

<p>* Rates are subject to availability.&nbsp;

<p>* Rates can change without prior notice.&nbsp;<br />
*&nbsp;Peak Season / Weekend Surcharges may be applicable at the time of confirmation

<p>*All Valuables and personal belongings are the responsibility of the client. In case of theft or clients belongings being lost during transit or otherwise. We would not be responsible.

<p>* The vehicle used for your entire tour will be strictly on Point to Point Basis.

<p>* In any circumstances vehicle will not be provided on Disposal Basis

<p>note:&nbsp;&quot;Each clients travelling in India or abroad has to ensure they carry all the related travel documents like valid passports, visa or other valid ID and address proof. Due to lack of any of these documents no hotels will allow check-in. We will not be responsible for any such kind of lose in services and full retention will be charged&quot;.												</div>
												
						<div class="ac mb10px">
						<form name="frmpackagedetail" id="frmpackagedetail" method="post" action="http://www.grabyourholidays.in/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="The Beauty triangle Darjeeling 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="82879"/>
						</form>
						</div>
						
						";i:1;s:74:"Book The Beauty triangle Darjeeling Tour - 5 Nights / 6 Days Tour Packages";i:2;s:142:"book the beauty triangle darjeeling tour - 5 nights / 6 days tour packages, valley tour packages, gangtok, darjeeling, kalimpong tour packages";i:3;s:192:"Book The Beauty triangle Darjeeling Tour - 5 Nights / 6 Days tour packages from Grab Your Holidays - Get attractive 5 Nights / 6 Days Valley  tour packages for  Gangtok, Darjeeling, Kalimpong.";i:4;s:929:"
			<script type="application/ld+json">
		    {
		      "@context": "https://schema.org",
		      "@type": "TouristAttraction",
		      "address": {
		        "@type": "PostalAddress",
		         "addressRegion": "Gangtok, Darjeeling, Kalimpong"        
		                 },
		      "description": "*Breakfast Included.
*Private Cab.
*Sightseeing.Huge Discounts on Group Tour Bookings!!The Cost of meals which is not mentioned in included 
Monuments Entrances Fee.
Any domestic or international air fare
Medical and insurance of any kind. Any expenses arising out of unforeseen circumstances like flight delay/cancellation/hike in fare, strike or any other natural calamities
Personal nature Expenses i.e. Telephone Calls, Laundry, Soft / Hard Drinks Meals, Tipping etc. Camera Fee at.",
		      "name": "The Beauty triangle Darjeeling Tour",
		      "telephone": "+91-8888872247"
		    }
		    </script>
			";i:5;N;}