a:6:{i:0;s:17164:"				<div class="h1"><h1>Timber Trail 7 Nights/8 Days Package</h1></div>
				<p class="breadcrumb ar uu small"><a href="http://www.chaturveditravels.com/" title="Home">Home</a> 
				
								
				<b class="ffv p2px">&rsaquo;</b>Timber Trail 7 Nights/8 Days Package</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">CTT27/Parwanoo - Shi</td>
						</tr>
												<tr>
						<td class="b p5px w125px vat">Duration </td>
						<td class="p5px pl0px vat">
						7 Nights / 8 Days 
						</td>
						</tr>
												<tr>
						<td class="b p5px w125px vat">Destination Covered </td>
						<td class="p5px pl0px vat">New Delhi, Chandigarh, Manali, Shimla</td>
						</tr>
												<tr>
						<td class="b p5px w125px vat">Price (Starting From) </td>
						<td class="p5px pl0px vat"><span class="dif">On Request</span></td>
						</tr>
												<tr>
						<td></td>
						<td>
						<p>
						<form name="frmpackagedetail" id="frmpackagedetail" method="post" action="http://www.chaturveditravels.com/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Timber Trail 7 Nights/8 Days Package - 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="27817"/>
						</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_8/229281/56057.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_8/229281/56057.jpg"  width="150" height="150"    alt="timber trail" title="timber trail" /></a></p></div></li>
															</ul>
						</div>
						</td>
											</tr>
					</table>
					</div>
					<br />
					
					Any Airfare, Train fare, Overland Journey which is not mentioned in the Itinerary.<br />
Any personal nature items like Laundry, bar bills, table bills, camera fee, tips or any other item.<br />
Major Meals i.e. Lunch & Dinner at Delhi<br />
Guide / Entry fees, Boatings, Elephant riding / Horse ridings etc. During sight seeings<br />
Any Medical /rescue evacuation due to mishaps.<br />
Optional Activities mentioned in the itinerary<br />
Any other things that is not included in the Package Cost Includes Column.<br><br>Note:<br />
Any changes in Govt. taxes, Hotel Tariff, etc will be intimated before confirming the Package.<br />
Cost incidental to any change in the itinerary/ stay on account of flight cancellation due to bad weather, ill health, roadblocks and/or any factors beyond control.<br />
Government Service tax @ 3.09 Extra.<br />
Every passenger is traveling on his own responsibility. The company will not be responsible for any loss of luggage or any accidents. We are not responsible for theft or damage to your luggage.<br />
Also note that Video & Audio systems are prohibited in commercial vehicles as per law and we do not guarantee for it always.<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> Delhi - Parwanoo
								</p>
								<p class="aj">Arrive Delhi Airport/ Railway Station and transfer to Parwanoo ( 280 kms 7 hrs) Arrive & check in at hotel. Rest of the day at leisure Night stay in Parwanno.</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> Parwanoo - Shimla
								</p>
								<p class="aj">Morning Check Out From The Hotel & proceed to Shimla ( 160 kms/ 4 hrs)Arrive & check in at hotel. Rest of the day at leisure. Night stay in Shimla.</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> Shimla Sightseeing
								</p>
								<p class="aj">Morning Proceed for the sightseeing of Kufri, situated at an altitude of 2500 meters just an hours drive from Shimla and a popular ski resort during the winter months. Later visit the Jakoo Hills which offers a panoramic view of Shimla town, the Viceregal lodge and later walk down the Mall road. Night stay in Shimla.</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> Shimla - Manali
								</p>
								<p class="aj">Morning proceed to Manali (285 kms / 7 hrs) a picture-perfect hill resort at an altitude of 1,929 metres. Set amidst pine-clad mountains which gradually closes in on both sides of the Beas and it nestles in their shade, as though carved out of primeval forest.Arrive & check in the hotel. Rest of the evening at leisure. Night stay in Manali.</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> Manali
								</p>
								<p class="aj">Early Morning take a walking tour of Manali, visit the 450 year old temple dedicated to Hadimba Devi, which has some excellent woodcarving, Tibetan Monastery and a Handicraft Center.Either spent Rest of the day at leisure or have a walk to nearby picturesque village of Vashisht known for hot sulphur springs. Night stay in Manali.</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> Manali
								</p>
								<p class="aj">Early morning visit the Solang Valley, which offers a spectacular view of glaciers and snow capped peaks. A place not to be missed is Rohtang Pass, 51 kms from Manali at an altitude of 3978 meters (subject to weather conditions and road being open). Rest of the day is at leisure OR take a stroll down the Mall road. Night stay in Manali.</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> Manali - Chandigarh
								</p>
								<p class="aj">Morning visit the Kullu valley, celebrated as the valley of Gods. Later transfer by road to Chandigarh (274 kms / 7-8 hrs) . Arrive & transfer to hotel. Evening free at leisure. Night stay in Chandigarh Day 08 / Chandigarh - Delhi</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 8:</b> Departure
								</p>
								<p class="aj">In the Morning check out from the Hotel & Transfer by road to Delhi (300 kms / 6-7 hrs) For your onward destination. </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>
															</ul>
						<br />
												<p class="large b mb5px dif">Exclusions :</p> <ul><li>Any Airfare, Train fare, Overland Journey which is not mentioned in the Itinerary.</li><li>
Any personal nature items like Laundry, bar bills, table bills, camera fee, tips or any other item.</li><li>
Major Meals i.e. Lunch & Dinner at Delhi</li><li>
Guide / Entry fees, Boatings, Elephant riding / Horse ridings etc. During sight seeings</li><li>
Any Medical /rescue evacuation due to mishaps.</li><li>
Optional Activities mentioned in the itinerary</li><li>
Any other things that is not included in the Package Cost Includes Column.<br><br>Note:</li><li>
Any changes in Govt. taxes, Hotel Tariff, etc will be intimated before confirming the Package.</li><li>
Cost incidental to any change in the itinerary/ stay on account of flight cancellation due to bad weather, ill health, roadblocks and/or any factors beyond control.</li><li>
Government Service tax @ 3.09 Extra.</li><li>
Every passenger is traveling on his own responsibility. The company will not be responsible for any loss of luggage or any accidents. We are not responsible for theft or damage to your luggage.</li><li>
Also note that Video & Audio systems are prohibited in commercial vehicles as per law and we do not guarantee for it always.</li></ul><br />
											
						<p class="large b mb5px dif">Terms &amp; Conditions :</p>~^#^~~^#^~<ul>
	<li>Per person rates (Rs) - Applicable on 3 / 4 persons staying together sharing the same room</li>
	<li>Package rates are subject to change without prior notice<br />
	Meal plan: EP- accommodation only, CP-accommodation with breakfast, MAP- accommodation with breakfast, lunch or dinner, AP-accommodation with breakfast, lunch &amp; dinner</li>
	<li>The packages can not be combined with any other offer.<br />
	The above package is not valid during national holidays, festivals &amp; long weekends Chaturvedi Travels and Tours. Reserves the right to change/modify or terminate the offer any time at its own discretion and without any prior notice Package does not includes</li>
	<li>Meals not mentioned in the itinerary. Package does not include entry fees to monuments and places anything not mentioned in the package includes. Porte rage at hotels and airports, tips, insurance, laundry, liquors, wine, mineral water, telephone charges all items of personal nature.</li>
	<li>Any cost arising due to natural calamities like landslides, roadblocks, etc. (to be borne by the clients directly on the spot).</li>
	<li>Any increase in taxes or fuel leading to an increase in surface transportation &amp; land arrangements, which may come into effect prior to departure.</li>
	<li>Rates are subject to change &amp; Rooms are subject to availability. Peak season / Holiday surcharge will be applicable in case if there are any events. No reservation has been made till date. This is just a quotation. Final costing will be given at the time of confirmation. The above rate is valid only for mentioned dates. The above is only an offer and not confirmation of your bookings.</li>
	<li>We shall proceed with your booking once we have receive the payment from you &amp; if we are not able to get the original hotels, shall provide equivalent/ alternative hotels. You are requested to make advance payment (50 % of the total tour cost) by credit card along with 2 % bank charges OR bank transfer to initiate with the bookings.</li>
	<li>Balance payment can be made 15 days prior to your tour starting date. On receipt of full payment we will send you the travel vouchers.</li>
	<li>PLEASE NOTE STANDARD CHECK IN TIME IS 1400 HRS &amp; CHECK OUT TIME IS 0900 HRS. PLEASE RECONFIRM THE ABOE PACKAGE WITH PAYMENT DETAILS AT THE EARLIEST. KINDLY DEPOSIT THE PACKAGE COST IN OUR ACCOUNT AT THE EARLIEST. PLEASE FIND OUR ACCOUNT DETAILS GIVEN BELOW CUSTOMER&#39;S OPTION TO MAKE PAYMENTS THROUGH DEBIT CLEARING Particulars Details.</li>
	<li>IN KEEPING WITH OUR HEIGHTENED SECURITY PROCEDURES WE REQUEST YOU TO CARRY A PHOTO-IDENTITY TO PRESENT AT CHECH-IN. FOREIGN NATIONALS WILL REQUIRETO PRESENT THE PASSPORT AND VALID VISA WHILE INDIAN NATIONALS CAN PRESENT ANY ONE OF THESE: PASSPORT, DRIVING LICENSE, VOTER ID CARD or PAN CARD. Our rates are based on the prevailing rates as negotiated by us with the hotels.</li>
	<li>Hotels retain the right to modify the rates without notice. In case of such changes the rates quoted before the modification, can be changed by us according to the modifications by hotels. All hotel bookings are based on usual check in and check out time of the hotels until unless indicated in the itinerary We shall not be responsible for any delays &amp; alterations in the program or expenses incurred - directly or indirectly - due to natural hazards, flight cancellations, accident, breakdown of machinery or equipments, breakdown of transport, weather, sickness, landslides, political closures or any untoward incidents.</li>
	<li>We shall not be responsible for any loss, injury or damage to person, property, or otherwise in connection with any accommodation, transportation or other services, resulting - directly or indirectly - from any act of GOD, dangers, fire, accident, breakdown in machinery or equipment, breakdown of transport, wars, civil disturbances, strikes, riots, thefts, pilferages, epidemics, medical or custom department regulations, defaults, or any other causes beyond our control.</li>
</ul>

<p><strong>Reservation Policy:</strong>

<ul>
	<li>Confirmation of Hotel Rooms / House boat is subject to the availability.</li>
	<li>Confirmation of the Packages is subject to receipt of 100% payment i.e., 70 % of the payment as advance at time of booking &amp; balance 30 % before 15 days of departure.</li>
</ul>

<p><strong>Cancellation Policy:</strong>

<ul>
	<li>Cancellation of the tour packages IS NON REFUNDABLE / Hotel Booking / Transportation or Non Utilization of the same: 100 % Retention.</li>
</ul>

<p><strong>Terms &amp; Conditions:</strong>

<p>The above itinerary is suggested Tour Plan. The Company is responsible for only those services which are charged from the guest. All other services which are not paid by the guest to the Company are Suggested services and Company is nowhere bound to provide that service or pay the cost for the same.

<ul>
	<li>Check in and Check out Timing of the Hotel will be according to the timing of the respective Hotels.</li>
	<li>Company is not responsible for compensating any loss or additional cost incurred by the guest while taking the tour.</li>
	<li>Company is not responsible, nor liable for any damage, loss or injury caused to any passenger while taking the tour.</li>
	<li>Dollar rates are applicable only to foreign nationals &amp; Indians possessing foreign passports, while the INR package rates will be applicable to Indian nationals.</li>
	<li>All the disputes are subject to Gwalior Jurisdiction only.</li>
	<li>Any Claim related to the Package must be brought to the notice of the Company within a week.</li>
</ul>												</div>
												
						<div class="ac mb10px">
						<form name="frmpackagedetail" id="frmpackagedetail" method="post" action="http://www.chaturveditravels.com/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Timber Trail 7 Nights/8 Days Package - 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="27817"/>
						</form>
						</div>
						
						";i:1;s:75:"Book Timber Trail 7 Nights/8 Days Package - 7 Nights / 8 Days Tour Packages";i:2;s:158:"book timber trail 7 nights/8 days package - 7 nights / 8 days tour packages, lakes & rivers tour packages, new delhi, chandigarh, manali, shimla tour packages";i:3;s:203:"Chaturvedi Travels and Tours offers Timber Trail 7 Nights/8 Days Package - 7 Nights / 8 Days tour package, budget Lakes & Rivers tour packages for New Delhi, Chandigarh, Manali, Shimla at exciting price.";i:4;s:1565:"
			<script type="application/ld+json">
		    {
		      "@context": "https://schema.org",
		      "@type": "TouristAttraction",
		      "address": {
		        "@type": "PostalAddress",
		         "addressRegion": "New Delhi, Chandigarh, Manali, Shimla"        
		                 },
		      "description": "Any Airfare, Train fare, Overland Journey which is not mentioned in the Itinerary.
Any personal nature items like Laundry, bar bills, table bills, camera fee, tips or any other item.
Major Meals i.e. Lunch & Dinner at Delhi
Guide / Entry fees, Boatings, Elephant riding / Horse ridings etc. During sight seeings
Any Medical /rescue evacuation due to mishaps.
Optional Activities mentioned in the itinerary
Any other things that is not included in the Package Cost Includes Column.<br><br>Note:
Any changes in Govt. taxes, Hotel Tariff, etc will be intimated before confirming the Package.
Cost incidental to any change in the itinerary/ stay on account of flight cancellation due to bad weather, ill health, roadblocks and/or any factors beyond control.
Government Service tax @ 3.09 Extra.
Every passenger is traveling on his own responsibility. The company will not be responsible for any loss of luggage or any accidents. We are not responsible for theft or damage to your luggage.
Also note that Video & Audio systems are prohibited in commercial vehicles as per law and we do not guarantee for it always.",
		      "name": "Timber Trail 7 Nights/8 Days Package",
		      "telephone": "+91-9826355115"
		    }
		    </script>
			";i:5;N;}