a:6:{i:0;s:16419:"				<div class="h1"><h1>Must Do In New Zealand Tour</h1></div>
				<p class="breadcrumb ar uu small"><a href="http://www.sanskrutivacations.in/" title="Home">Home</a> 
				
									<b class="ffv p2px">&rsaquo;</b><a href="http://www.sanskrutivacations.in/tour-packages.htm" title="Tour Packages">Tour Packages</a>  			
									
				<b class="ffv p2px">&rsaquo;</b>Must Do In New Zealand 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">
						11 Nights / 12 Days 
						</td>
						</tr>
												<tr>
						<td class="b p5px w125px vat">Destination Covered </td>
						<td class="p5px pl0px vat">Christchurch, Rotorua, Queenstown</td>
						</tr>
												<tr>
						<td class="b p5px w125px vat">Price (Starting From) </td>
						<td class="p5px pl0px vat">
						USD 2350 Per Person						</td>
						</tr>
												<tr>
						<td></td>
						<td>
						<p>
						<form name="frmpackagedetail" id="frmpackagedetail" method="post" action="http://www.sanskrutivacations.in/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Must Do In New Zealand 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="51978"/>
						</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_14/393874/102225.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_14/393874/102225.jpg"  width="150" height="150"    alt="Must Do In New Zealand Tour" title="Must Do In New Zealand Tour" /></a></p></div></li>
															</ul>
						</div>
						</td>
											</tr>
					</table>
					</div>
					<br />
					
					International and Domestic Airfares for and from NZ.<br />
Cost of travel insurance or any other insurance.<br />
Transfer to visit Sky Tower<br />
Activity transfer if any (unless specified) <br />
Cost of Optional & Add-On tours unless mentioned otherwise.<br />
Porterage at hotels, airports, tips, insurance, laundry, wines, mineral water, telephone charges and all items of personal nature and also food & drinks not forming a part of the group menus.<br />
Meals if not mentioned in the itinerary.<br />
Additional transfer if any.<br />
Toll, parking & Fuel at all destinations as well as hotels.<br />
GPS & Excess Insurance if not mentioned in inclusions.<br />
Any damage for hotel rooms / coach.<br />
Any Bond (Hotel will require cash or credit card bond & Rental car company will require credit card bond) during stay, from client.<br />
Any optional activities and transfer if require.<br />
Anything not specifically mentioned in 'Tour Price Includes' box<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> Arrive in Auckland
								</p>
								<p class="aj">Upon arrival in Auckland you will be met and greeted by our representative in the arrival hall and transferred to your hotel in a private car.Visit Sky tower in the evening (Entrance cost included) later take a short walk to Viaduct harbor.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> Auckland - Bay of Island (Paihia)
								</p>
								<p class="aj">After breakfast, travel towards North over Auckland’s Harbour Bridge and along the Hibiscus Coast. The journey continues, travelling through Whangarei, Northland’s only major city and port, before arriving in the beautiful Bay of Islands. This afternoon, take a ‘Hole in the Rock and Cape Brett’ cruise (included). If you wish, you may disembark from this cruise in Romantic Russell and take some time to explore this historic town, returning to Paihia by local ferry at your leisure (ferry ticket included). SIC Customers will travel in a coach and Self-drive customers will pick up rental car from the local city branch for travel.<br />
<br />
Overnight at hotel.</p>					
									<p><b>Meals : </b> (B)</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> Bay of Island -90 Mile beach & Cape Reinga
								</p>
								<p class="aj">After breakfast, you have an option to go for an exciting day as you are driven along 90 Miles Beach and the Te Paki quicksand stream. Have the chance to surf down the massive sand dunes. Onto Cape Reinga’s for spectacular view of 2 oceans merging. Visit to a factory processing century old kauri wood dug out from the swamp. Walk amongst huge Kauri trees at Puketi Forest. Evening return back to your hotel in Paihia. (Included) SIC Customers will travel in a coach; Self-drive customers will travel in their rental car (rental cars are not allowed on 90 mile beach)<br />
<br />
Overnight at Hotel.</p>					
									<p><b>Meals : </b> (B)</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> Bay of Island to Rotorua
								</p>
								<p class="aj">After breakfast, travel to Rotorua via Auckland. Evening at leisure. SIC customers will travel in a coach, self-drive customers will travel to Milford in their rental car.<br />
<br />
Overnight at hotel.</p>					
									<p><b>Meals : </b> (B)</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> Rotorua sightseeing
								</p>
								<p class="aj">After breakfast, we proceed to AGRODOME (included) to witness the Agrodome Agricultural Show, where you will be entertained by New Zealand's performing sheep and other attractions. Later proceed to visit TE-PUIA thermal village (included) known for its hot springs, geysers and boiling mud pools. Watch the Maori craftsmen and learn about the traditional arts of carving and weaving and RAINBOW SPRINGS (included) to see the flower and fauna of New Zealand. Evening at leisure. SIC customers will travel in a coach, self-drive customers will travel to Milford in their rental car.<br />
<br />
Overnight at hotel.</p>					
									<p><b>Meals : </b> (B)</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> Rotorua - Queenstown
								</p>
								<p class="aj">After breakfast, SIC transfer to Rotorua airport and board your flight to Queenstown (flight not included), upon arrival in Alpine city SIC transfer to travel to your hotel.<br />
<br />
Self-drive customers travel to airport in their rental car in Rotorua, drop the car at Rotorua branch, fly to Queenstown (flight not included), upon arriving pick up their rental car in Queenstown to drive to their hotel. Evening at leisure<br />
<br />
Overnight at hotel.</p>					
									<p><b>Meals : </b> (B)</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> Milford sound day tour
								</p>
								<p class="aj">After breakfast, we head to MILFORD SOUND CRUISE (included). This famous cruise gives you an opportunity to see MITRE PEAK which is just out of the water and mile high. Go exploring with a nature guide in the tender vessels and kayaks. You may see fur seals lazing on the rocks and lots of sea birds and numerous waterfalls. Return back to the hotel in the evening. ) SIC Customers will travel in a coach, Self-drive customers will travel in their rental car<br />
<br />
Overnight at the hotel.</p>					
									<p><b>Meals : </b> (B)</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> Queenstown day free for optional activities
								</p>
								<p class="aj">After breakfast, you have an option to enjoy the exciting SHOTOVER JET BOAT RIDE, LEDGE BUNGY JUMP, RIVER RAFTING, SKY DIVING OR SKY SWING (activities not included)<br />
<br />
Overnight in hotel.</p>					
									<p><b>Meals : </b> (B)</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> Queenstown - Glacier region
								</p>
								<p class="aj">After breakfast, leave for Franz Joseph. Discover the rugged scenery along one of New Zealand's most awe-inspiring highways. The viewing platforms overlooking Franz Josef show the sheer size and beauty of these natural wonders and provide fantastic photo opportunities. ) SIC Customers will travel in a coach, Self-drive customers will travel in their rental car<br />
<br />
Overnight in hotel.</p>					
									<p><b>Meals : </b> (B)</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> To Christchurch via Greymouth
								</p>
								<p class="aj">After breakfast, check out from hotel and leave to Greymouth. On arrival you will board Tranz Alpine train (SIC Customers only) for one of the most scenic train journeys in the world. On arrival in Christchurch you will be transferred to hotel. Evening at leisure. ) SIC Customers will travel in a coach, Self-drive customers will travel in their rental car<br />
<br />
 Overnight at hotel.</p>					
									<p><b>Meals : </b> (B)</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> Christchurch sightseeing
									</p>
									<p class="aj">After breakfast, enjoy the morning city tour (included) covering Cathedral Square, Bridge of Remembrance, Avon River Art’s Centre and museum. See beautiful Mona Vale Garden, Hagley Park and from the Sign of the Takahe, you have a spectacular view over the city, Canterbury Plains to the Alps. Self drive customers will explore the city in their rental car. ) SIC Customers will travel in a coach, Self-drive customers will travel in their rental car Evening at leisure.</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> Departure day
									</p>
									<p class="aj">After breakfast SIC customers will be transferred to airport in a shared vehicle. Self-drive customers will travel their rental car, drop the car at airport branch and board your flight for onward journey (flight not included)</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>
																		<li>Sightseeing</li>
																		<li>Transfers</li>
															</ul>
						<br />
												<p class="large b mb5px dif">Exclusions :</p> <ul><li>International and Domestic Airfares for and from NZ.</li><li>
Cost of travel insurance or any other insurance.</li><li>
Transfer to visit Sky Tower</li><li>
Activity transfer if any (unless specified) </li><li>
Cost of Optional & Add-On tours unless mentioned otherwise.</li><li>
Porterage at hotels, airports, tips, insurance, laundry, wines, mineral water, telephone charges and all items of personal nature and also food & drinks not forming a part of the group menus.</li><li>
Meals if not mentioned in the itinerary.</li><li>
Additional transfer if any.</li><li>
Toll, parking & Fuel at all destinations as well as hotels.</li><li>
GPS & Excess Insurance if not mentioned in inclusions.</li><li>
Any damage for hotel rooms / coach.</li><li>
Any Bond (Hotel will require cash or credit card bond & Rental car company will require credit card bond) during stay, from client.</li><li>
Any optional activities and transfer if require.</li><li>
Anything not specifically mentioned in 'Tour Price Includes' box</li></ul><br />
											
						<p class="large b mb5px dif">Terms &amp; Conditions :</p>~^#^~~^#^~<p><strong>&nbsp;</strong><strong>IMP: </strong>

<ul>
	<li>Tour package is based on above mentioned hotels only. In case of any change in the hotel at any location additional charges will apply. Mentioned hotels are subject to availability. No rooms are blocked at this stage.</li>
</ul>												</div>
												
						<div class="ac mb10px">
						<form name="frmpackagedetail" id="frmpackagedetail" method="post" action="http://www.sanskrutivacations.in/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Must Do In New Zealand 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="51978"/>
						</form>
						</div>
						
						";i:1;s:68:"Book Must Do In New Zealand Tour - 11 Nights / 12 Days Tour Packages";i:2;s:150:"book must do in new zealand tour - 11 nights / 12 days tour packages, forts and palaces tour packages, christchurch, rotorua, queenstown tour packages";i:3;s:186:"Sanskruti Vacations offers Must Do In New Zealand Tour - 11 Nights / 12 Days tour package, budget Forts and Palaces tour packages for Christchurch, Rotorua, Queenstown at exciting price.";i:4;s:1337:"
			<script type="application/ld+json">
		    {
		      "@context": "https://schema.org",
		      "@type": "TouristAttraction",
		      "address": {
		        "@type": "PostalAddress",
		         "addressRegion": "Christchurch, Rotorua, Queenstown"        
		                 },
		      "description": "International and Domestic Airfares for and from NZ.
Cost of travel insurance or any other insurance.
Transfer to visit Sky Tower
Activity transfer if any (unless specified) 
Cost of Optional & Add-On tours unless mentioned otherwise.
Porterage at hotels, airports, tips, insurance, laundry, wines, mineral water, telephone charges and all items of personal nature and also food & drinks not forming a part of the group menus.
Meals if not mentioned in the itinerary.
Additional transfer if any.
Toll, parking & Fuel at all destinations as well as hotels.
GPS & Excess Insurance if not mentioned in inclusions.
Any damage for hotel rooms / coach.
Any Bond (Hotel will require cash or credit card bond & Rental car company will require credit card bond) during stay, from client.
Any optional activities and transfer if require.
Anything not specifically mentioned in 'Tour Price Includes' box",
		      "name": "Must Do In New Zealand Tour",
		      "telephone": "+91-9769880881"
		    }
		    </script>
			";i:5;N;}