a:6:{i:0;s:17821:"				<div class="h1"><h1>Best of Egypt Tour</h1></div>
				<p class="breadcrumb ar uu small"><a href="http://www.travvelextent.in/" title="Home">Home</a> 
				
									<b class="ffv p2px">&rsaquo;</b><a href="http://www.travvelextent.in/tour-packages.htm" title="Tour Packages">Tour Packages</a>  			
									
				<b class="ffv p2px">&rsaquo;</b>Best of Egypt 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">EG7CAN</td>
						</tr>
												<tr>
						<td class="b p5px w125px vat">Duration </td>
						<td class="p5px pl0px vat">
						7 Nights / 8 Days 
						</td>
						</tr>
												<tr>
						<td class="b p5px w125px vat">Destination Covered </td>
						<td class="p5px pl0px vat">Cairo</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.travvelextent.in/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Best of Egypt 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="18463"/>
						</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_10/274422/31632.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_10/274422/31632.jpg"  width="150" height="150"    alt="Best of Egypt Tour" title="Best of Egypt 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_10/274422/31633.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_10/274422/31633.jpg"  width="150" height="150"    alt="Best of Egypt Tour" title="Best of Egypt 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_10/274422/31634.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_10/274422/31634.jpg"  width="150" height="150"    alt="Best of Egypt Tour" title="Best of Egypt 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_10/274422/31635.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_10/274422/31635.jpg"  width="150" height="150"    alt="Best of Egypt Tour" title="Best of Egypt 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_10/274422/31636.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_10/274422/31636.jpg"  width="150" height="150"    alt="Best of Egypt Tour" title="Best of Egypt 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_10/274422/31637.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_10/274422/31637.jpg"  width="150" height="150"    alt="Best of Egypt Tour" title="Best of Egypt Tour" /></a></p></div></li>
															</ul>
						</div>
						</td>
											</tr>
					</table>
					</div>
					<br />
					
					Tips & Gratuities.<br />
(Hotel - $ 6.00 USD per person/per day and Cruise - $ 8.00 USD per person/per day)<br />
You can give tips fully to our guide upon arrival and he will distribute on your behalf.<br />
Personal expanses e.g. (tel., beverages, laundry, room service etc.).<br />
Entering the Pyramids Chamber from inside, solar boat & Mummies <br />
Room at the Egyptian Museum.<br />
First Pyramids (Pyramid of Khufu): $ 25.00 US per Adult.<br />
Second Pyramids (Pyramid of Khafre or Kephren):$ 11.00 US per Adult.<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> Cairo
								</p>
								<p class="aj">Meet and assist by a representative showing a sign of your name, assisting you through passport control and customs formalities, Luggage &porterage then transferring you by air-conditioned vehicle to Your hotel where you will be assisted for check-in.</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> Cairo - Overnight Train Aswan
								</p>
								<p class="aj">Breakfast at hotel<br />
Direct transfer by air conditioned vehicles with your Egyptologist who will guide you for a Full day tour visit:<br />
The Great Pyramid of Giza is the main part of a complex setting of buildings that included two mortuary temples in honor of Khufu (one close to the pyramid and one near the Nile), three smaller pyramids for Khufu's wives, an even smaller "satellite" pyramid, a raised causeway connecting the two temples, and small Mastaba tombs surrounding the pyramid for nobles. One of the small pyramids contains the tomb of queen Hetepheres (discovered in 1925), sister and wife of Snefru and the mother of Khufu.<br />
<br />
Lord of the Sphinx<br />
The word "sphinx", which means 'strangler', was first given by the Greeks to a fabulous creature. This had the head of a man and the body of a lion Of Egypt, there are numerous sphinxes, usually with the Head of a king wearing his headdress and the Body of a lion, the head and face of the Sphinx certainly reflect a style that belongs to Egypt's old kingdom and to the 4th dynasty in particular.<br />
<br />
The Egyptian Museum:<br />
Your Egyptologist will escort you on a fascinating Tour of 7,000 years of this famous museum houses the world’s largest collection of ancient Egyptian artifacts (more than 145,000 items on display) featuring the famous Tutankhamen collection with its beautiful gold death mask and sarcophagus and the royal Mummy room, which houses an additional eleven Pharaonic dignitaries.<br />
<br />
In the Evening, transfer to station for sleeper train Cairo/Aswan <br />
Dinner & overnight on board train.</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> Arrive Aswan - Nile Cruise
								</p>
								<p class="aj">Breakfast on board train<br />
Arrives to Aswan station - meet & assist by tour representative and direct transfer by air conditioned vehiclesto your Nile Cruiseto drop luggage, then proceed for visit:<br />
<br />
High Dam: 		<br />
Located near Aswan, the world famous High Dam was an engineering miracle when it was built in the 960s. It contains 18 times the material used in the Great Pyramid of Cheops. The Dam is 11,811 feet long, 3215 feet thick at the base and 364 feet tall. <br />
<br />
Philae Temple: 	<br />
Philae dedicated to Goddess Isis and constructed on the beautiful island of Philae. Philae the modern day name is Greek but the ancient Egyptians called the island P-aaleq which amongst other definitions has the dual meaning of "end" and "creation". <br />
<br />
Lunch on board, PM.	Sail to KomOmbo, visit:<br />
<br />
KomOmbo temple:<br />
The temple of KomOmbo is unique in one respect: it is dedicated to two gods, and the entire temple holds two perfectly symmetrical sections. The sanctuary to the left is dedicated to the falcon-headed sky god Harwer (also written Haroeris), or Horus the elder and his family.<br />
<br />
Sail to Edfu:<br />
Dinner and 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> Nile Cruise
								</p>
								<p class="aj">Breakfast on board. Direct transfer with your Egyptologist for visit:	<br />
<br />
Edfu temple:<br />
Edfu was the 2nd Nome of Upper Egypt and the centre of the cult of a triad of Gods, which consisted of Horus of Behdet, Hathor, and their son, Hor-Sama-Tawy. Edfu was known as Apollo polis Magna because the Greeks identified Horus with their God Apollo, the work of construction began during the reign of Ptolemy III (about 237 BC) and was finished during the reign of Ptolemy IV. Sail to EsnaLunch on board. Sail to Luxor according to the opening of Esna lock<br />
Dinner & overnight on board.</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> Nile Cruise (B) - Overnight Train Cairo
								</p>
								<p class="aj">Breakfast on board<br />
Direct transfer by air conditioned vehicles for Visit the West bank including:<br />
<br />
Valley of the Kings:<br />
The first king of the New Kingdom, Ahmose of the 18th Dynasty, built a pyramid-like structure at Abydos, which may or may not have been his original tomb the Valley, known as Biban el-Muluk, "doorway or gateway of the kings," or, the Wadyein, meaning "the two valleys," is actually composed of two separate branches. The main eastern branch, called TA set aat, or "The Great Place," is where most of the royal tombs are located, and in the larger,The Valley is hidden from sight, behind the cliffs, which form the backdrop to the temple complex of Deir el-Bahari<br />
<br />
Hatshepsut Temple:<br />
The mortuary temple of Queen Hatshepsut, the Queen’s architect, Senenmut, designed it and set it at the head of a valley overshadowed by the Peak of the Thebes, the "Lover of Silence," where lived the goddess who presided over the necropolis. His daughter became pharaoh, her father Tutmose I circulated the legend that the God Amon became father of Hatshepsut and therefore she is half a God she was married twice unfortunately and her second husband and stepbrother Tutmose III hated her so much that he had all pictures and inscriptions of her destroyed after she died<br />
<br />
Colossi of Memnon: <br />
These two, gigantic figures of Amenhotep III were originally situated in front of his Mortuary temple which was destroyed for unknown reasons! The two colossi are made of sandstone, which during ancient times was brought from Gabal El Silselah. Each colossus, including the pedestal and the crown, is about 21m tall and represents King Amenhotep III seating on his throne, wearing the Nimes, or royal headdress, with the divine cobra protecting his forehead. <br />
<br />
Lunch on board, PM Free at Leisure.<br />
Dinner and overnight on board cruise.</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> Cairo
								</p>
								<p class="aj">On arrival at Cairo Railway Station you will be directly transfer by air conditioned vehicles to Cairo HotelBy your Tour representative.<br />
Overnight in Cairo Hotel.<br />
Karnak temple:<br />
This great Temple of Amon Ra was known during the Middle Kingdom period as Ipt-Swt, which means the Selected Spot. It was also called Pr-Imn, which means the House of Amon. The entrance you will find a ram-headed avenue of Sphinxes, which was built to protect the Temple. There are 20 rams on each side, as you cross this pylon, it takes you into an Open court, whose dimensions are100m long by 80m wide, built during the 22nd Dynasty, and containing rows of bud papyrus columns.<br />
Luxor temple:<br />
The Temple of Luxor is among the most beautiful Temples in Egypt. It was known in the New Kingdom period as Ipt-Rsyt, which means the southern shrine. This was to differentiate between this Temple and Karnak Temple, which was the northern house of Amon Ra. Amenhotep III built Luxor Temple. The Temple run close and parallel to the river Nile from north to south, it was constructed on the site of a small Temple of Amon, built by kings of the 12th dynasty.<br />
<br />
Then direct transfer by air conditioned vehicles to Luxor Railway Station to connect overnight Train to Cairo. Dinner & Overnight on board Sleeper Train.</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> Cairo
								</p>
								<p class="aj">On arrival at Cairo Railway Station you will be directly transfer by air conditioned vehicles to Cairo HotelBy your Tour representative.<br />
Overnight in Cairo 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 8:</b> Cairo - Fly back India
								</p>
								<p class="aj">Breakfast at the Hotel<br />
Check out and transfer to Cairo international Airport meet our representative who will escort you to the airport and will assist you through the airport Check-in and Customs procedures.</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>Transport</li>
																		<li>Transfers</li>
															</ul>
						<br />
												<p class="large b mb5px dif">Exclusions :</p> <ul><li>Tips & Gratuities.</li><li>
(Hotel - $ 6.00 USD per person/per day and Cruise - $ 8.00 USD per person/per day)</li><li>
You can give tips fully to our guide upon arrival and he will distribute on your behalf.</li><li>
Personal expanses e.g. (tel., beverages, laundry, room service etc.).</li><li>
Entering the Pyramids Chamber from inside, solar boat & Mummies </li><li>
Room at the Egyptian Museum.</li><li>
First Pyramids (Pyramid of Khufu): $ 25.00 US per Adult.</li><li>
Second Pyramids (Pyramid of Khafre or Kephren):$ 11.00 US per Adult.</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.travvelextent.in/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Best of Egypt 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="18463"/>
						</form>
						</div>
						
						";i:1;s:57:"Book Best of Egypt Tour - 7 Nights / 8 Days Tour Packages";i:2;s:102:"book best of egypt tour - 7 nights / 8 days tour packages, heritage tour packages, cairo tour packages";i:3;s:133:"Travvel Extent offers Best of Egypt Tour - 7 Nights / 8 Days tour package, budget Heritage tour packages for Cairo at exciting price.";i:4;s:882:"
			<script type="application/ld+json">
		    {
		      "@context": "https://schema.org",
		      "@type": "TouristAttraction",
		      "address": {
		        "@type": "PostalAddress",
		         "addressRegion": "Cairo"        
		                 },
		      "description": "Tips & Gratuities.
(Hotel - $ 6.00 USD per person/per day and Cruise - $ 8.00 USD per person/per day)
You can give tips fully to our guide upon arrival and he will distribute on your behalf.
Personal expanses e.g. (tel., beverages, laundry, room service etc.).
Entering the Pyramids Chamber from inside, solar boat & Mummies 
Room at the Egyptian Museum.
First Pyramids (Pyramid of Khufu): $ 25.00 US per Adult.
Second Pyramids (Pyramid of Khafre or Kephren):$ 11.00 US per Adult.",
		      "name": "Best of Egypt Tour",
		      "telephone": "+91-9706071620"
		    }
		    </script>
			";i:5;N;}