a:6:{i:0;s:13465:"				<div class="h1"><h1>UK & Netherland – 06 NIGHTS & 07 DAYS Tour</h1></div>
				<p class="breadcrumb ar uu small"><a href="http://www.oppexholidays.com/" title="Home">Home</a> 
				
									<b class="ffv p2px">&rsaquo;</b><a href="http://www.oppexholidays.com/tour-packages.htm" title="Tour Packages">Tour Packages</a>  			
									
				<b class="ffv p2px">&rsaquo;</b>UK & Netherland – 06 NIGHTS & 07 DAYS 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">
						6 Nights / 7 Days 
						</td>
						</tr>
												<tr>
						<td class="b p5px w125px vat">Destination Covered </td>
						<td class="p5px pl0px vat">London, Amsterdam</td>
						</tr>
												<tr>
						<td class="b p5px w125px vat">Price (Starting From) </td>
						<td class="p5px pl0px vat">
						INR 64999 Per Person						</td>
						</tr>
												<tr>
						<td></td>
						<td>
						<p>
						<form name="frmpackagedetail" id="frmpackagedetail" method="post" action="http://www.oppexholidays.com/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="UK & Netherland – 06 NIGHTS & 07 DAYS 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="111914"/>
						</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_2/37817/183801.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_2/37817/183801.jpg"  width="150" height="150"    alt="UK & Netherland – 06 NIGHTS & 07 DAYS Tour" title="UK & Netherland – 06 NIGHTS & 07 DAYS Tour" /></a></p></div></li>
															</ul>
						</div>
						</td>
											</tr>
					</table>
					</div>
					<br />
					
					HOTEL DETAILS:<br />
London IBIS Styles or St George or Similar<br />
Amsterdam Botel or Similar<br />
MEALS: Breakfast at all hotels<br />
<br />
6 Nights’ accommodation in above mentioned Hotels<br />
Daily Breakfast<br />
Activities as per itinerary<br />
Return airport transfer<br />
GST 3.5%Schenegen Visa and UK Visa<br />
Hotels not booked yet.<br />
Rates Subject to change without prior notice.<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> London
								</p>
								<p class="aj">Arrive in London airport and get transferred to the Hotel (Sharing Transfers). Check- in the hotel and spend <br />
overnight at 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 2:</b> London
								</p>
								<p class="aj">After Breakfast, enjoy London Panoramic <br />
Morning City Tour (Duration 3 H 30M) <br />
Tour Description: Enjoy this half day morning tour of the popular sights of London such as St. Paul's Cathedral and Tower Bridge. You will also see the Tower of London where you will have an opportunity to take photographs.<br />
The tour also includes a stunning view of neo-gothic architecture - Big Ben and the Houses of Parliament, which can be seen from across the River Thames. Next, you will see Westminster Abbey where many British monarchs have been crowned before making a stop at the London home of Queen Elizabeth II, Buckingham Palace, for another photo opportunity. When possible, you will see the ceremony of the Changing of the Guards here as well.<br />
Departure Point : Gloucester Arcade</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> London
								</p>
								<p class="aj">After Breakfast,London Eye River Thames<br />
Cruise Experience (40 minute circular sightseeing cruise)<br />
Tour Description: Take a London Eye River<br />
Cruise and see London from a different perspective. Enjoy a unique sightseeing cruise on the River Thames with fascinating views of Big Ben and the Houses of Parliament, St. Paul's Cathedral, Tower Bridge and the Tower of London. The London Eye River Cruise departs from the London Eye Millennium Pier offering you the chance to take the cruise before or after the Coca-Cola London Eye experience (ticket to Coca-Cola London Eye not included). <br />
Departure Point : London Eye Millennium Pier Optional :Coca-Cola London Eye - Flight only @ GBP 20 per person (Take a flight on Coca-Cola London Eye, a visually striking structure and the world's largest cantilever observation wheel. As you ascend over the Thames you will see London's famous streets, churches, palaces and monuments spread out below in a panoramic scene giving you a new perspective of a great city! On a clear day the views can stretch as far as 25 miles to Windsor Castle. Visitor to the Coca-Cola London Eye can also experience the four minute 4D Experience, focusing on the journey of a little girl and her father in London in which they visit the Coca-Cola London Eye and enjoy a spectacular take on the capital. Their experience is brought to life with vibrant 3D images of colourful parties and events inside the Coca-Cola London Eye capsules, dramatic firework displays, a snowfall over the city, revolutionary aerial footage of other iconic landmarks and sophisticated, fun 4D effects.)</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> London - Amsterdam
								</p>
								<p class="aj">After Breakfast, get transferred (SIC transfer) to London Airport and board your flight for Amsterdam<br />
Get transfer from Amsterdam Airport. Check in to Amsterdam 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 5:</b> Amsterdam
								</p>
								<p class="aj">After Breakfast, Enjoy Hop-On Hop-Off Bus Tour by City Sightseeing<br />
This 24 hrs pass offers the perfect opportunity for travelling around Amsterdam with its wealth of waterways. The comfortable boats offer a regular service along 3 routes with 14 stops all together, located near the major museums, shopping areas and top attractions. On board there will be commentary on various aspects of Amsterdam's history, culture and architecture. This 24 hrs pass is an excellent way to explore Amsterdam! This pass also includes entrance to the Heineken Experience. Here you will experience the world of Heineken, its history and you will discover the brewing process of the worlds most popular beer. A free souvenir and two beers are included in the tour.</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> Amsterdam
								</p>
								<p class="aj">After Breakfast, Best of Holland Tour<br />
This full-day programme combines the lovely countryside north of Amsterdam with some of our important cities in South-Holland. In the morning we will take you to Volendam, Marken and the Zaanse Schans. In Marken you will visit a clogmaker and explore this traditional Dutch village. After Marken we will visit Volendam, where there is time for the Cheesefactory and for lunch or shopping. From Volendam the bus will take you to the the windmill village 'de Zaanse Schans', with its characteristic green wooden houses and windmills. Then on to Delft, to visit a Delft Blue pottery. After the pottery you have approx. 30 minutes free time in Delft, after which we continue our tour to The Hague, the seat of the Dutch Government. We will have a guided walking tour of 30 minutes across the "Binnenhof", the houses of parliament and the political heart of Holland. Next, we will continue the sightseeing tour and we will pass by the Peace Palace.</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> Depart For India
								</p>
								<p class="aj">Check out of the hotel as you will be transferred to the airport.</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>Schenegen Visa and UK Visa</li><li>
Hotels not booked yet.</li><li>
Rates Subject to change without prior notice.</li></ul><br />
											
						<p class="large b mb5px dif">Terms &amp; Conditions :</p>~^#^~~^#^~<ul>
	<li>The above is only an offer. In the event of Non availability of the specified hotel, alternate or similar hotels would be offered.</li>
	<li>Rates valid strictly for the requested period.</li>
	<li>RATES FOR PRIVATE SERVICES ARE BASED ON MINIMUM PAX TRAVELING. ANY</li>
	<li>CHANGE IN THRE NUMBER OF PAX WOULD LEAD TO CHANGE IN COST</li>
	<li>Any increase in the Airlines taxes /Hotel Surcharges from the time of Booking till the departure date must be borne by pax.</li>
	<li>No refund for unutilized service</li>
	<li>All Hotels, Itinerary, restaurants subject to change without notice.</li>
	<li>Rates valid only for the dates and period requested. Change in date would lead to change of Cost</li>
	<li>Rates are based on as on date&rsquo;s exchange rate. Should there be any major fluctuation OPPEX TRAVELS AND TOURS reserve the right to furnish a fresh quote.</li>
	<li>Rates do not include Event/ Peak Season surcharges. Would be advised at the time of booking.</li>
	<li>Any damage caused to hotel rooms/ Coach during your stay, shall be payable by the passengers. OPPEX TRAVELS AND TOURS will not be liable for the same.</li>
	<li>The Company shall not accept any liability or responsibility for any damages, loss, injury, accident, death, Flight Cancelation by Airline , breakdown, or irregularity, which may occur in carrying out the tour arrangement, weather conditions, strikes, wars, quarantine or any other cause whatsoever and all such loss or expense must be borne by pax.</li>
	<li>All Tours subject to OPPEX TRAVELS AND TOURS Tour conditions</li>
</ul>												</div>
												
						<div class="ac mb10px">
						<form name="frmpackagedetail" id="frmpackagedetail" method="post" action="http://www.oppexholidays.com/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="UK & Netherland – 06 NIGHTS & 07 DAYS 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="111914"/>
						</form>
						</div>
						
						";i:1;s:83:"Book UK & Netherland – 06 NIGHTS & 07 DAYS Tour - 6 Nights / 7 Days Tour Packages";i:2;s:140:"book uk & netherland – 06 nights & 07 days tour - 6 nights / 7 days tour packages, heritage tour packages, london, amsterdam tour packages";i:3;s:231:"Book UK & Netherland – 06 NIGHTS & 07 DAYS Tour - 6 Nights / 7 Days tour packages from Oppex Travels & Tours ( a Division of Oppex Freight Systems - Get attractive 6 Nights / 7 Days Heritage  tour packages for  London, Amsterdam.";i:4;s:784:"
			<script type="application/ld+json">
		    {
		      "@context": "https://schema.org",
		      "@type": "TouristAttraction",
		      "address": {
		        "@type": "PostalAddress",
		         "addressRegion": "London, Amsterdam"        
		                 },
		      "description": "HOTEL DETAILS:
London IBIS Styles or St George or Similar
Amsterdam Botel or Similar
MEALS: Breakfast at all hotels

6 Nights’ accommodation in above mentioned Hotels
Daily Breakfast
Activities as per itinerary
Return airport transfer
GST 3.5%Schenegen Visa and UK Visa
Hotels not booked yet.
Rates Subject to change without prior notice.",
		      "name": "UK & Netherland – 06 NIGHTS & 07 DAYS Tour",
		      "telephone": "+91-9821321975"
		    }
		    </script>
			";i:5;N;}