a:6:{i:0;s:19422:"				<div class="h1"><h1>Group Tours /10 Days – Glimpses of India</h1></div>
				<p class="breadcrumb ar uu small"><a href="http://www.pptt.co.in/" title="Home">Home</a> 
				
									<b class="ffv p2px">&rsaquo;</b><a href="http://www.pptt.co.in/tour-packages.htm" title="Tour Packages">Tour Packages</a>  			
									
				<b class="ffv p2px">&rsaquo;</b>Group Tours /10 Days – Glimpses of India</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">
						9 Nights / 10 Days 
						</td>
						</tr>
												<tr>
						<td class="b p5px w125px vat">Destination Covered </td>
						<td class="p5px pl0px vat">New Delhi, Jaipur, Jodhpur, Udaipur, Agra, Ranakpur</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.pptt.co.in/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Group Tours /10 Days – Glimpses of India - 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="94334"/>
						</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/228917/160980.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_8/228917/160980.jpg"  width="150" height="150"    alt="Group Tours /10 Days – Glimpses of India" title="Group Tours /10 Days – Glimpses of India" /></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 at Delhi
								</p>
								<p class="aj">As you arrive at the international airport in Delhi, Travelogy India representative will meet and greet you. Whether it is late night or early morning hours, you will be accompanied by the representative to your hotel and will be assisted throughout the check-in process. Freshen up and relax in your hotel.<br />
Delhi, the capital city of India is known for its empires and kingdoms. It represents the perfect blend of Indian culture and is considered as a gateway to the kaleidoscope called India!<br />
Overnight stay will be at 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 2:</b> Delhi
								</p>
								<p class="aj">Post breakfast; proceed for a city tour in Old Delhi accompanied by a guide.<br />
<br />
Commence your guided tour by paying a visit to Raj Ghat- the memorial of Mahatma Gandhi, famous as “The Father of Nation”.<br />
Then proceed towards Red Fort, which is considered as one of the prominent buildings of Old Delhi.<br />
<br />
Ride a bicycle rickshaw in the street of Old Delhi to visit one of the largest mosques of Asia named Jama Masjid. Outside the mosque, you will observe a bustling market. Experience the real color of Old Delhi by continuing the rickshaw ride through the narrow winding lanes of Chandani Chowk.<br />
Continue your city tour in New Delhi post lunch.<br />
<br />
Pay a visit to the tallest stone tower of India known as Qutub Minar located in colonial Delhi. Your city tour will then be extended to the majestic Humayun’s Tomb. After the death of Humayun in the year 1556, his widow Hamida Banu Begum decided to build the tomb in his memory. You will then drive past some of the remarkable buildings like India Gate, the residence of India’s President or the Rashtrapati Bhawan and the Parliament House.<br />
<br />
The trip will also include a visit to the Lotus Temple located at the southern part of Delhi, if time permits. This lotus shaped Bahai temple is made of marble, dolomite, cement, and sand.<br />
<br />
Your overnight stay will be scheduled in 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 3:</b> Delhi – Agra By Surface ( 250 kms in Approx 5 hours )
								</p>
								<p class="aj">After breakfast to Agra.<br />
<br />
On reaching Agra, you will be accompanied to your pre-booked hotel. Spend some relaxed moments in the hotel after check-in.<br />
<br />
Agra : Agra was enhanced and accepted as the second capital of Mughal Empire by two great Mughal Emperors Akbar and Shahjahan. Then it was named as Dar-ul-Khilafat which means “seat of the Emperor”. The city of Agra still has the influence of Mughal culture and heritage. Visitors can enjoy leisure walk through the narrow and bustling streets of the city fumed with the aroma of Mughlai Dishes.<br />
<br />
Proceed for a guided tour of Agra covering Agra Fort - The fascinating red sandstone structure called Agra Fort is surrounded by Char Bagh, which is a foursquare garden. It is located in the heart of the city and on the bank of river Yamuna.<br />
<br />
Later visit Itmad-Ud-Ullah, popularly known as Baby Taj, after visiting Agra Fort. It is believed to have better interiors than the Taj. The wife of Emperor Jehangir, Nur Jahan built this fort for her father in the year 1628.<br />
<br />
Enjoy an overnight stay at Agra.</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> Agra – Jaipur By Surface ( 242 kms in Approx 5 hours )
								</p>
								<p class="aj">Wake up early morning for visit to the Taj Mahal during sunrise, it is considered as an ideal time.<br />
<br />
Taj Mahal : It is needless to mention that this architectural wonder of Agra mesmerize every tourist. This white marble mausoleum was built by Mughal Emperor Shah Jahan, in the memory of his beloved wife Mumtaz Mahal. The monument was built in 22 years, which was planned & designed by an architect, hailing from Persia named Ustad Isa. The Taj is not only famous worldwide for its impressive design and wonderful symmetry, but also for its classic domes, exquisitely carved screens and fantastic inlay work.   <br />
<br />
Return back to your hotel for freshening up and to have your breakfast.<br />
<br />
After breakfast, move towards Jaipur via Fatehpur Sikri, located 37 km away to the west of Agra and later drive towards Jaipur.<br />
<br />
Jaipur : The capital city of Rajasthan, which is a culturally enriched state of India, houses magnificent palaces and splendid fortresses. It is popular for its royal family of Maharajas, Kshatriya or warrior caste.<br />
<br />
The capital of Rajasthan, Jaipur is named after the respected Rajput founder Jai Singh II. He earned the title Sawai Maharaja from the Mughals. Jaipur is popularly known as the ’Pink City’ as the buildings of the city are painted pink. To honor the State visit of Prince Albert, in the year 1856, the city was beautified by painting the buildings with a distinctive color.<br />
<br />
Learn about the religious aspect of Jaipur by visiting the famous Birla Temple, in the evening. You will observe the Aarti Ceremony (the waving of illuminated oil lamps to awaken and appeal to the deity) in the temple. Have an ultimate experience in the city of Jaipur.<br />
<br />
Reach and check-in to hotel.<br />
A comfortable overnight stay will be in Jaipur.</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> Jaipur
								</p>
								<p class="aj">Post breakfast, Enjoy a fascinating elephant ride to Amber Fort.<br />
<br />
Amber Fort Palace : The classic and romantic Amber Fort Palace has hostile exterior and beautiful interiors with the perfect blend of architecture in Mughal and Hindu styles. Get down of your colorful elephant at the foot of the hill and begin your climb up to the fort.<br />
<br />
Continue with the city tour for sightseeing.<br />
<br />
City Palace : The palace represents an ideal combination of Rajasthani and Mughal architecture. Within the premises of the Palace, you will find Shri Govind Dev Temple, the Chandra Mahal and the City Palace Museum.<br />
<br />
Jantar Mantar : Jai Sing II built the largest observatory named Jantar Mantar, which is also considered as one of the best preserved observatories in India. This observatory is still in use though it has huge astronomical instruments.<br />
<br />
Hawa Mahal : Hawa Mahal or the "Palace of Winds" is one of the major landmarks in Jaipur. The five-storied structure is made of sandstone and has pink plaster. This Palace was once a grandstand for the women of the royal family.<br />
<br />
Explore the city by your own or relax in the comfort of the hotel or go for shopping in the local markets at noon.<br />
<br />
Overnight stay will be scheduled in Jaipur.</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> Jaipur – Jodhpur By surface ( 337 kms in Approx 6 hours )
								</p>
								<p class="aj">Move towards Jodhpur after Post breakfast.<br />
<br />
Reach and check-in to hotel.<br />
<br />
Being located at a region near the Thar Desert, Jodhpur- the majestic city reflects the emptiness of the desert and repeat tales of ancient times.<br />
<br />
In 1459 AD, Jodhpur was founded by Rao Jodha. It was once the capital of the Marwar state. It houses the Mehrangarh Fort of 15th century AD atop a rocky hill with the height of 125 Mts. from the plains. A long wall surrounds the whole city along with 8 gates and numerous bastions.<br />
<br />
Visit the UMAID BHAWAN PALACE museum.<br />
<br />
Umaid Bhawan Palace : It was built to provide employment opportunities to the people in the city during famine. A section of this palace is inhabited by the royal family of Jodhpur, whereas another section of the palace is now a well-maintained museum that displays a huge collection of amazing belongings like weapons, crockery, trophies, antiques & fascinating clocks of the royal family.<br />
<br />
Overnight stay will be at Jodhpur.</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> Jodhpur
								</p>
								<p class="aj">After breakfast, carry on with your Jodhpur city tour in the morning.<br />
<br />
Mehrangarh Fort : Mehrangarh fort, which is one of the largest forts of India, is situated on a rocky hill. Numerous magnificent palaces within the fort are made of sandstones with intricate Jodhpuri sculptures. Mehrangarh Fort covers an area of over 5 km on a steep hill with the height of 125 meters from the ground level. The fort offers a majestic view of the city.<br />
<br />
Jaswant Thada : Jaswant Thada is situated near the fort complex. This white marble royal cenotaph was built in 19th century as a tribute to Maharaja Jaswant Singh II. An insight view of the cenotaphs accompanied by the natives will help you understand the feelings and respect they hold for their brave kings of past.<br />
<br />
You will then take on a jeep safari through the desert to discover the rural Rajasthan and its glory to the fullest. Visit the authentic homes of the members of varied communities such as the Brahmin, Rajput, Bishnoi, Raika to communicate with them.<br />
<br />
Also interact with the local craftsmen and artisans to know about their occupation in detail. Interact with the potter, the wood engraver, the weaver, and other skilled artisans.<br />
Enjoy your overnight stay at Jodhpur.</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> Jodhpur - Ranakpur - Udaipur By Surface ( 270 kms in Approx 6 - 7 hours including stopover at Ranakp
								</p>
								<p class="aj">Proceed towards Udaipur after breakfast. Stop at Ranakpur on the way to visit the Jain Temples.<br />
<br />
The Temples of Ranakpur are famous throughout the world for their intricate and excellent style of architecture. These temples are one among the five prominent pilgrimage sites of the Jains. The temple complex is located in a secluded valley on western part of the Aravalli Range. The Jain Temples of Ranakpur are constructed using light colored marble. The temples are supported by exquisitely carved pillars, which are over 1400 in numbers.<br />
<br />
On reaching Udaipur, check - in to a hotel. Freshen-up and relax.<br />
<br />
Udaipur is considered as the kaleidoscope of temples, magnificent palaces, lakes, gardens and constricted lanes along with stalls. Learn about the heroic past, representing valor and loyalty. Get the enticing view of reflection in the serene waters of the Lake Pichola.<br />
<br />
Udaipur is known as “the jewel of MEWAR”. For about 1200 years this kingdom was ruled by the Sisodia.<br />
<br />
Have a comfortable overnight stay at Udaipur.</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 9:</b> Udaipur
								</p>
								<p class="aj">Have your breakfast at the hotel.<br />
<br />
Proceed for sightseeing of Udaipur city, beginning with the City Palace.<br />
<br />
City Palace : The City Palace is located on the eastern bank of Lake Pichola. Since 1559 A.D the construction of this huge series of palaces took place at different times then. Get the panoramic views of a popular Lake Palace Hotel, “Jag Niwas”. To its one side, there is Jag Mandir and to its other side, the city of Udaipur is located. There is a triple arched gate or the “Tripolia”, which was built in 1725 serves as the main entrance to the City Palace.<br />
<br />
Saheliyon Ki Bari : The 'garden of the maidens' or Saheliyon ki Bari was built by Maharana Sangram Singh in the middle of 18th century. It draws an imagination about the lifestyle, the royal ladies led. The beautiful gardens have four pools with exquisite cabins, surrounded by lawns, flowerbeds, fountains and pools.<br />
<br />
Jagdish Temple : Being located at the center of the city, the temple of Jagannath Rai is now known as Jagdish-ji. It is a prominent monument constructed by Maharana Jagat Singh on a tall terrace in the year 1651 A.D.<br />
<br />
In the Evening, enjoy a motor launch cruise on the serene waters of the famous Lake Pichola. Also pay a visit to an island palace known as Jag Mandir Palace. It is located at the center of the lake. Spend some relaxed and peaceful moments at the Jag Mandir Palace.<br />
<br />
Stay comfortably in Udaipur at night.</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 10:</b> Udaipur - departure for Onward Journey
								</p>
								<p class="aj">Have your breakfast at the hotel.<br />
<br />
We will drop you to airport to board your flight for onward journey ahead with sweet memories of the 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>
															</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.pptt.co.in/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Group Tours /10 Days – Glimpses of India - 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="94334"/>
						</form>
						</div>
						
						";i:1;s:82:"Book Group Tours /10 Days – Glimpses of India - 9 Nights / 10 Days Tour Packages";i:2;s:173:"book group tours /10 days – glimpses of india - 9 nights / 10 days tour packages, heritage tour packages, new delhi, jaipur, jodhpur, udaipur, agra, ranakpur tour packages";i:3;s:234:"Book Group Tours /10 Days – Glimpses of India - 9 Nights / 10 Days tour packages from Pretty Planet Tour & Travels - Get attractive 9 Nights / 10 Days Heritage  tour packages for  New Delhi, Jaipur, Jodhpur, Udaipur, Agra, Ranakpur.";i:4;s:465:"
			<script type="application/ld+json">
		    {
		      "@context": "https://schema.org",
		      "@type": "TouristAttraction",
		      "address": {
		        "@type": "PostalAddress",
		         "addressRegion": "New Delhi, Jaipur, Jodhpur, Udaipur, Agra, Ranakpur"        
		                 },
		      "description": "",
		      "name": "Group Tours /10 Days – Glimpses of India",
		      "telephone": "+91-9906543070"
		    }
		    </script>
			";i:5;N;}