a:6:{i:0;s:18391:"				<div class="h1"><h1>Umrah Tour</h1></div>
				<p class="breadcrumb ar uu small"><a href="http://www.sabiotravelandtradelinks.com/" title="Home">Home</a> 
				
									<b class="ffv p2px">&rsaquo;</b><a href="http://www.sabiotravelandtradelinks.com/packages.htm" title="Packages">Packages</a>  			
									
				<b class="ffv p2px">&rsaquo;</b>Umrah 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">Duration </td>
						<td class="p5px pl0px vat">
						13 Nights / 14 Days 
						</td>
						</tr>
												<tr>
						<td class="b p5px w125px vat">Destination Covered </td>
						<td class="p5px pl0px vat">Medina, Mecca</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.sabiotravelandtradelinks.com/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Umrah 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="120128"/>
						</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_13/385924/194606.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_13/385924/194606.jpg"  width="150" height="150"    alt="Umrah Tour" title="Umrah Tour" /></a></p></div></li>
															</ul>
						</div>
						</td>
											</tr>
					</table>
					</div>
					<br />
					
					Deluxe / Economy Umrah packages for 2016 / 2017<br />
Airport Reporting : 4 Hours before Departure<br />
<br />
·         Economy class Air Ticket.<br />
·         Umrah Visas.<br />
·         Meet & Assist at Jeddah Airport on Arrival.<br />
·         Internal Transportation by Air Conditioned busses in groups.<br />
·         Stay for 7 Days in Makkah & 7 Days in Madinah in Star Hotels.<br />
(Including Travel Time. Duration of Stay in Each City may change for Any Group by 1 or 2 days depending upon Hotel Availability & Transport Facilities.)<br />
·         Daily Delicious Meals - Breakfast, Lunch & Dinner.<br />
·         Unlimited Laundry facility.<br />
·         5 Litres of Zamzam Cans<br />
·         Complimentary items provided by the Tour operator. (Not for child & infant booked without bed)<br />
·         Ziarat tour of Makkah and Madinah with Experienced Tour Guide and Refreshments.<br />
·         Economy Packages dont have Laundary Services.<br />
<br />
<br />
<b>Tour Detail </b><br />
<br />
<br />
DAY 1 : Assemble at International Airport and board Saudi Airways to Jeddah, After arrival at Jeddah Airport & immigration clearance meet our local representative who will assist and transfer you to Makkah Mukarramah <br />
( - 2 hrs Journey), arrive at the Holiest City and transfer to Hotel, check in and relax to reassemble yourself for the main objective of your journey The Umrah. Perform Umrah with our Representative and remember us also in your dua... (Meals will be arranged as per your arrival timing)<br />
DAY 2 : AT YOUR DISPOSAL - For Relaxation or Just Do your Ibaadats & Duaas in Haram.<br />
<br />
DAY 3 : Optional program of Local Ziarat with Professional Tour Guide such as Mina, Arafat, Muzdalifa, Jabal e Noor, Jabal E Soor and Jannat ul Mala with Live Commentaries & Duaas from Islamic Scholars.<br />
<br />
DAY 4,5,6 : AT YOUR DISPOSAL - For doing optional Second and Third Umrah, or Just Do your Ibaadats in Haram<br />
<br />
DAY 7 or 10 : Today get ready to checkout from your hotel as we will be moving to Madinah Munawwarah<br />
( 5hrs Journey) the 2nd Holiest City (time will be given after your arrival to Makkah, you are kindly requested to follow the timing), arrive Madinah and transfer to your hotel, check in to your hotel and relax, fresh up as you will be visiting the most awaited Masjid e Nabwi (S.A.W), enter with respect and lower your voice as our Prophet (S.A.W) is relaxing here, present your Salam to him and also give our Salam too <br />
(Meals will be arranged as per your arrival timing)<br />
DAY 11 : Optional program of Ziarat with Professional Tour Guide visiting all the Historical places in Madina i.e. Masjid E Quba, Masjid E Qiblatain, Saba-Masajid, and Jabal e Ohud with Live Commentaries & Duaas from Islamic Scholars. You will be given time to offer two Rakaat Namaaz in Masjid e Quba and Masjid e Qiblatain.<br />
<br />
DAY 12 or 14 : Today is the last day of our Holy Journey, pack your baggage and get ready until your pickup from Hotel and drop to Jeddah Airport (5 – 6 Hrs Journey) with all the happy memories of your Journey.<br />
<br />
Happy Tour concludes.Guests & Relatives of Hajis are NOT ALLOWED to Stay at Hotel. In case of Urgent situation can be accomodated by paying extra Money.<br />
Room Service & House Keeping Not Included.<br />
If you travel individually other than group dates, you will bear the additional transportation charges as per your itinerary.<br />
Additional stay other than group would be charged extra.<br />
No Refund in case of unused services or lesser duration of stay.<br />
Extra luggage other than mentioned on ticket would be paid by the pilgrim.<br />
Luggage Services are NotIncluded.<br />
Tips to Drivers or Waiters.<br />
We are not responsible for Waiting time at Hotel Reception due to Difference in Checkin and Check Out time of the Hotel in Comparison to Flight Arrival or Departure Time.<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
								</p>
								<p class="aj">Assemble at International Airport and board Saudi Airways to Jeddah, After arrival at Jeddah Airport & immigration clearance meet our local representative who will assist and transfer you to Makkah Mukarramah <br />
( - 2 hrs Journey), arrive at the Holiest City and transfer to Hotel, check in and relax to reassemble yourself for the main objective of your journey The Umrah. Perform Umrah with our Representative and remember us also in your dua... (Meals will be arranged as per your arrival timing)</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> Haram
								</p>
								<p class="aj">AT YOUR DISPOSAL - For Relaxation or Just Do your Ibaadats & Duaas in Haram.</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> Mina, Arafat, Muzdalifa, Jabal e Noor, Jabal E Soor
								</p>
								<p class="aj">Optional program of Local Ziarat with Professional Tour Guide such as Mina, Arafat, Muzdalifa, Jabal e Noor, Jabal E Soor and Jannat ul Mala with Live Commentaries & Duaas from Islamic Scholars.</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> Second and Third Umrah
								</p>
								<p class="aj">AT YOUR DISPOSAL - For doing optional Second and Third Umrah, or Just Do your Ibaadats in Haram</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> Umrah
								</p>
								<p class="aj">AT YOUR DISPOSAL - For doing optional Second and Third Umrah, or Just Do your Ibaadats in Haram</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> Umrah
								</p>
								<p class="aj">AT YOUR DISPOSAL - For doing optional Second and Third Umrah, or Just Do your Ibaadats in Haram</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> Makkah
								</p>
								<p class="aj">Today get ready to checkout from your hotel as we will be moving to Madinah Munawwarah<br />
( 5hrs Journey) the 2nd Holiest City (time will be given after your arrival to Makkah, you are kindly requested to follow the timing), arrive Madinah and transfer to your hotel, check in to your hotel and relax, fresh up as you will be visiting the most awaited Masjid e Nabwi (S.A.W), enter with respect and lower your voice as our Prophet (S.A.W) is relaxing here, present your Salam to him and also give our Salam too <br />
(Meals will be arranged as per your arrival timing)</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> Makkah
								</p>
								<p class="aj">Today get ready to checkout from your hotel as we will be moving to Madinah Munawwarah<br />
( 5hrs Journey) the 2nd Holiest City (time will be given after your arrival to Makkah, you are kindly requested to follow the timing), arrive Madinah and transfer to your hotel, check in to your hotel and relax, fresh up as you will be visiting the most awaited Masjid e Nabwi (S.A.W), enter with respect and lower your voice as our Prophet (S.A.W) is relaxing here, present your Salam to him and also give our Salam too <br />
(Meals will be arranged as per your arrival timing)</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> Makkah
								</p>
								<p class="aj">Today get ready to checkout from your hotel as we will be moving to Madinah Munawwarah<br />
( 5hrs Journey) the 2nd Holiest City (time will be given after your arrival to Makkah, you are kindly requested to follow the timing), arrive Madinah and transfer to your hotel, check in to your hotel and relax, fresh up as you will be visiting the most awaited Masjid e Nabwi (S.A.W), enter with respect and lower your voice as our Prophet (S.A.W) is relaxing here, present your Salam to him and also give our Salam too <br />
(Meals will be arranged as per your arrival timing)</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> Makkah
								</p>
								<p class="aj">Today get ready to checkout from your hotel as we will be moving to Madinah Munawwarah<br />
( 5hrs Journey) the 2nd Holiest City (time will be given after your arrival to Makkah, you are kindly requested to follow the timing), arrive Madinah and transfer to your hotel, check in to your hotel and relax, fresh up as you will be visiting the most awaited Masjid e Nabwi (S.A.W), enter with respect and lower your voice as our Prophet (S.A.W) is relaxing here, present your Salam to him and also give our Salam too <br />
(Meals will be arranged as per your arrival timing)</p>
								</td>
								</tr>
								</table>					
								</div><div id="show_more_content" style="display:none;">
									<div class="data">
									<table class="w100 formTable bdr0 imgWidth">
									<tr>
									<td class="p10px vat">
									<p class="b large mb5px"><b class="dif">Day 11:</b> Madina
									</p>
									<p class="aj">Optional program of Ziarat with Professional Tour Guide visiting all the Historical places in Madina i.e. Masjid E Quba, Masjid E Qiblatain, Saba-Masajid, and Jabal e Ohud with Live Commentaries & Duaas from Islamic Scholars. You will be given time to offer two Rakaat Namaaz in Masjid e Quba and Masjid e Qiblatain.</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 12:</b> Jeddah Airport
									</p>
									<p class="aj">Today is the last day of our Holy Journey, pack your baggage and get ready until your pickup from Hotel and drop to Jeddah Airport (5 – 6 Hrs Journey) with all the happy memories of your Journey.</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 13:</b> Jeddah Airport
									</p>
									<p class="aj">Today is the last day of our Holy Journey, pack your baggage and get ready until your pickup from Hotel and drop to Jeddah Airport (5 – 6 Hrs Journey) with all the happy memories of your Journey.</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 14:</b> Departure
									</p>
									<p class="aj">Today is the last day of our Holy Journey, pack your baggage and get ready until your pickup from Hotel and drop to Jeddah Airport (5 – 6 Hrs Journey) with all the happy memories of your Journey.<br />
Happy Tour concludes.</p>
									</td>	
									</tr>
									</table>				
									</div>					
							</div>							<p class="mt10px ac"><a class="buttonBig p5px10px dib b" id="more_button" href="javascript:topDestinationToggle('show_more_content','more_button');" >View More &#9660;</a></p>
													<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>
															</ul>
						<br />
												<p class="large b mb5px dif">Exclusions :</p> <ul><li>Guests & Relatives of Hajis are NOT ALLOWED to Stay at Hotel. In case of Urgent situation can be accomodated by paying extra Money.</li><li>
Room Service & House Keeping Not Included.</li><li>
If you travel individually other than group dates, you will bear the additional transportation charges as per your itinerary.</li><li>
Additional stay other than group would be charged extra.</li><li>
No Refund in case of unused services or lesser duration of stay.</li><li>
Extra luggage other than mentioned on ticket would be paid by the pilgrim.</li><li>
Luggage Services are NotIncluded.</li><li>
Tips to Drivers or Waiters.</li><li>
We are not responsible for Waiting time at Hotel Reception due to Difference in Checkin and Check Out time of the Hotel in Comparison to Flight Arrival or Departure Time.</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.sabiotravelandtradelinks.com/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Umrah 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="120128"/>
						</form>
						</div>
						
						";i:1;s:51:"Book Umrah Tour - 13 Nights / 14 Days Tour Packages";i:2;s:118:"book umrah tour - 13 nights / 14 days tour packages, religious & pilgrimage tour packages, medina, mecca tour packages";i:3;s:163:"Sabio Travel and Trade Links offers Umrah Tour - 13 Nights / 14 Days tour package, budget Religious & Pilgrimage tour packages for Medina, Mecca at exciting price.";i:4;s:4132:"
			<script type="application/ld+json">
		    {
		      "@context": "https://schema.org",
		      "@type": "TouristAttraction",
		      "address": {
		        "@type": "PostalAddress",
		         "addressRegion": "Medina, Mecca"        
		                 },
		      "description": "Deluxe / Economy Umrah packages for 2016 / 2017
Airport Reporting : 4 Hours before Departure

·         Economy class Air Ticket.
·         Umrah Visas.
·         Meet & Assist at Jeddah Airport on Arrival.
·         Internal Transportation by Air Conditioned busses in groups.
·         Stay for 7 Days in Makkah & 7 Days in Madinah in Star Hotels.
(Including Travel Time. Duration of Stay in Each City may change for Any Group by 1 or 2 days depending upon Hotel Availability & Transport Facilities.)
·         Daily Delicious Meals - Breakfast, Lunch & Dinner.
·         Unlimited Laundry facility.
·         5 Litres of Zamzam Cans
·         Complimentary items provided by the Tour operator. (Not for child & infant booked without bed)
·         Ziarat tour of Makkah and Madinah with Experienced Tour Guide and Refreshments.
·         Economy Packages dont have Laundary Services.


<b>Tour Detail </b>


DAY 1 : Assemble at International Airport and board Saudi Airways to Jeddah, After arrival at Jeddah Airport & immigration clearance meet our local representative who will assist and transfer you to Makkah Mukarramah 
( - 2 hrs Journey), arrive at the Holiest City and transfer to Hotel, check in and relax to reassemble yourself for the main objective of your journey The Umrah. Perform Umrah with our Representative and remember us also in your dua... (Meals will be arranged as per your arrival timing)
DAY 2 : AT YOUR DISPOSAL - For Relaxation or Just Do your Ibaadats & Duaas in Haram.

DAY 3 : Optional program of Local Ziarat with Professional Tour Guide such as Mina, Arafat, Muzdalifa, Jabal e Noor, Jabal E Soor and Jannat ul Mala with Live Commentaries & Duaas from Islamic Scholars.

DAY 4,5,6 : AT YOUR DISPOSAL - For doing optional Second and Third Umrah, or Just Do your Ibaadats in Haram

DAY 7 or 10 : Today get ready to checkout from your hotel as we will be moving to Madinah Munawwarah
( 5hrs Journey) the 2nd Holiest City (time will be given after your arrival to Makkah, you are kindly requested to follow the timing), arrive Madinah and transfer to your hotel, check in to your hotel and relax, fresh up as you will be visiting the most awaited Masjid e Nabwi (S.A.W), enter with respect and lower your voice as our Prophet (S.A.W) is relaxing here, present your Salam to him and also give our Salam too 
(Meals will be arranged as per your arrival timing)
DAY 11 : Optional program of Ziarat with Professional Tour Guide visiting all the Historical places in Madina i.e. Masjid E Quba, Masjid E Qiblatain, Saba-Masajid, and Jabal e Ohud with Live Commentaries & Duaas from Islamic Scholars. You will be given time to offer two Rakaat Namaaz in Masjid e Quba and Masjid e Qiblatain.

DAY 12 or 14 : Today is the last day of our Holy Journey, pack your baggage and get ready until your pickup from Hotel and drop to Jeddah Airport (5 – 6 Hrs Journey) with all the happy memories of your Journey.

Happy Tour concludes.Guests & Relatives of Hajis are NOT ALLOWED to Stay at Hotel. In case of Urgent situation can be accomodated by paying extra Money.
Room Service & House Keeping Not Included.
If you travel individually other than group dates, you will bear the additional transportation charges as per your itinerary.
Additional stay other than group would be charged extra.
No Refund in case of unused services or lesser duration of stay.
Extra luggage other than mentioned on ticket would be paid by the pilgrim.
Luggage Services are NotIncluded.
Tips to Drivers or Waiters.
We are not responsible for Waiting time at Hotel Reception due to Difference in Checkin and Check Out time of the Hotel in Comparison to Flight Arrival or Departure Time.",
		      "name": "Umrah Tour",
		      "telephone": "+91-9849352166"
		    }
		    </script>
			";i:5;N;}