a:6:{i:0;s:10434:"				<div class="h1"><h1>Kashmir Tour</h1></div>
				<p class="breadcrumb ar uu small"><a href="http://www.ticketsinminutes.co.in/" title="Home">Home</a> 
				
								
				<b class="ffv p2px">&rsaquo;</b>Kashmir 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">
						4 Nights / 5 Days 
						</td>
						</tr>
												<tr>
						<td class="b p5px w125px vat">Destination Covered </td>
						<td class="p5px pl0px vat">Srinagar, Pahalgam, Sonamarg, Gulmarg</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.ticketsinminutes.co.in/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Kashmir 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="57723"/>
						</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_13/368816/109545.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_13/368816/109545.jpg"  width="150" height="150"    alt="Kashmir Tour" title="Kashmir Tour" /></a></p></div></li>
															</ul>
						</div>
						</td>
											</tr>
					</table>
					</div>
					<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> Arrival in Srinagar
								</p>
								<p class="aj">On your arrival in Srinagar Airport/ Railway Station, meet our tour representative and get assisted transfer to a pre-booked hotel. Check in and relax. On the banks of Jhelum River, amid the blotches of colorful flowers, you can find Srinagar, the summer capital of Kashmir. Dry fruits, Kashmiri handicrafts, shikaras and wooden mosques are a few things that make Srinagar nothing less than a paradise. Vast stretch of Himalayas prettifies Srinagar even more. The area is home to an expansive biodiversity.<br />
<br />
In the evening, you are free to take a shikara ride in Dal Lake or take a stroll in Chashmi-e Shahi (The Royal Spring), Shalimar Bagh (Abode of love) and Nishat (The Garden of pleasure). Second largest lake of Kashmir, Dal Lake is very popular in India and beyond. Its banks are lined with blooming garden of the Mughal era, hotels, hamlets etc. Himalayas on the backdrop and gurgles of this lake houseboat-cruising an unforgettable affair.<br />
<br />
Shalimar Bagh, Nishat Bagh and Chashme Shahi are located in Mughal Garden. Nishat Park, the second largest garden of Kashmir valley, has 12 terraces with spectacular details. Chashme Shahi is decorated with Iranian theme and the design is inspired from Persian gardens. The spring flowing down in terraces is a special feature of this park. This spring is divided into three parts; waterfall, aqueduct and waterfall. Overnight stay in 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 2:</b> Srinagar - Sonamarg
								</p>
								<p class="aj">On this beautiful day prepare for a drive to Sonmarg, which literally means Meadow of Gold.  On reaching check in at your pre-booked hotel and relax. The town is located at an altitude of 2800 meters and overlooks popular peaks and glaciers like Amarnath Peak, Kaolhoi Glacier, Machoi Peak and Sirbal Peak. Azure Nallah Sidh River meanders through the town, making it look even prettier.<br />
<br />
A pony ride offers an incredible experience if you want to explore. Hire a horse or pony to reach Thajiwas Glacier that is carpeted with snow all year round.  Indulge in fun activities with your loved ones here. Do not miss clicking memorable photographs capturing the mesmerizing scenery. The climate of Sonamarg is always pleasant, be it in summers or in winters. Stay overnight in 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 3:</b> Sonamarg - Gulmarg
								</p>
								<p class="aj">On your third day of the trip, proceed to Gulmarg. Gulmarg literally means Meadow of Flowers, and this town stands up to its name. It is perched at an altitude of 2730 meters. CNN regarded Gulmarg as “Heartland of Winter Sports of India” and rated it as Asia’s Seventh Best Ski Destination. Whether in summers or winters, the town is a year-round magnet for tourists around the world. Several movies have been shot in this beautiful town, like Jab Tak Hain Jaan, Bobby, Highway, Yeh Jawani Hai Deewani and Haider, among others.<br />
<br />
Here you can enjoy a ropeway ride to Khilanmarg or a pony ride. The Gulmarg Gondola is the highest and longest cable car ropeway of Asia and one of the best experiences in Kashmir. This cable car ride is divided into 2 stages and takes you to and from Kongdoori Mountain, which is close to Apharwat Peak. The views from the top are stunning. There are various other adventure activities awaiting you, like rock climbing, skiing and trekking. You can try your hands in golfing at one of the world’s highest golf courses here, with 18 holes. You can partake in the activities of your interest. Return to your hotel by evening and stay overnight.</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> Gulmarg - Pahalgam
								</p>
								<p class="aj">In the morning, prepare for Pahalgam. On the banks of Lidder River, Pahalgam is a popular hill-station in valley. Trekkers and nature-lovers find this town to be a pure delight. In fact, many trekking circuits are started from Pahalgam. About ninety percent of its total area is covered with forests and rich vegetation. Enjoy relaxing on the river banks or taking short treks. If you in for some adventure, you can partake in River rafting in River Lidder. Angling is another interest activity offered here.<br />
<br />
Pahalgam is also close to a number of attractions such as Awantipora ruins, Anantnag, Betaab Valley and more. In the evening, you can also indulge in shopping getting your hands on superb souvenirs such as woolens, Pashmina shawls, wooden objects, handicrafts and more. After this, return to your room and stay overnight.</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> Pahalgam - Srinagar
								</p>
								<p class="aj">Have your breakfast and check out from your hotel. Get assisted transfer to Srinagar Airport/ Railway Station, for your onward journey.</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>
															</ul>
						<br />
											
						<p class="large b mb5px dif">Terms &amp; Conditions :</p>* Some Advance Percentage of total booking amount * Airfare/Transport fare to be paid full at one time in advance.~^#^~* Upon cancellation, refund will be made after deducting the Retention Amount. * Retention Amount varies as per the number of days left before your package start date. ~^#^~												</div>
												
						<div class="ac mb10px">
						<form name="frmpackagedetail" id="frmpackagedetail" method="post" action="http://www.ticketsinminutes.co.in/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Kashmir 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="57723"/>
						</form>
						</div>
						
						";i:1;s:51:"Book Kashmir Tour - 4 Nights / 5 Days Tour Packages";i:2;s:126:"book kashmir tour - 4 nights / 5 days tour packages, valley tour packages, srinagar, pahalgam, sonamarg, gulmarg tour packages";i:3;s:191:"Book Kashmir Tour - 4 Nights / 5 Days tour packages from Tickets in Minutes Tour N Travels - Get attractive 4 Nights / 5 Days Valley  tour packages for  Srinagar, Pahalgam, Sonamarg, Gulmarg.";i:4;s:421:"
			<script type="application/ld+json">
		    {
		      "@context": "https://schema.org",
		      "@type": "TouristAttraction",
		      "address": {
		        "@type": "PostalAddress",
		         "addressRegion": "Srinagar, Pahalgam, Sonamarg, Gulmarg"        
		                 },
		      "description": "",
		      "name": "Kashmir Tour",
		      "telephone": "+91-9368124224"
		    }
		    </script>
			";i:5;N;}