a:6:{i:0;s:11912:"				<div class="h1"><h1>Old Delhi Rickshaw Ride Tour</h1></div>
				<p class="breadcrumb ar uu small"><a href="http://www.indiatourandvacations.com/" title="Home">Home</a> 
				
									<b class="ffv p2px">&rsaquo;</b><a href="http://www.indiatourandvacations.com/tour-packages.htm" title="Tour Packages">Tour Packages</a>  			
									
				<b class="ffv p2px">&rsaquo;</b>Old Delhi Rickshaw Ride 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">Rick2015-16</td>
						</tr>
												<tr>
						<td class="b p5px w125px vat">Duration </td>
						<td class="p5px pl0px vat">
						1 Day 
						</td>
						</tr>
												<tr>
						<td class="b p5px w125px vat">Destination Covered </td>
						<td class="p5px pl0px vat">New Delhi</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.indiatourandvacations.com/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Old Delhi Rickshaw Ride 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="44760"/>
						</form>
						</p>
						</td>
						</tr>
											</table>
					</td>
											<td class="p10px vat imgWidth150 w150px lh0">
						<div class="demo-wrap">
						<ul class="lsn m0px p0px" id="detailslider1">
															<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/376887/88474.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_13/376887/88474.jpg"  width="150" height="150"    alt="Old Delhi Rickshaw Ride Tour" title="Old Delhi Rickshaw Ride Tour" /></a></p></div></li>
																		<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/376887/88475.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_13/376887/88475.jpg"  width="150" height="150"    alt="Old Delhi Rickshaw Ride Tour" title="Old Delhi Rickshaw Ride Tour" /></a></p></div></li>
																		<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/376887/88476.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_13/376887/88476.jpg"  width="150" height="150"    alt="Old Delhi Rickshaw Ride Tour" title="Old Delhi Rickshaw Ride Tour" /></a></p></div></li>
															</ul>
						</div>
						</td>
											</tr>
					</table>
					</div>
					<br />
					
					Any Meals<br />
Camera fee wherever levied.<br />
Monument Entrance Fee.<br />
Any expenses of personal nature such as monument Entrances, hard/soft drinks, laundry & tips.<br />
Any item not mentioned in the quote.<br />
Any supplement/reduction resulting from change in the itinerary due to rescheduling or cancellation of flights/trains that are quoted for.<br />
Expenses caused by factors beyond our control like rail and flight Delays, road blocks, Political disturbances, natural phenomenon & taxes etc.01-0931-03<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> Old Delhi Rickshaw Ride Tour
								</p>
								<p class="aj">DRIVE PAST RED FORT:<br />
<br />
"The Red Fort and the city of Shahjahanabad were constructed by the Emperor Shah Jahan in 1639 A.D. The layout of the Red Fort was organised to retain and integrate this site with the Salimgarh Fort. The fortress palace is an important focal point of the medieval city of Shahjahanabad. The planning and aesthetics of the Red Fort represent the zenith of Mughal creativity which prevailed during the reign of Emperor Shahjahan. This Fort has had many <br />
developments added on after its construction by Emperor.<br />
<br />
DRIVE PAST JAMA MASJID:<br />
<br />
Jama Masjid is the principal mosque of Old Delhi in India. Commissioned by the Mughal Emperor Shah Jahan, builder of the TajMahal, and completed in the year 1656 AD, it is one of the Largest and best- known mosques in India. Shahjahan. The significant phases of development were under Aurangzeb and later Mughalrulers.<br />
<br />
DRIVE PAST CHANDNI CHOWK:<br />
<br />
Chandni Chowk or "Silver Square" is the most famous and historic street of Delhi, built around 300 years ago when the walled city of Shahjahanabad was established in the 17th century. <br />
<br />
Don't let the word "old" mislead you. The energy of vibrant streets of Chandni Chowk is simply irresistible. This part of Delhi includes street food, vibrant bazaars where you can shop for some ancient artifacts and jewellery.<br />
<br />
DRIVE PAST DARIBA KALAN (THE SILVER MARKET)<br />
<br />
Dariba Kalan or Street of the Incomparable Pearl, is a 17th-century street in Chandni Chowk area of Old Delhi or Shahjahanbad, and Asia's largest jewellery market. It lies within the walled city of Delhi, and connects the Chandni Chowk area with Jama Masjid.<br />
<br />
DRIVE PAST KINARI BAZAAR (WEDDING MARKET)<br />
<br />
Kinari Bazaar is a wholesale retail market and specializes in Traditional dresses for marriages - Lehanga, Dupatta, Salwar-Kameez, Kurtas, Groom Sherwanis, turbans. Great variety and <br />
collection of borders and embellishments can be found here at very low price. Kinari Bazaar is a place where you can find almost everything for Indian Bridal dresses.<br />
<br />
VISIT SPICE MARKET & SCENTS MARKET:<br />
<br />
Located in the heart of the old city is Asia’s largest Spice Market, called Khari Baoli and some fascinating perfume shops called itra shops. In the narrow alley of the spice market you will find thousands of shops dealing in local and exotic herbs and spices. Offerings in this market include hordes of red chilis, various masalas, peppers, saffron, nutmeg, turmeric, cinnamon, cardamoms, vanilla, fennel, cumin, mango powder, coconuts, almonds, cashews, dates, pistachios and assorted variety of tea, coffee and oils. Learn about<br />
the various spices, therapeutic values and their culinary use. This is one of the most vibrant and colourful markets in old Delhi. Inside the old itra or perfume shops in Delhi (dating back to the early 18th Century ) you will find fragrance of rose, jasmine, khus, Heena etc. In an average shop there are more than 100 varieties of innovative perfumes on display. Fresh flowers are used in making these and each scent takes up at least two month's hard work and each season has its own fragrance. <br />
<br />
DRIVE PAST GURUDWARA SIS GANJ SAHIB (A SIKH TEMPLE ):<br />
<br />
Gurdwara Sis Ganj Sahib, is one of the nine historical Gurdwaras in Delhi. First established in 1783 by Baghel Singh to commemorate the martyrdom site the ninth Sikh Guru, Guru Tegh Bahadur. Situated in Chandni Chowk in Old Delhi, it marks the site Sikh Guru was beheaded on the orders of the Mughal emperor on 11 November 1675, Aurangzeb, for refusing to convert to Islam. Before his body could be quartered and exposed to public view, it was stolen under the cover of darkness by one of his disciples, Lakhi Shah Vanjara, who then burnt his house to cremate the Guru's body. This place is marked by another Gurdwara, Gurdwara Rakab Ganj Sahib<br />
<br />
DRIVE PAST JAIN TEMPLE:<br />
<br />
Shri Digambar Jain Lal Mandir is the oldest and best-known Jain temple in Delhi, India. It is directly across from the Red Fort in the historical Chandni Chowk area.It is known for an avian veterinary <br />
hospital in a second building behind the main temple. It is known as the Jain Birds Hospital.Located just opposite the massive Red Fort at the intersection of Netaji Subhas Marg and Chandni Chowk, Digambar Jain Temple is the oldest temple of the Jain religion in the capital, originally built in 1656. An impressive red sandstone temple today (the temple has undergone many alterations and additions in the past and was enlarged in the early 19th century), Shri Digambar Jain Lal Mandir is popularly known as Lal Mandir "Red Temple".<br />
TOUR ENDS</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>
												</ul>
						<br />
												<p class="large b mb5px dif">Exclusions :</p> <ul><li>Any Meals</li><li>
Camera fee wherever levied.</li><li>
Monument Entrance Fee.</li><li>
Any expenses of personal nature such as monument Entrances, hard/soft drinks, laundry & tips.</li><li>
Any item not mentioned in the quote.</li><li>
Any supplement/reduction resulting from change in the itinerary due to rescheduling or cancellation of flights/trains that are quoted for.</li><li>
Expenses caused by factors beyond our control like rail and flight Delays, road blocks, Political disturbances, natural phenomenon & taxes etc.</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.indiatourandvacations.com/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Old Delhi Rickshaw Ride 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="44760"/>
						</form>
						</div>
						
						";i:1;s:56:"Book Old Delhi Rickshaw Ride Tour - 1 Days Tour Packages";i:2;s:105:"book old delhi rickshaw ride tour - 1 days tour packages, heritage tour packages, new delhi tour packages";i:3;s:146:"India Tour and Vacations offers Old Delhi Rickshaw Ride Tour - 1 Days tour package, budget Heritage tour packages for New Delhi at exciting price.";i:4;s:899:"
			<script type="application/ld+json">
		    {
		      "@context": "https://schema.org",
		      "@type": "TouristAttraction",
		      "address": {
		        "@type": "PostalAddress",
		         "addressRegion": "New Delhi"        
		                 },
		      "description": "Any Meals
Camera fee wherever levied.
Monument Entrance Fee.
Any expenses of personal nature such as monument Entrances, hard/soft drinks, laundry & tips.
Any item not mentioned in the quote.
Any supplement/reduction resulting from change in the itinerary due to rescheduling or cancellation of flights/trains that are quoted for.
Expenses caused by factors beyond our control like rail and flight Delays, road blocks, Political disturbances, natural phenomenon & taxes etc.01-0931-03",
		      "name": "Old Delhi Rickshaw Ride Tour",
		      "telephone": "+91-9818529130"
		    }
		    </script>
			";i:5;N;}