a:6:{i:0;s:15077:"				<div class="h1"><h1>Splendid Rajasthan 6Night/7Days Tour</h1></div>
				<p class="breadcrumb ar uu small"><a href="http://www.chaturveditravels.com/" title="Home">Home</a> 
				
								
				<b class="ffv p2px">&rsaquo;</b>Splendid Rajasthan 6Night/7Days 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">CTT12/RAJASTHAN 6NIG</td>
						</tr>
												<tr>
						<td class="b p5px w125px vat">Duration </td>
						<td class="p5px pl0px vat">
						6 Nights / 7 Days 
						</td>
						</tr>
												<tr>
						<td class="b p5px w125px vat">Destination Covered </td>
						<td class="p5px pl0px vat">Jodhpur, Mount Abu, Udaipur</td>
						</tr>
												<tr>
						<td class="b p5px w125px vat">Price (Starting From) </td>
						<td class="p5px pl0px vat">
						INR 25999 Per Person						</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="Splendid Rajasthan 6Night/7Days 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="27761"/>
						</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/56074.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_8/229281/56074.jpg"  width="150" height="150"    alt="splendid rajasthan" title="splendid rajasthan" /></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<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.<b><b>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> Arrival Udaipur
								</p>
								<p class="aj">Udaipur :formally known as the city of lakes and Venice of East. Udaipur, the capital of the former princely state of Mewar is a beautiful city in Rajasthan, India. Udaipur is also referred to as the "Venice of the East" , the "Most Romantic City of India" and the "Kashmir of Rajasthan". Udaipur the “City of Lakes” is one among the most romantic and most beautiful cities of India. The city of Dawn, Udaipur is a lovely land around the azure water lakes, hemmed in by the lush hills of the Aravalis. A vision in white drenched in romance and beauty, Udaipur city of Rajasthan state is a fascinating blend of sights, sounds and experiences - an inspiration for the imagination of the poets, painters and writers. Their reflection in the placid waters of the Lake Pichhola is an enticing sight. Arrive at Udaipur, transfer to hotel,check in to hotel,take rest,free for leisure,overnighjt stay at hotel at Udaipur<br />
</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> Udaipur
								</p>
								<p class="aj">After breakfast visit to sight seeing tour of Udaipur. Enjoy picturesque lake Pichola set on the backdrop of Aravali hills, established in 1559 by Maharana Udai Singh, is nick named as ‘Kashmir of Rajasthan’ or ‘Venice of the East’, owing to its natural beauty; enchanting location and picturesque surroundings. The City Palace museum, the Jagdish temple, Sahelion Ki Bari (Queen’s resort for their friends) Bhartiya Lok Kala Mandir (Folk art museum) and the Pratap Memorial. Later back to hotel . Rest of the day free for leisure. Overnight stay at hotel in 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 3:</b> Udaipur - Ranakpur - Mount Abu (250 Kms - 5.30 HRS)
								</p>
								<p class="aj">After breakfast check out from hotel then drive to Mount Abu<br />
Mount Abu: the only hill station of Rjasthan, situated at an altitude of 1200 m. Mt. Abu Wildlife Sanctuary is long and narrow but the top spreads out into a picturesque plateau, which is about 19 km in length and 5-8 km in breadth. Once home to the meditating rishi and munis, the legend has it that Mount Abu is home to 33 crore Gods and Goddess. According to the legend the name Abu means son of Himalayas (or Ar-Booda, "the hill of wisdom"), deriving its name from Arbuada - the powerful serpent, which rescued Nandi the sacred bull of Lord Shiva. Mount Abu has been home, to many rishis and munis (sages and saints), including the famous Rishi Vashishtha, who is believed to have created four Agnikul Rajput clans, from a fire- pit, by performing a yagna or fire sacrifice, to protect the earth from the demons.In historic times, Mount Abu was leased by the The East-India Company (British empire) from the Maharajah of Sirohi, Mount Abu was used as the headquarters for the resident of Rajputana until 1947, and as a sanatorium for troops.<br />
Enroute  visiting Ranakpur temples with their beautiful carvings and the marble complex of Adinath shrine that has 1444 columns.Ranakpur is one of the most important five pilgrimage places of rajasthan, it is the pilgrimage hub of Jainism.It is known for peaceful nature of the flowers of Jainism. Arrive at Mount abu transfer to hotel,check in to the hotel,take rest. free for leisure,overnight stay at hotel in Mount Abu</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> Mount Abu
								</p>
								<p class="aj">After breakfast, visit world famous Dilwara Jain Temple, Nikki Lake, Brahmin Kumari Ashram etc. <br />
Dilwara Temple: These remarkable Jain temples are Mount Abu's main attraction and among the finest examples includes two temples in which the art of carving marble reached unsurpassed heights. <br />
The older of the temples is the ' Vimal Vasahi ', built in 1031 and dedicated to the first tirthankar, Adinath. In the front of the temple stands the ' House of Elephants ', with figures of elephants marching in procession to the temple entrance. <br />
Nakki Lake: is virtually in the heart of Mount Abu and is a big attraction with tourists. The lake takes its name from the legend that it was scooped out by a god, using only his nails, or nakh. It's a pleasant stroll around the lake - look for the strange rock formations. On the lake there is a dilapidated concrete boat-shaped snack bar.<br />
Visit Prajapita Bramhakumari Ashram.later back to hotel free for leisure,overnight stay at hotel in Mount Abu</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> Mount Abu - Jodhpur (270 Kms - 6 Hrs)
								</p>
								<p class="aj">After breakfast, check out from hotel then drive to Jodhpur<br />
to Jodhpur: history revolves around the Rathore Clan. Rao Jodha, the chief of the Rathore clan, is credited with the origin of Jodhpur in India. He founded Jodhpur in 1459. The city is named after him only. It was previously known as Marwar. The following paragraphs will tell you more about the past of Jodhpur, Rajasthan.The Rathores were driven out of their original homeland, Kaunaj, by Afghans. They fled to Pali, near to the present day Jodhpur. Rathore Siahaji married the sister of a local prince. This helped the Rathores to establish and strengthen themselves in this region. In some time they ousted the Pratiharas of Mandore, just 9 km of today's Jodhpur. Initially, Mandore served as their capital, but, by 1459, Rathores felt a need for a secure capital. This lead to the formation of Jodhpur, the Sun City, by Rao Jodha.<br />
Arrive at jodhpur,  transfer to hotel,check in to hotel,take rest,free for leisure,Evening  visit the local markets. overnight stay at hotel in 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 6:</b> Jodhpur
								</p>
								<p class="aj">After breakfast  visit to the Mehrangarh Fort: situated on a low sandstone hill. Within the fort, visit Moti Mahal and Phool Mahal. <br />
Also visit Jaswant Thada, an imposing marble cenotaph, built in memory of Maharaja Jaswant singh II around 1899 and Umaid Public gardens. <br />
Maha Mandir temple and Umaid Bhawan Palace: is one of the last palaces built in India. It was built in 1944 by Maharaja Umaid Singh. The king was attracted very much to the western style of living. The palace reflects his taste, as it is one of the rare palaces in India whose architecture is distinctly western. The architect of the palace was an English man named Henry Vaughn. <br />
Evening visit the Mandore Gardens. Later back to hotel, Overnight stay at hotel in 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 - Departure
								</p>
								<p class="aj">After breakfast, check out from hotel & transfer airport or railway station for onwards 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>
																		<li>Sightseeing</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</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.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 />
												</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="Splendid Rajasthan 6Night/7Days 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="27761"/>
						</form>
						</div>
						
						";i:1;s:75:"Book Splendid Rajasthan 6Night/7Days Tour - 6 Nights / 7 Days Tour Packages";i:2;s:151:"book splendid rajasthan 6night/7days tour - 6 nights / 7 days tour packages, forts and palaces tour packages, jodhpur, mount abu, udaipur tour packages";i:3;s:196:"Chaturvedi Travels and Tours offers Splendid Rajasthan 6Night/7Days Tour - 6 Nights / 7 Days tour package, budget Forts and Palaces tour packages for Jodhpur, Mount Abu, Udaipur at exciting price.";i:4;s:1549:"
			<script type="application/ld+json">
		    {
		      "@context": "https://schema.org",
		      "@type": "TouristAttraction",
		      "address": {
		        "@type": "PostalAddress",
		         "addressRegion": "Jodhpur, Mount Abu, Udaipur"        
		                 },
		      "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
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.<b><b>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": "Splendid Rajasthan 6Night/7Days Tour",
		      "telephone": "+91-9826355115"
		    }
		    </script>
			";i:5;N;}