a:6:{i:0;s:21875:"				<div class="h1"><h1>Gems Of Rajasthan 8Night/9Days 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>Gems Of Rajasthan 8Night/9Days 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">CTT13/RAJASTHAN 8NIG</td>
						</tr>
												<tr>
						<td class="b p5px w125px vat">Duration </td>
						<td class="p5px pl0px vat">
						8 Nights / 9 Days 
						</td>
						</tr>
												<tr>
						<td class="b p5px w125px vat">Destination Covered </td>
						<td class="p5px pl0px vat">Bikaner, Jaipur, Jaisalmer, Jodhpur, Mount Abu, Udaipur</td>
						</tr>
												<tr>
						<td class="b p5px w125px vat">Price (Starting From) </td>
						<td class="p5px pl0px vat">
						INR 29999 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="Gems Of Rajasthan 8Night/9Days 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="27762"/>
						</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/56073.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_8/229281/56073.jpg"  width="150" height="150"    alt="gems of rajasthan" title="gems of 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 Jaipur
								</p>
								<p class="aj">Arrival at Jaipur Jaipur: Founded in AD 1727 by Sawai Jaisingh II, Jaipur the capital of Rajasthan is popularly known as the Pink City with broad avenues and spacious gardens. The capital of Rajasthan, Jaipur is steeped in history and culture. Here the past comes alive in magnificent forts and palaces, blushed pink, where once lived the maharajas. The bustling bazaars of Jaipur, famous for Rajasthani jewellery, fabric and shoes, This fascinating city with its romantic charm takes you to an epoch of royalty and tradition. Jaipur has been recommended in the ancient Indian treatise on architecture. Each grid consists of a square, and these have been planned so that, at the heart of the city is the City Palace. Spread around it, in rows, are public buildings, the residences of noblemen, the living and trading quarters of merchants and artisans. Straight, wide roads run through the city, while a high, crenellated wall that forms its defense is pierced with seven gateways that serve as entry points. Today, these walls may be more difficult to spot since the city has grown far beyond its original plan, but they are still there. <br />
visit to the impressive Amber Fort:  situated on a ridge just outside Jaipur City. At the foot of the hill you will mount your caparisoned elephant for the slow but steady climb up to the main gate, making your entrance in the time honoured fashion. The Fort, completed in the early 18th century, took over 100 years to build and now, although deserted, offers a fascinating insight into the lifestyle of the Moghul ruling families. <br />
Afternoon tour of the City - "The Pink City" is spectacularly set within surrounding rugged hills, dotted with ancient ruined fortresses. Your tour will include the imposing City Palace, still home to the Maharaja although several of the rooms are now open to the public. Many antiques and artifacts belonging to the ruling family are housed here, including a collection of weaponry. You will also visit the Hawa Mahal "Palace of the Winds", and the open-air,  Jantar Mantar Observatory to see the vast astronomical instruments. Enjoy a stroll through the colourful .<br />
Later back to hotel, free for leisure overnight stay at hotel 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 2:</b> Jaipur - Bikaner (330 KM - 5.30 HRS)
								</p>
								<p class="aj">After breakfast,check out from hotel then drive to the imposing walled city of  Bikaner: The city of Bikaner was founded in 1488 from jangledesh or the country of wild bushes. It has been almost 550 years since its inception and the city has spread across the desert and has also acquired expertise viz, camel breeding and dry irrigation which is unique to it. Bikaner city alongwith its rocky scrubland, is located on an elevated plain in the desert. The old city is encompassed by a long embattlement wall which intermittently breaks to give way to five huge gates. Now a major trade center for wool, building stones, carpets, blankets, salt and grain, Bikaner has emerged as the lifeline of the state.<br />
Arrive at Bikaner Transfer to hotel.check in to hotel,take rest at the hotel . later visit to sightseeing of Bikaner. <br />
Junagarh Fort : The famous fort  ofJunagarh was constructed by Raja Rai Singh in 1593. The fort is one of its kinds with a strong, innovative and formidable structure which is encircled by a water moat which is believed to have bred crocodiles in the past. An amazing network of havelis with courtyards and balconies, watch towers, armory, halls and other the fort exudes an aura of red sandstone (Dulmera) and marble. The grand fort has a long rampart which is almost a 1000m long and is studded with 37 bastions and two entrances. Various monuments such as Ganga Niwas, Rang Mahal, Anop Mahal with it's delicate gold leaf painting. Har Mandir - the majestic shrine, Chandra Mahal with its paintings on lime plasters Phool Mahal with its exquisite inset mirror work and Sheesh Mahal with its unique mirror chamber adorns the fort.and the Karnimata Temple at Deshnok.<br />
Also visit the prestigious camel breeding farm in the evening. <br />
Later back to hotel . overnight stay at hotel in Bikaner.</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> Bikaner - Jaisalmer (330 KM - 5 HRS)
								</p>
								<p class="aj">After breakfast check out from hotel then drive to Jaisalmer : is a giant sandcastle with a town attached, an emblem of honour in a land of rough and tumble. The fort is a living monument to long-lost desert might, a Golden City of dreams that exceeds expectations of the most travel-sick tourist or hardened history buff. Rising high from Trikuta hill, 99 enormous bastions hide havelis of crumbling beauty, and former Raj retainers, who now raffishly run guesthouses or flog bedazzling mirrorwork and embroidery. Like a Hansel and Gretel wonderland, the enclosed palace is carved from the same near-edible golden sandstone.<br />
Arrive at Jaisalmer , transfer to hotel.check in to hotel , Later in the evening visit the abandoned haunting village of Kuldhera and take an enjoying camel ride at the golden sand dunes of the Samm by the sunset. Later back to hotel,free for leisure overnight stay at hotel at Jaisalmer.</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> Jaisalmer - City Tour
								</p>
								<p class="aj">After breakfast visit to sightseeing of various attractions of the town covering fort with its temples & palaces, the Havelis, the amazing maze of lanes and bylanes, Gadsisar tank, Bada Bagh and Vyas Chhattries. ( 80 meters above plains ) & Jain Temples within the Fort, built in 12th to 15th century which are very worth watching. <br />
Jaisalmer Fort: the golden fortress constructed by the renowned Rajput ruler Jaisal in 1156, is located at the majestic Trikuta hills. It is also known as Sonar Kila. Its historical importance stands with the many battles fought in this spectacular Fort. The fort was the major protective cover for the Rajput Kings from the attacks of foreign invaders. The specialty of the is that still approximately 5000 people are living inside. Visit Fort Palace & atop from Palace you can have the golden view of whole Jaisalmer city as whole city is built in yellow sand stones, when sun rays fall on the city, it give impression as golden city of India.<br />
Afterwards visit Patwon Ki Haveli and Nath Ji Mal Ki Haveli. Evening reserved for folk entertainment. Later back to hotel ,free for leisure overnight stay at hotel in Jaisalmer.</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> Jaisalmer - Jodhpur (270 Kms - 06hrs)
								</p>
								<p class="aj">After breakfast,check out from hotel then drive 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, ,later visit to the Mehrangarh Fort: situated on a low sandstone hill. Within the fort, visit Moti Mahal and Phool Mahal. Also 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. 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 6:</b> Jodhpur-MountAbu(270KM-5HRS)
								</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 />
Arrive at Mount abu transfer to hotel,check in to the hotel,take,then later visit to 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 />
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.Also visit Prajapita Bramhakumari Ashram , then enjoy at market for shoping.   Later back to hotel 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 7:</b> Day 07: Mount Abu - Ranakpur - Udaipur (250 KM - 06HRS)
								</p>
								<p class="aj">After breakfast, check out from hotel then drive to Udaipur<br />
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.<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.<br />
Arrive at Udaipur, transfer to hotel,check in to hotel,take rest,free for leisure,overnighjt stay at hotel 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 8:</b> Udaibur
								</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.<br />
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 9:</b> Udaipur - Departure
								</p>
								<p class="aj">After breakfast, check out from hotel & Transfer to airport / 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 />
											
						<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.chaturveditravels.com/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Gems Of Rajasthan 8Night/9Days 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="27762"/>
						</form>
						</div>
						
						";i:1;s:74:"Book Gems Of Rajasthan 8Night/9Days Tour - 8 Nights / 9 Days Tour Packages";i:2;s:178:"book gems of rajasthan 8night/9days tour - 8 nights / 9 days tour packages, forts and palaces tour packages, bikaner, jaipur, jaisalmer, jodhpur, mount abu, udaipur tour packages";i:3;s:238:"Book Gems Of Rajasthan 8Night/9Days Tour - 8 Nights / 9 Days tour packages from Chaturvedi Travels and Tours - Get attractive 8 Nights / 9 Days Forts and Palaces  tour packages for  Bikaner, Jaipur, Jaisalmer, Jodhpur, Mount Abu, Udaipur.";i:4;s:1576:"
			<script type="application/ld+json">
		    {
		      "@context": "https://schema.org",
		      "@type": "TouristAttraction",
		      "address": {
		        "@type": "PostalAddress",
		         "addressRegion": "Bikaner, Jaipur, Jaisalmer, 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": "Gems Of Rajasthan 8Night/9Days Tour",
		      "telephone": "+91-9826355115"
		    }
		    </script>
			";i:5;N;}