CINXE.COM
Things to Do in Rochester, MN | Attractions & Local Events
<!doctype html> <html> <head> <!-- meta --> <meta http-equiv="X-UA-Compatible" content="IE=Edge" /> <meta charset="utf-8" /> <title>Things to Do in Rochester, MN | Attractions & Local Events</title> <meta name="description" content="Explore things to do in Rochester, MN and experience fun and local attractions like historical sites, parks, art galleries, theaters, and exciting nightlife." /> <meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1" /> <meta name="sv-nav-properties" content="{"title":"Things to Do","id":"5ab409d26fabc5420e51608c","site_name":"primary","section":"main","folderHref":"/things-to-do/"}" /> <meta name="twitter:card" content="summary_large_image" /> <meta name="referrer" content="always" /> <meta property="og:title" content="Things to Do in Rochester, MN | Attractions & Local Events" /> <meta property="og:description" content="Explore things to do in Rochester, MN and experience fun and local attractions like historical sites, parks, art galleries, theaters, and exciting nightlife." /> <meta property="og:image" content="https://assets.simpleviewinc.com/simpleview/image/upload/c_limit,h_1200,q_75,w_1200/v1/clients/rochestermn/silver_lake_hazy_AB_Photography_7776ae1e-278e-4244-a1af-92f201d21411.jpg" /> <meta property="og:image:width" content="1200" /> <meta property="og:image:height" content="800" /> <meta property="og:type" content="website" /> <meta property="fb:app_id" content="1209066719230183" /> <!-- head css bundles --> <link rel="stylesheet" href="/includes/public/managed/v_bc66977c_63692723/core/plugins/weather/virtuals/css/shared.css"/> <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/weather-icons/2.0.9/css/weather-icons.min.css"/> <link rel="stylesheet" href="/includes/public/managed/v_bc66977c_63692723/core/plugins/search/virtuals/css/shared.css"/> <link rel="stylesheet" href="/includes/public/managed/v_bc66977c_63692723/core/node_modules/fontawesome-4.6.3/css/font-awesome.min.css"/> <link rel="stylesheet" href="/includes/public/managed/v_bc66977c_63692723/core/plugins/common/virtuals/css/widget_social_share.css"/> <link rel="stylesheet" href="/includes/public/managed/v_bc66977c_63692723/core/plugins/dtn/virtuals/css/shared.css"/> <link rel="stylesheet" href="/includes/public/managed/v_bc66977c_63692723/core/plugins/common/virtuals/css/widget_cookie_banner.css"/> <link rel="stylesheet" href="/includes/public/managed/v_bc66977c_63692723/core/plugins/nav/virtuals/css/shared.css"/> <link rel="stylesheet" href="/includes/public/managed/v_bc66977c_63692723/core/plugins/listings/legacy/virtuals/css/shared.css"/> <link rel="stylesheet" href="/includes/public/managed/v_bc66977c_63692723/core/plugins/common/virtuals/css/custom_layout.css"/> <link rel="stylesheet" href="/includes/public/managed/v_bc66977c_63692723/core/plugins/common/virtuals/css/custom_map.css"/> <link rel="stylesheet" href="/includes/public/managed/v_bc66977c_63692723/core/plugins/collections/virtuals/css/widget_template_custom_imagebox_subtitle.css"/> <link rel="stylesheet" href="/includes/public/managed/v_bc66977c_63692723/core/plugins/collections/virtuals/css/widget_template_custom_imagebox.css"/> <link rel="stylesheet" href="/includes/public/managed/v_bc66977c_63692723/core/plugins/collections/virtuals/css/widget_template_custom_features.css"/> <link rel="stylesheet" href="/includes/public/magnific/magnific-popup.css"/> <link rel="stylesheet" href="/includes/public/managed/v_bc66977c_63692723/core/plugins/collections/virtuals/css/widget_template_custom_header_slideshow_homepage.css"/> <link rel="stylesheet" href="/includes/public/managed/v_bc66977c_63692723/core/node_modules/slick-carousel-1.5.8/slick/slick.css"/> <link rel="stylesheet" href="/includes/public/managed/v_bc66977c_63692723/core/node_modules/slick-carousel-1.5.8/slick/slick-theme.css"/> <link rel="stylesheet" href="/includes/public/managed/v_bc66977c_63692723/core/node_modules/foundation-5.5.0/css/normalize.css"/> <link rel="stylesheet" href="/includes/public/managed/v_bc66977c_63692723/core/node_modules/foundation-5.5.0/css/foundation.min.css"/> <link rel="stylesheet" href="/includes/public/managed/v_bc66977c_63692723/core/plugins/common/virtuals/css/shared.css"/> <link rel="stylesheet" href="/includes/public/managed/v_bc66977c_63692723/core/plugins/common/virtuals/css/shared_print.css" media="print"/> <!-- head js bundles --> <script src="/includes/public/managed/v_bc66977c_63692723/core/node_modules/foundation-5.5.0/js/vendor/modernizr.js"></script> <script src="/includes/public/managed/v_bc66977c_63692723/core/libs/sv/requirejs/public/require.js" data-ot-ignore></script> <script src="/requirejs_config_bc66977c_63692723.js" data-ot-ignore></script> <script src="/includes/public/managed/v_bc66977c_63692723/core/plugins/common/virtuals/js/shared_header.js"></script> <!-- bottomHead --> <script data-id="site_gtm"> (function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start': new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0], j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= '//www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','gtmDataLayer','GTM-P3JNTVH'); </script> <script data-id="site_gtm"> (function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start': new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0], j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= '//www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','gtmDataLayer','GTM-NFBVG93'); </script> </head> <body> <!-- topBody --> <noscript> <iframe src="//www.googletagmanager.com/ns.html?id=GTM-P3JNTVH" title="Google Tag Manager" height="0" width="0" style="display:none;visibility:hidden"></iframe> </noscript> <noscript> <iframe src="//www.googletagmanager.com/ns.html?id=GTM-NFBVG93" title="Google Tag Manager" height="0" width="0" style="display:none;visibility:hidden"></iframe> </noscript> <!-- content --> <div data-civid="650b15a37f682d7986d069c2" class="contentRender contentRender_0 contentRender_type_panel contentRender_name_plugins_common_page" data-sv-time="1" data-sv-index="0" data-gtm-vars='{ "tCore" : { "contentNum" : "1" } }'> <div class="root_panel panel_page interior internal-view with-header"> <div class="overlay"></div> <div class="header_container"> <div data-civid="5a9d89b7c9764a0e840bead9" class="contentRender contentRender_1 contentRender_type_panel contentRender_name_plugins_common_header" data-sv-time="1" data-sv-index="1" data-gtm-vars='{ "tCore" : { "contentNum" : "1" } }'><script> // CRM FORM STYLING HELPER JS. This should exist in header panel // Adds the body class as quickly as possible to hide all the items on the page so we don't // have the site flash before the calendar shows up if (location.search.indexOf('action=popupCal') > -1 && document.body.querySelectorAll('.lookup-calHolder')) { document.body.classList.add('crm-calendar-popup'); }; require(["plugins_common_custom_recently_viewed_pages"], function(recentlyViewedPages) { recentlyViewedPages.init({"_id":"5ab409d26fabc5420e51608c","sortorder":2,"title":"Things to Do","folder":"things-to-do","section":"main","type":"page","active":true,"show_on_nav":true,"publish_start":"2018-03-22T19:00:00.000Z","searchable":"yes","new_window":false,"image_id":"5b8fe0aed7cf37cfa637b37c","description":"<p>Enjoy the vibrancy, beauty, and charm of Rochester, MN when you visit our picturesque parks, renowned historical sites, and dynamic galleries and theaters or attend one of our events. Then, stop in for a bite to eat in a friendly atmosphere at one of our many celebrated hot spots for dining and nightlife. Plan your "play" time in Rochester, MN today!</p>","meta_title":"Things to Do in Rochester, MN | Attractions & Local Events","meta_description":"Explore things to do in Rochester, MN and experience fun and local attractions like historical sites, parks, art galleries, theaters, and exciting nightlife.","version_id":"650b165d7f682d7986d06a0b","created":"2018-03-22T19:53:54.082Z","content_owner":"default","site_name":"primary","updated":"2023-09-20T15:57:17.742Z","title_sort":"things to do","site_section":"primary.main","published":true,"amp":false,"cms_title":"Things to Do - /things-to-do/","cms_title_sort":"things to do - /things-to-do/","folderHref":"/things-to-do/","image":{"_id":"5b8fe0aed7cf37cfa637b37c","original_public_id":"clients/rochestermn/silver_lake_hazy_AB_Photography_7776ae1e-278e-4244-a1af-92f201d21411","title":"Boating on Silver Lake in Rochester, MN","resource_raw":{"public_id":"clients/rochestermn/silver_lake_hazy_AB_Photography_7776ae1e-278e-4244-a1af-92f201d21411","version":1536155804,"signature":"b48498e66b2f5db7a451099c9870df09b5584776","width":5472,"height":3648,"format":"jpg","resource_type":"image","created_at":"2018-09-05T13:56:44.000Z","pages":1,"bytes":3580612,"type":"upload","etag":"192e0388b02cdb9c44a5afec7c9d29b0","placeholder":false,"url":"http://res.cloudinary.com/simpleview/image/upload/v1536155804/clients/rochestermn/silver_lake_hazy_AB_Photography_7776ae1e-278e-4244-a1af-92f201d21411.jpg","secure_url":"https://res.cloudinary.com/simpleview/image/upload/v1536155804/clients/rochestermn/silver_lake_hazy_AB_Photography_7776ae1e-278e-4244-a1af-92f201d21411.jpg","access_mode":"public","exif":{"ApertureValue":"526069/1000000","Artist":"A. Petrova & B. Wootla","ColorSpace":"1","Copyright":"AB-Photography.us","CustomRendered":"0","DateTime":"2018:08:06 21:15:36","DateTimeDigitized":"2018:08:06 18:39:21","DateTimeOriginal":"2018:08:06 18:39:21","ExifOffset":"292","ExifVersion":"48, 50, 51, 49","ExposureBiasValue":"0/1","ExposureMode":"0","ExposureProgram":"3","ExposureTime":"1/8000","Flash":"16","FNumber":"12/10","FocalLength":"85/1","FocalPlaneResolutionUnit":"3","FocalPlaneXResolution":"49807360/32768","FocalPlaneYResolution":"49807360/32768","ISOSpeedRatings":"100","Make":"Canon","MaxApertureValue":"625/1000","MeteringMode":"5","Model":"Canon EOS-1D X Mark II","ResolutionUnit":"2","SceneCaptureType":"0","ShutterSpeedValue":"12965784/1000000","Software":"Adobe Photoshop Lightroom Classic 7.1 (Macintosh)","SubSecTimeDigitized":"04","SubSecTimeOriginal":"04","Compression":"6","JPEGInterchangeFormat":"974","JPEGInterchangeFormatLength":"9254","XResolution":"240/1","YResolution":"240/1","WhiteBalance":"0"},"original_filename":"file"},"credits":"AB-PHOTOGRAPHY.US","content_owner":"default","title_sort":"boating on silver lake in rochester, mn","updated":"2018-09-05T13:57:02.319Z","deleted":false,"created":"2018-09-05T13:57:02.319Z","resource":{"raw":{"resource_type":"image","format":"jpg","pages":1,"public_id":"clients/rochestermn/silver_lake_hazy_AB_Photography_7776ae1e-278e-4244-a1af-92f201d21411"}},"id":"5b8fe0aed7cf37cfa637b37c","type":"image","inAssetRequest":false,"alt_text":"Boating on Silver Lake in Rochester, MN","expired":false},"locale_count":0,"id":"5ab409d26fabc5420e51608c","version_id_string":"650b165d7f682d7986d06a0b","href":"/things-to-do/","absoluteHref":"https://www.experiencerochestermn.com/things-to-do/","absoluteFolderHref":"https://www.experiencerochestermn.com/things-to-do/","metaTitle":"Things to Do in Rochester, MN | Attractions & Local Events","rootCmsUrl":"/nav/sitemap/site_primary/section_main/"}); }); </script> <div class="headerSection"> <header class="panel_custom_header"> <div data-civid="5d9d22927e75c1f695752a43" class="contentRender contentRender_2 contentRender_type_widget contentRender_name_plugins_core_smartbanner" data-sv-time="15" data-sv-index="2" data-gtm-vars='{ "tCore" : { "contentNum" : "1" } }'> <div id="sv-smartbanner-35616076-f8bb-4911-ac56-5dcebd3cb1f7"></div> <script type="text/template" data-sv-smartbanner> {{~exec(function() { helpers.var.template = "core_widget_smartbanner"; })}} <div class="sb-wrapper" data-gtm-vars='{ "tCore" : { "category" : "{{bannerType}}", "label" : "{{%%title}}" } }'> <div class="sb-close" data-gtm-click data-gtm-vars='{ "tCore" : { "action" : "{{~var.template}}_close" } }'> <button>×</button> </div> <div class="sb-icon" data-gtm-click data-gtm-vars='{ "tCore" : { "action" : "{{~var.template}}_icon_click" } }'> <a href="{{url}}" {{target}}> <img src="{{~plugins.cloudinary.createResource(data.icon).getThumbnailUrl({ width : 64, height : 64, crop : "fill" })}}" /> </a> </div> <div class="sb-content"> <div class="sb-title" data-gtm-click data-gtm-vars='{ "tCore" : { "action" : "{{~var.template}}_title_click" } }'> <a href="{{url}}" {{target}}>{{title}}</a> </div> <div class="sb-price-line"> <span class="sb-price">{{price}}</span> – <span class="sb-location">{{location}}</span> </div> </div> <div class="sb-view" data-gtm-click data-gtm-vars='{ "tCore" : { "action" : "{{~var.template}}_view_click" } }'> <a href="{{url}}" {{target}}>View</a> </div> </div> <style> #sv-smartbanner-{{guid}} { position: relative; top: 0px; width: 100%; height: 84px; padding: 10px 0; font-family: 'Helvetica Neue', sans-serif; font-size: 14px; line-height: 20px; color: #888; background: #f2f2f2; } #sv-smartbanner-{{guid}} .sb-wrapper { height: 100%; width: 100%; } #sv-smartbanner-{{guid}} a, #sv-smartbanner-{{guid}} a:focus, #sv-smartbanner-{{guid}} a:hover, #sv-smartbanner-{{guid}} a:active, #sv-smartbanner-{{guid}} a:visited { font-family: 'Helvetica Neue', sans-serif; font-size: 14px; line-height: 20px; color: #444; text-decoration: none; font-weight: normal; } #sv-smartbanner-{{guid}} .sb-close { float: left; width: 40px; height: 100%; margin: 0; padding: 0; vertical-align: top; background: transparent; text-align: center; } #sv-smartbanner-{{guid}} .sb-close button { background: none; color: #444; width: 100%; height: 100%; padding: 0px; margin: 0px; font-size: 24px; } #sv-smartbanner-{{guid}} .sb-icon { float: left; height: 100%; width: 64px; margin-right: 7px; vertical-align: top; } #sv-smartbanner-{{guid}} .sb-icon a { display: block; } #sv-smartbanner-{{guid}} .sb-icon img { width: 100%; height: 100%; border: 1px solid #888; border-radius: 10px; } #sv-smartbanner-{{guid}} .sb-content { float: left; width: calc(100% - 40px - 64px - 7px - 55px); /* set width based on how much is in use in the other columns */ } #sv-smartbanner-{{guid}} .sb-title a { font-weight: normal; } #sv-smartbanner-{{guid}} .sb-price-line { font-size: 12px; } #sv-smartbanner-{{guid}} .sb-view { float: right; text-align: center; height: 100%; width: 55px; font-size: 16px; padding-top: 20px; color: #2c90fd; } #sv-smartbanner-{{guid}} .sb-view a { color: #0093dd; } </style> </script> <script> require(["jquery", "sv_clientLib", "lodash", "sv_goatee!plugins=cloudinary"], function($, clientLib, lodash, goatee) { var node = $("#sv-smartbanner-35616076-f8bb-4911-ac56-5dcebd3cb1f7"); var contentRender = node.closest(".contentRender"); var template = $("[data-sv-smartbanner]").html(); var appleId = "id1466960291"; var googleId = "com.rochestermn.app"; var $window = $(window); var $body = $("body"); var inPreview = clientLib.inPreview(); var bannerType = clientLib.isIOS() && appleId !== "" ? "ios" : clientLib.isAndroid() && googleId !== "" ? "android" : inPreview && appleId !== "" ? "ios" : inPreview && googleId !== "" ? "android" : undefined ; var target = bannerType === "ios" ? "" : 'target="_blank"'; if (inPreview) { target = 'target="_blank"'; } // no valid banner types if (bannerType === undefined) { return; } var storage = new clientLib.StorageCache({ type : "sessionStorage", storageKey : "plugins_core_smartbanner" }); // check for values which do not change over the course of a pageview, and short-circuit out if (storage.get("banner-closed") === true) { return; } var _resizeHandler = function() { // check if we are in the right conditions to load the smartbanner, if not return if (inPreview && $window.width() > 1024) { return; } // valid conditions matched to show the banner, unbind the resize handler $window.off("resize", resizeHandler); var content = goatee.fill(template, { guid : "35616076-f8bb-4911-ac56-5dcebd3cb1f7", title : "When in Rochester MN", price : "FREE", icon : {"raw":{"resource_type":"image","format":"png","pages":1,"public_id":"clients/rochestermn/Artboard_1_300x_copy_31a1ec51-b277-4e07-9052-99d4396cc983"}}, id : bannerType === "ios" ? appleId : googleId, bannerType : bannerType, location : bannerType === "ios" ? "On the App Store" : "In Google Play", url : bannerType === "ios" ? "https://apps.apple.com/app/id1466960291" : "http://play.google.com/store/apps/details?id=com.rochestermn.app", target : target }); node.html(content); // append to the root level contentRender for the page itself, needed to get around some weird sizing sometimes applied to the first container on the page contentRender.prependTo($body.find("> .contentRender")); $body.addClass("smartbanner-active"); node.on("click", ".sb-close", function(e) { e.preventDefault(); storage.set("banner-closed", true); $body.removeClass("smartbanner-active smartbanner-inview"); node.remove(); }); var nodeHeight = node.height(); // add debounced scroll handler in order to handle switching on smartbanner-inview var _scrollHandler = function() { // if we are scrolled up high enough to see the smartbanner, apply the class for fixed position systems to loop into $body.toggleClass("smartbanner-inview", $window.scrollTop() < nodeHeight); } var scrollHandler = lodash.debounce(_scrollHandler, 250, { maxWait : 250 }); // bind the handler and call it to init the state $window.on("scroll", scrollHandler); scrollHandler(); } var resizeHandler = lodash.debounce(clientLib.ensureOnResize(_resizeHandler), 250); // bind the handler and call it to init the state $window.on("resize", resizeHandler); resizeHandler(); }); </script></div> <picture class="header-logo"> <div data-civid="641e0104010ee024eeb7ecbb" class="contentRender contentRender_7 contentRender_type_widget contentRender_name_plugins_core_textbox" data-sv-time="32" data-sv-index="7" data-gtm-vars='{ "tCore" : { "contentNum" : "1" } }'><section data-sv-core-textbox data-guid="5922a4cb-578f-43c3-bd14-8785a8f276cf"> <p><a data-sv-linklookup-id="https://www.experiencerochestermn.com/" data-sv-linklookup-type="plugins_nav_external_link" data-sv-targetauto="true" href="https://www.experiencerochestermn.com/" target="_self"><img alt="Experience Rochester Logo 2023" data-height="194" data-processed="true" data-width="200" height="194" id="plugins_assets_images_641dd924010ee024eeb7e5b2" src="https://assets.simpleviewinc.com/simpleview/image/upload/c_fill,h_194,q_75,w_200/v1/clients/rochestermn/ExperienceRochester_Tricolor_Stacked_be56910c-e3c0-41ac-869b-294032222f7e.png" style="margin: 10px;" width="200"></a></p> </section></div> </picture> <section> <nav class="indy-nav show-for-large-up" data-secondary-nav> <div data-civid="641e0104010ee024eeb7ecb5" class="contentRender contentRender_4 contentRender_type_widget contentRender_name_plugins_nav_secondary" data-sv-time="33" data-sv-index="4" data-gtm-vars='{ "tCore" : { "contentNum" : "1" } }'> <ul class="indy-nav-style"> <li><a href="/meet/" target="_self" data-gtm-click data-gtm-vars='{"tClient_ga4" : {"eventName" : "navigation_click", "linkObject": "Meet%20in%20Rochester", "navType" : "Secondary"} }'>Meet in Rochester</a></li> <li><a href="/sports/" target="_self" data-gtm-click data-gtm-vars='{"tClient_ga4" : {"eventName" : "navigation_click", "linkObject": "Sports", "navType" : "Secondary"} }'>Sports</a></li> <li><a href="/blog/" target="_self" data-gtm-click data-gtm-vars='{"tClient_ga4" : {"eventName" : "navigation_click", "linkObject": "Blog", "navType" : "Secondary"} }'>Blog</a></li> <li><a href="/media/" target="_self" data-gtm-click data-gtm-vars='{"tClient_ga4" : {"eventName" : "navigation_click", "linkObject": "Media", "navType" : "Secondary"} }'>Media</a></li> <li><a href="/podcast/" target="_self" data-gtm-click data-gtm-vars='{"tClient_ga4" : {"eventName" : "navigation_click", "linkObject": "Podcast", "navType" : "Secondary"} }'>Podcast</a></li> <li><a href="/brewpass/" target="_self" data-gtm-click data-gtm-vars='{"tClient_ga4" : {"eventName" : "navigation_click", "linkObject": "Sip%20n%27%20Savor%20Brew%20Pass", "navType" : "Secondary"} }'>Sip n' Savor Brew Pass</a></li> </ul> </div> </nav> <div class="show-for-medium-up weather-section"> <div data-civid="641e0104010ee024eeb7ecb7" class="contentRender contentRender_5 contentRender_type_widget contentRender_name_plugins_weather_weather" data-sv-time="14" data-sv-index="5" data-gtm-vars='{ "tCore" : { "contentNum" : "1" } }'> <div class="weather" data-sv-weatherWidget></div> <script type="text/template" data-weatherwidget-template> <span data-sv-weather-toggle>{{current.temp}}°</span><i class="wi {{current.condition.icon}}" aria-hidden="true"></i> </script> <script> require(["jquery", "goatee", "sv_urlLib", "sv_site"], function($, goatee, urlLib, sv_site) { var root = $("[data-sv-weatherWidget]"); var template = $("[data-weatherwidget-template]").html(); var settings = {"unit_of_measure":"f"}; var url = urlLib.build({ path : "/plugins/core/svapi/", get : { service : "weatherv2", endpoint : "latlng", serviceArgs : JSON.stringify({ lat : sv_site.siteConfig.latitude, lng : sv_site.siteConfig.longitude, unit : settings.unit_of_measure }) } }); $.get(url, function(res) { if (res.success !== true) { return; } res.data.forecast.splice(5); // trim forecast to first 5 days var html = goatee.fill(template, res.data); root.html(html); root.find("[data-sv-weather-toggle]").on("click", function() { $("[data-sv-weather-dropdown]").toggleClass("open"); }); }); }); </script></div> </div> <div class="show-for-medium-up main-search"> </div> <div class="show-for-medium-up"> <div data-civid="5aff52d74c2e135b427732ac" class="contentRender contentRender_3 contentRender_type_widget contentRender_name_plugins_common_extranet_login" data-sv-time="15" data-sv-index="3" data-gtm-vars='{ "tCore" : { "contentNum" : "1" } }'> <a href="https://rochestermn.extranet.simpleviewcrm.com/" target="_blank" class="header-booking extranet-booking"> <span>Partner</span><span>Extranet</span> </a> </div> </div> <nav class="main-nav show-for-large-up"> <div data-civid="641e0104010ee024eeb7ecbd" class="contentRender contentRender_8 contentRender_type_widget contentRender_name_plugins_nav_main" data-sv-time="17" data-sv-index="8" data-gtm-vars='{ "tCore" : { "contentNum" : "1" } }'> <ul class="main-nav-style " data-guid="c0d35a16-7e3b-4dc5-933c-313656eb05bb"> <li class="has-children" data-id="5ab409d16fabc5420e516052"> <a href="/places-to-stay/" target="_self" data-gtm-click data-gtm-vars='{ "tClient_ga4" : {"eventName" : "navigation_click", "linkObject": "Places%20to%20Stay", "navType" : "Main"} }'>Places to Stay</a> <ul class="sub-nav"> <li class="has-children" data-id="5ab409d46fabc5420e5163d1"> <a href="/places-to-stay/hotels/" target="_self" data-gtm-click data-gtm-vars='{"tClient_ga4" : {"eventName" : "navigation_click", "linkObject": "Hotels", "navType" : "Main"} }'>Hotels</a> </li> <li class="has-children" data-id="5ab409d46fabc5420e516445"> <a href="/places-to-stay/extended-stay/" target="_self" data-gtm-click data-gtm-vars='{"tClient_ga4" : {"eventName" : "navigation_click", "linkObject": "Extended%20Stay", "navType" : "Main"} }'>Extended Stay</a> </li> <li class="has-children" data-id="5ab409d46fabc5420e51647f"> <a href="/places-to-stay/campgrounds-and-rv-parks/" target="_self" data-gtm-click data-gtm-vars='{"tClient_ga4" : {"eventName" : "navigation_click", "linkObject": "Campgrounds%20%26%20RV%20Parks", "navType" : "Main"} }'>Campgrounds & RV Parks</a> </li> </ul> </li> <li class="has-children" data-id="5ab409d26fabc5420e51608c"> <a href="/things-to-do/" target="_self" data-gtm-click data-gtm-vars='{ "tClient_ga4" : {"eventName" : "navigation_click", "linkObject": "Things%20to%20Do", "navType" : "Main"} }'>Things to Do</a> <ul class="sub-nav"> <li class="has-children" data-id="5ab409d46fabc5420e51652d"> <a href="/things-to-do/events-calendar/" target="_self" data-gtm-click data-gtm-vars='{"tClient_ga4" : {"eventName" : "navigation_click", "linkObject": "Events%20Calendar", "navType" : "Main"} }'>Events Calendar</a> <i class="fa fa-angle-down menu-action"></i> <ul> <li class="has-children" data-id="5ab409df6fabc5420e51799a"> <a href="/things-to-do/events-calendar/fairs-festivals/" target="_self" data-gtm-click data-gtm-vars='{"tClient_ga4" : {"eventName" : "navigation_click", "linkObject": "Fairs%20%2B%20Festivals", "navType" : "Main"} }'>Fairs + Festivals</a> </li> <li class="has-children" data-id="5ab409df6fabc5420e5179d4"> <a href="/things-to-do/events-calendar/fall/" target="_self" data-gtm-click data-gtm-vars='{"tClient_ga4" : {"eventName" : "navigation_click", "linkObject": "Fall", "navType" : "Main"} }'>Fall</a> </li> <li class="has-children" data-id="5ab409e06fabc5420e517a0e"> <a href="/things-to-do/events-calendar/winter/" target="_self" data-gtm-click data-gtm-vars='{"tClient_ga4" : {"eventName" : "navigation_click", "linkObject": "Winter", "navType" : "Main"} }'>Winter</a> </li> <li class="has-children" data-id="63f67257c31926015cbdb232"> <a href="/things-to-do/events-calendar/spring/" target="_self" data-gtm-click data-gtm-vars='{"tClient_ga4" : {"eventName" : "navigation_click", "linkObject": "Spring", "navType" : "Main"} }'>Spring</a> </li> <li class="has-children" data-id="5ab409e06fabc5420e517a48"> <a href="/things-to-do/events-calendar/summer/" target="_self" data-gtm-click data-gtm-vars='{"tClient_ga4" : {"eventName" : "navigation_click", "linkObject": "Summer", "navType" : "Main"} }'>Summer</a> </li> </ul> </li> <li class="has-children" data-id="5ab409d66fabc5420e5167e6"> <a href="/things-to-do/downtown/" target="_self" data-gtm-click data-gtm-vars='{"tClient_ga4" : {"eventName" : "navigation_click", "linkObject": "Downtown", "navType" : "Main"} }'>Downtown</a> </li> <li class="has-children" data-id="5ab409d66fabc5420e516737"> <a href="https://www.experiencerochestermn.com/restaurants/farmers-market/" target="_self" data-gtm-click data-gtm-vars='{"tClient_ga4" : {"eventName" : "navigation_click", "linkObject": "Farmers%20Markets", "navType" : "Main"} }'>Farmers Markets</a> </li> <li class="has-children" data-id="5ab409d56fabc5420e5166c3"> <a href="/things-to-do/outdoor-adventure/" target="_self" data-gtm-click data-gtm-vars='{"tClient_ga4" : {"eventName" : "navigation_click", "linkObject": "Outdoor%20Adventure", "navType" : "Main"} }'>Outdoor Adventure</a> <i class="fa fa-angle-down menu-action"></i> <ul> <li class="has-children" data-id="5ab409e16fabc5420e517c52"> <a href="/things-to-do/outdoor-adventure/bike-hike-walk/" target="_self" data-gtm-click data-gtm-vars='{"tClient_ga4" : {"eventName" : "navigation_click", "linkObject": "Bike%2C%20Hike%20%26%20Walk", "navType" : "Main"} }'>Bike, Hike & Walk</a> </li> <li class="has-children" data-id="5ab409e16fabc5420e517c8c"> <a href="/things-to-do/outdoor-adventure/ski-skate-sled/" target="_self" data-gtm-click data-gtm-vars='{"tClient_ga4" : {"eventName" : "navigation_click", "linkObject": "Ski%2C%20Skate%20%26%20Sled", "navType" : "Main"} }'>Ski, Skate & Sled</a> </li> <li class="has-children" data-id="5ab409e16fabc5420e517cc6"> <a href="/things-to-do/outdoor-adventure/parks/" target="_self" data-gtm-click data-gtm-vars='{"tClient_ga4" : {"eventName" : "navigation_click", "linkObject": "Parks", "navType" : "Main"} }'>Parks</a> </li> </ul> </li> <li class="has-children" data-id="5ab409d56fabc5420e5165a1"> <a href="/things-to-do/shopping/" target="_self" data-gtm-click data-gtm-vars='{"tClient_ga4" : {"eventName" : "navigation_click", "linkObject": "Shopping", "navType" : "Main"} }'>Shopping</a> <i class="fa fa-angle-down menu-action"></i> <ul> <li class="has-children" data-id="5ab409e06fabc5420e517bde"> <a href="/things-to-do/shopping/only-in-rochester/" target="_self" data-gtm-click data-gtm-vars='{"tClient_ga4" : {"eventName" : "navigation_click", "linkObject": "Only%20in%20Rochester", "navType" : "Main"} }'>Only in Rochester</a> </li> <li class="has-children" data-id="5ab409e06fabc5420e517af6"> <a href="/things-to-do/shopping/apparel/" target="_self" data-gtm-click data-gtm-vars='{"tClient_ga4" : {"eventName" : "navigation_click", "linkObject": "Apparel", "navType" : "Main"} }'>Apparel</a> </li> <li class="has-children" data-id="5ab409e06fabc5420e517b6a"> <a href="/things-to-do/shopping/gifts/" target="_self" data-gtm-click data-gtm-vars='{"tClient_ga4" : {"eventName" : "navigation_click", "linkObject": "Gifts%20%26%20Specialty%20Items", "navType" : "Main"} }'>Gifts & Specialty Items</a> </li> <li class="has-children" data-id="5ab409e06fabc5420e517abc"> <a href="/things-to-do/shopping/antiques/" target="_self" data-gtm-click data-gtm-vars='{"tClient_ga4" : {"eventName" : "navigation_click", "linkObject": "Antiques", "navType" : "Main"} }'>Antiques</a> </li> <li class="has-children" data-id="5ab409e06fabc5420e517b30"> <a href="/things-to-do/shopping/department-stores/" target="_self" data-gtm-click data-gtm-vars='{"tClient_ga4" : {"eventName" : "navigation_click", "linkObject": "Department%20Stores", "navType" : "Main"} }'>Department Stores</a> </li> <li class="has-children" data-id="5ab409e06fabc5420e517ba4"> <a href="/things-to-do/shopping/shopping-centers-malls/" target="_self" data-gtm-click data-gtm-vars='{"tClient_ga4" : {"eventName" : "navigation_click", "linkObject": "Shopping%20Centers%20%26%20Malls", "navType" : "Main"} }'>Shopping Centers & Malls</a> </li> </ul> </li> <li class="has-children" data-id="5ab409d66fabc5420e516738"> <a href="/things-to-do/wineries-breweries/" target="_self" data-gtm-click data-gtm-vars='{"tClient_ga4" : {"eventName" : "navigation_click", "linkObject": "Wineries%20%26%20Breweries", "navType" : "Main"} }'>Wineries & Breweries</a> </li> <li class="has-children" data-id="5ab409d56fabc5420e5165db"> <a href="/things-to-do/arts-culture/" target="_self" data-gtm-click data-gtm-vars='{"tClient_ga4" : {"eventName" : "navigation_click", "linkObject": "Arts%20%26%20Culture", "navType" : "Main"} }'>Arts & Culture</a> </li> <li class="has-children" data-id="5ab409d56fabc5420e516615"> <a href="/things-to-do/nightlife-and-live-music/" target="_self" data-gtm-click data-gtm-vars='{"tClient_ga4" : {"eventName" : "navigation_click", "linkObject": "Live%20Entertainment", "navType" : "Main"} }'>Live Entertainment</a> </li> <li class="has-children" data-id="5ab409d66fabc5420e5166fd"> <a href="/things-to-do/attractions-entertainment/" target="_self" data-gtm-click data-gtm-vars='{"tClient_ga4" : {"eventName" : "navigation_click", "linkObject": "Attractions%20%26%20Entertainment", "navType" : "Main"} }'>Attractions & Entertainment</a> <i class="fa fa-angle-down menu-action"></i> <ul> <li class="has-children" data-id="5ab409e16fabc5420e517d00"> <a href="/things-to-do/attractions-entertainment/movie-theaters/" target="_self" data-gtm-click data-gtm-vars='{"tClient_ga4" : {"eventName" : "navigation_click", "linkObject": "Movie%20Theaters", "navType" : "Main"} }'>Movie Theaters</a> </li> <li class="has-children" data-id="5ab409e16fabc5420e517d3a"> <a href="/things-to-do/attractions-entertainment/sports/" target="_self" data-gtm-click data-gtm-vars='{"tClient_ga4" : {"eventName" : "navigation_click", "linkObject": "Sports", "navType" : "Main"} }'>Sports</a> </li> <li class="has-children" data-id="5c87cf7a18e1e6fa27c10c8d"> <a href="/things-to-do/attractions-entertainment/mayo-civic-center/" target="_self" data-gtm-click data-gtm-vars='{"tClient_ga4" : {"eventName" : "navigation_click", "linkObject": "Mayo%20Civic%20Center", "navType" : "Main"} }'>Mayo Civic Center</a> </li> </ul> </li> <li class="has-children" data-id="5ab409d56fabc5420e51664f"> <a href="/things-to-do/history-and-heritage/" target="_self" data-gtm-click data-gtm-vars='{"tClient_ga4" : {"eventName" : "navigation_click", "linkObject": "History%20%26%20Heritage", "navType" : "Main"} }'>History & Heritage</a> <i class="fa fa-angle-down menu-action"></i> <ul> <li class="has-children" data-id="5c65d10f18e1e6fa27bef07a"> <a href="/things-to-do/history-and-heritage/top-four-historical-sites/" target="_self" data-gtm-click data-gtm-vars='{"tClient_ga4" : {"eventName" : "navigation_click", "linkObject": "Top%20Four%20Historical%20Sites", "navType" : "Main"} }'>Top Four Historical Sites</a> </li> </ul> </li> <li class="has-children" data-id="5ab409d56fabc5420e516567"> <a href="/things-to-do/tours/" target="_self" data-gtm-click data-gtm-vars='{"tClient_ga4" : {"eventName" : "navigation_click", "linkObject": "Tours", "navType" : "Main"} }'>Tours</a> </li> <li class="has-children" data-id="5cb0ef192473ea3636522ab2"> <a href="/things-to-do/health-fitness-wellness/" target="_self" data-gtm-click data-gtm-vars='{"tClient_ga4" : {"eventName" : "navigation_click", "linkObject": "Health%2C%20Fitness%20%26%20Wellness", "navType" : "Main"} }'>Health, Fitness & Wellness</a> <i class="fa fa-angle-down menu-action"></i> <ul> <li class="has-children" data-id="5cb4da11da6ad739bddb385d"> <a href="/things-to-do/health-fitness-wellness/rest-and-relaxation-in-rochester-mn/" target="_self" data-gtm-click data-gtm-vars='{"tClient_ga4" : {"eventName" : "navigation_click", "linkObject": "Rest%20and%20Relaxation%20in%20Rochester%2C%20MN", "navType" : "Main"} }'>Rest and Relaxation in Rochester, MN</a> </li> </ul> </li> <li class="has-children" data-id="5ab409d66fabc5420e516772"> <a href="/things-to-do/things-to-do-with-kids/" target="_self" data-gtm-click data-gtm-vars='{"tClient_ga4" : {"eventName" : "navigation_click", "linkObject": "Kid%20Friendly", "navType" : "Main"} }'>Kid Friendly</a> </li> <li class="has-children" data-id="5ab409d66fabc5420e516820"> <a href="/things-to-do/hidden-gems-nearby/" target="_self" data-gtm-click data-gtm-vars='{"tClient_ga4" : {"eventName" : "navigation_click", "linkObject": "Hidden%20Gems%20Nearby", "navType" : "Main"} }'>Hidden Gems Nearby</a> </li> <li class="has-children" data-id="5ab409d56fabc5420e516689"> <a href="/things-to-do/day-trips/" target="_self" data-gtm-click data-gtm-vars='{"tClient_ga4" : {"eventName" : "navigation_click", "linkObject": "Day%20Trips", "navType" : "Main"} }'>Day Trips</a> </li> </ul> </li> <li class="has-children" data-id="5ab409d26fabc5420e5160c6"> <a href="/restaurants/" target="_self" data-gtm-click data-gtm-vars='{ "tClient_ga4" : {"eventName" : "navigation_click", "linkObject": "Restaurants", "navType" : "Main"} }'>Restaurants</a> <ul class="sub-nav"> <li class="has-children" data-id="5ab409d76fabc5420e5169f0"> <a href="/restaurants/only-in-rochester/" target="_self" data-gtm-click data-gtm-vars='{"tClient_ga4" : {"eventName" : "navigation_click", "linkObject": "Only%20in%20Rochester", "navType" : "Main"} }'>Only in Rochester</a> </li> <li class="has-children" data-id="5ab409d76fabc5420e5169b6"> <a href="/restaurants/new-restaurants/" target="_self" data-gtm-click data-gtm-vars='{"tClient_ga4" : {"eventName" : "navigation_click", "linkObject": "New%20Restaurants", "navType" : "Main"} }'>New Restaurants</a> </li> <li class="has-children" data-id="5ab409d66fabc5420e51685a"> <a href="/restaurants/downtown/" target="_self" data-gtm-click data-gtm-vars='{"tClient_ga4" : {"eventName" : "navigation_click", "linkObject": "Downtown", "navType" : "Main"} }'>Downtown</a> </li> <li class="has-children" data-id="5dc9e41556039ec7ebc3f14b"> <a href="/restaurants/bars/" target="_self" data-gtm-click data-gtm-vars='{"tClient_ga4" : {"eventName" : "navigation_click", "linkObject": "Bars", "navType" : "Main"} }'>Bars</a> </li> <li class="has-children" data-id="5ab409d66fabc5420e5168ce"> <a href="/restaurants/fine-dining/" target="_self" data-gtm-click data-gtm-vars='{"tClient_ga4" : {"eventName" : "navigation_click", "linkObject": "Fine%20Dining", "navType" : "Main"} }'>Fine Dining</a> </li> <li class="has-children" data-id="5ab409d66fabc5420e516942"> <a href="/restaurants/food-trucks/" target="_self" data-gtm-click data-gtm-vars='{"tClient_ga4" : {"eventName" : "navigation_click", "linkObject": "Food%20Trucks", "navType" : "Main"} }'>Food Trucks</a> </li> <li class="has-children" data-id="5ab409d66fabc5420e516894"> <a href="/restaurants/farmers-market/" target="_self" data-gtm-click data-gtm-vars='{"tClient_ga4" : {"eventName" : "navigation_click", "linkObject": "Farmers%20Market", "navType" : "Main"} }'>Farmers Market</a> </li> <li class="has-children" data-id="5ab409d66fabc5420e516908"> <a href="/restaurants/food-and-drink-events/" target="_self" data-gtm-click data-gtm-vars='{"tClient_ga4" : {"eventName" : "navigation_click", "linkObject": "Food%20%26%20Drink%20Events", "navType" : "Main"} }'>Food & Drink Events</a> </li> <li class="has-children" data-id="5ab409d76fabc5420e516a64"> <a href="/restaurants/search-by-cuisine-type/" target="_self" data-gtm-click data-gtm-vars='{"tClient_ga4" : {"eventName" : "navigation_click", "linkObject": "Search%20by%20Cuisine%20Type", "navType" : "Main"} }'>Search by Cuisine Type</a> <i class="fa fa-angle-down menu-action"></i> <ul> <li class="has-children" data-id="5ab409e16fabc5420e517d74"> <a href="/restaurants/search-by-cuisine-type/american/" target="_self" data-gtm-click data-gtm-vars='{"tClient_ga4" : {"eventName" : "navigation_click", "linkObject": "American", "navType" : "Main"} }'>American</a> </li> <li class="has-children" data-id="5ab409e16fabc5420e517dae"> <a href="/restaurants/search-by-cuisine-type/coffee-and-tea/" target="_self" data-gtm-click data-gtm-vars='{"tClient_ga4" : {"eventName" : "navigation_click", "linkObject": "Coffee%20%26%20Tea", "navType" : "Main"} }'>Coffee & Tea</a> </li> <li class="has-children" data-id="5ab409e16fabc5420e517de8"> <a href="/restaurants/search-by-cuisine-type/international/" target="_self" data-gtm-click data-gtm-vars='{"tClient_ga4" : {"eventName" : "navigation_click", "linkObject": "International", "navType" : "Main"} }'>International</a> </li> <li class="has-children" data-id="5ab409e16fabc5420e517e22"> <a href="/restaurants/search-by-cuisine-type/pizza/" target="_self" data-gtm-click data-gtm-vars='{"tClient_ga4" : {"eventName" : "navigation_click", "linkObject": "Pizza", "navType" : "Main"} }'>Pizza</a> </li> <li class="has-children" data-id="5ab409e16fabc5420e517e5c"> <a href="/restaurants/search-by-cuisine-type/seafood/" target="_self" data-gtm-click data-gtm-vars='{"tClient_ga4" : {"eventName" : "navigation_click", "linkObject": "Seafood", "navType" : "Main"} }'>Seafood</a> </li> <li class="has-children" data-id="5ab409e26fabc5420e517e96"> <a href="/restaurants/search-by-cuisine-type/sweet-treats/" target="_self" data-gtm-click data-gtm-vars='{"tClient_ga4" : {"eventName" : "navigation_click", "linkObject": "Sweet%20Treats", "navType" : "Main"} }'>Sweet Treats</a> </li> </ul> </li> <li class="has-children" data-id="5ab409d66fabc5420e51697c"> <a href="/restaurants/kid-friendly/" target="_self" data-gtm-click data-gtm-vars='{"tClient_ga4" : {"eventName" : "navigation_click", "linkObject": "Kid%20Friendly", "navType" : "Main"} }'>Kid Friendly</a> </li> <li class="has-children" data-id="6671e6608b68e6d94a8206eb"> <a href="/restaurants/dog-friendly/" target="_self" data-gtm-click data-gtm-vars='{"tClient_ga4" : {"eventName" : "navigation_click", "linkObject": "Dog%20Friendly", "navType" : "Main"} }'>Dog Friendly</a> </li> </ul> </li> <li class="has-children" data-id="5ab409d26fabc5420e516100"> <a href="/planning-tools/" target="_self" data-gtm-click data-gtm-vars='{ "tClient_ga4" : {"eventName" : "navigation_click", "linkObject": "Planning%20Tools", "navType" : "Main"} }'>Planning Tools</a> <ul class="sub-nav"> <li class="has-children" data-id="5ab409d76fabc5420e516a9e"> <a href="/planning-tools/getting-here/" target="_self" data-gtm-click data-gtm-vars='{"tClient_ga4" : {"eventName" : "navigation_click", "linkObject": "Getting%20Here", "navType" : "Main"} }'>Getting Here</a> <i class="fa fa-angle-down menu-action"></i> <ul> <li class="has-children" data-id="5ab409e26fabc5420e517ed0"> <a href="/planning-tools/getting-here/airports/" target="_self" data-gtm-click data-gtm-vars='{"tClient_ga4" : {"eventName" : "navigation_click", "linkObject": "Airports", "navType" : "Main"} }'>Airports</a> </li> <li class="has-children" data-id="5ab409e26fabc5420e517f0a"> <a href="/planning-tools/getting-here/driving-directions/" target="_self" data-gtm-click data-gtm-vars='{"tClient_ga4" : {"eventName" : "navigation_click", "linkObject": "Driving%20Directions", "navType" : "Main"} }'>Driving Directions</a> </li> </ul> </li> <li class="has-children" data-id="5ab409d76fabc5420e516b12"> <a href="/planning-tools/getting-around/" target="_self" data-gtm-click data-gtm-vars='{"tClient_ga4" : {"eventName" : "navigation_click", "linkObject": "Getting%20Around", "navType" : "Main"} }'>Getting Around</a> <i class="fa fa-angle-down menu-action"></i> <ul> <li class="has-children" data-id="5ab409e26fabc5420e517f44"> <a href="/planning-tools/getting-around/bus-line/" target="_self" data-gtm-click data-gtm-vars='{"tClient_ga4" : {"eventName" : "navigation_click", "linkObject": "Bus%20Line", "navType" : "Main"} }'>Bus Line</a> </li> <li class="has-children" data-id="5ab409e26fabc5420e517f7e"> <a href="/planning-tools/getting-around/car-rental/" target="_self" data-gtm-click data-gtm-vars='{"tClient_ga4" : {"eventName" : "navigation_click", "linkObject": "Car%20Rental", "navType" : "Main"} }'>Car Rental</a> </li> <li class="has-children" data-id="5ab409e26fabc5420e517fb8"> <a href="/planning-tools/getting-around/limousine-service/" target="_self" data-gtm-click data-gtm-vars='{"tClient_ga4" : {"eventName" : "navigation_click", "linkObject": "Limousine%20Service", "navType" : "Main"} }'>Limousine Service</a> </li> <li class="has-children" data-id="5ab409e26fabc5420e517ff2"> <a href="/planning-tools/getting-around/parking/" target="_self" data-gtm-click data-gtm-vars='{"tClient_ga4" : {"eventName" : "navigation_click", "linkObject": "Parking", "navType" : "Main"} }'>Parking</a> </li> <li class="has-children" data-id="5ab409e26fabc5420e51802c"> <a href="/planning-tools/getting-around/shuttle-service/" target="_self" data-gtm-click data-gtm-vars='{"tClient_ga4" : {"eventName" : "navigation_click", "linkObject": "Shuttle%20Service", "navType" : "Main"} }'>Shuttle Service</a> </li> <li class="has-children" data-id="5ab409e26fabc5420e518066"> <a href="/planning-tools/getting-around/skyway-subway/" target="_self" data-gtm-click data-gtm-vars='{"tClient_ga4" : {"eventName" : "navigation_click", "linkObject": "Skyway%2FSubway", "navType" : "Main"} }'>Skyway/Subway</a> </li> <li class="has-children" data-id="5ab409e36fabc5420e5180a0"> <a href="/planning-tools/getting-around/specialized-transportation/" target="_self" data-gtm-click data-gtm-vars='{"tClient_ga4" : {"eventName" : "navigation_click", "linkObject": "Specialized%20Transportation", "navType" : "Main"} }'>Specialized Transportation</a> </li> <li class="has-children" data-id="5ab409e36fabc5420e5180da"> <a href="/planning-tools/getting-around/taxi-service/" target="_self" data-gtm-click data-gtm-vars='{"tClient_ga4" : {"eventName" : "navigation_click", "linkObject": "Taxi%20Service", "navType" : "Main"} }'>Taxi Service</a> </li> </ul> </li> <li class="has-children" data-id="5ab409d76fabc5420e516b4c"> <a href="/planning-tools/travel-guide/" target="_self" data-gtm-click data-gtm-vars='{"tClient_ga4" : {"eventName" : "navigation_click", "linkObject": "Travel%20Planning%20Guide", "navType" : "Main"} }'>Travel Planning Guide</a> </li> <li class="has-children" data-id="5ab409d76fabc5420e516bc0"> <a href="/planning-tools/weather/" target="_self" data-gtm-click data-gtm-vars='{"tClient_ga4" : {"eventName" : "navigation_click", "linkObject": "Weather", "navType" : "Main"} }'>Weather</a> </li> <li class="has-children" data-id="5c65ad3518e1e6fa27beeb3f"> <a href="/planning-tools/traveling-with-pets/" target="_self" data-gtm-click data-gtm-vars='{"tClient_ga4" : {"eventName" : "navigation_click", "linkObject": "Traveling%20With%20Pets", "navType" : "Main"} }'>Traveling With Pets</a> </li> <li class="has-children" data-id="5ab409d86fabc5420e516bfa"> <a href="https://www.experiencerochestermn.com/meet/weddings-parties-celebrations/" target="_self" data-gtm-click data-gtm-vars='{"tClient_ga4" : {"eventName" : "navigation_click", "linkObject": "Weddings%2C%20Parties%20%26%20Celebrations", "navType" : "Main"} }'>Weddings, Parties & Celebrations</a> </li> <li class="has-children" data-id="5ab409d86fabc5420e516bfb"> <a href="/planning-tools/university-of-minnesota-rochester/" target="_self" data-gtm-click data-gtm-vars='{"tClient_ga4" : {"eventName" : "navigation_click", "linkObject": "University%20of%20Minnesota%20Rochester", "navType" : "Main"} }'>University of Minnesota Rochester</a> </li> </ul> </li> <li class="has-children" data-id="5ab409d26fabc5420e51613a"> <a href="/mayo-clinic/" target="_self" data-gtm-click data-gtm-vars='{ "tClient_ga4" : {"eventName" : "navigation_click", "linkObject": "Visit%20Mayo%20Clinic", "navType" : "Main"} }'>Visit Mayo Clinic</a> <ul class="sub-nav"> <li class="has-children" data-id="5ab409d86fabc5420e516c35"> <a href="/mayo-clinic/hotels/" target="_self" data-gtm-click data-gtm-vars='{"tClient_ga4" : {"eventName" : "navigation_click", "linkObject": "Hotels", "navType" : "Main"} }'>Hotels</a> <i class="fa fa-angle-down menu-action"></i> <ul> <li class="has-children" data-id="5ab409e36fabc5420e518188"> <a href="/mayo-clinic/hotels/charitable-lodging/" target="_self" data-gtm-click data-gtm-vars='{"tClient_ga4" : {"eventName" : "navigation_click", "linkObject": "Charitable%20Lodging", "navType" : "Main"} }'>Charitable Lodging</a> </li> </ul> </li> <li class="has-children" data-id="5ab409d86fabc5420e516c6f"> <a href="/mayo-clinic/getting-here/" target="_self" data-gtm-click data-gtm-vars='{"tClient_ga4" : {"eventName" : "navigation_click", "linkObject": "Getting%20Here", "navType" : "Main"} }'>Getting Here</a> </li> <li class="has-children" data-id="5ab409d86fabc5420e516ca9"> <a href="/mayo-clinic/getting-around/" target="_self" data-gtm-click data-gtm-vars='{"tClient_ga4" : {"eventName" : "navigation_click", "linkObject": "Getting%20Around", "navType" : "Main"} }'>Getting Around</a> </li> <li class="has-children" data-id="5ab409d86fabc5420e516ce3"> <a href="https://www.mayoclinic.org/patient-visitor-guide/minnesota/travel-lodging-maps/maps" target="_blank" data-gtm-click data-gtm-vars='{"tClient_ga4" : {"eventName" : "navigation_click", "linkObject": "Mayo%20Clinic%20Maps", "navType" : "Main"} }'>Mayo Clinic Maps</a> </li> <li class="has-children" data-id="5ab409d86fabc5420e516ce4"> <a href="/mayo-clinic/faq/" target="_self" data-gtm-click data-gtm-vars='{"tClient_ga4" : {"eventName" : "navigation_click", "linkObject": "FAQ", "navType" : "Main"} }'>FAQ</a> </li> <li class="has-children" data-id="5ab409d86fabc5420e516d1e"> <a href="/mayo-clinic/history/" target="_self" data-gtm-click data-gtm-vars='{"tClient_ga4" : {"eventName" : "navigation_click", "linkObject": "History", "navType" : "Main"} }'>History</a> </li> <li class="has-children" data-id="5ab409d86fabc5420e516d58"> <a href="/mayo-clinic/restaurants-nearby/" target="_self" data-gtm-click data-gtm-vars='{"tClient_ga4" : {"eventName" : "navigation_click", "linkObject": "Restaurants%20Nearby", "navType" : "Main"} }'>Restaurants Nearby</a> </li> <li class="has-children" data-id="5ab409d86fabc5420e516d92"> <a href="/mayo-clinic/parking/" target="_self" data-gtm-click data-gtm-vars='{"tClient_ga4" : {"eventName" : "navigation_click", "linkObject": "Parking", "navType" : "Main"} }'>Parking</a> </li> </ul> </li> </ul> <script type="text/javascript"> require(["jquery"], function($) { var root = $('[data-guid=c0d35a16-7e3b-4dc5-933c-313656eb05bb]'); var navItemProperties = JSON.parse($('meta[name=sv-nav-properties]').attr('content')); var parentIds = navItemProperties.parents_ids || []; var rootParent = parentIds.length > 0 ? parentIds[0] : navItemProperties.id; var current = root.find('[data-id="' + rootParent + '"]'); var expAccred = navItemProperties.folderHref.match(/^\/experience-accreditation\//); root.find('.menu-action').on('click', function() { $(this).toggleClass('active'); $(this).siblings().toggleClass('active'); }); parentIds.forEach(function(parentId){ var parentItems = root.find('[data-id="' + parentId + '"]'); parentItems.each(function(){ $(this).parent().addClass('current'); }); }); current.addClass('current'); root.find('.micro').not('.micro.current').remove(); }); </script></div> </nav> <div class="mobile-nav-container hide-for-large-up"> <div class="mobile-nav-action"></div> <div class="mobile-nav-dropdown"> <div class="mobile-nav-dropdown-top"> <div data-civid="5aff52d74c2e135b427732ac" class="contentRender contentRender_3 contentRender_type_widget contentRender_name_plugins_common_extranet_login" data-sv-time="15" data-sv-index="3" data-gtm-vars='{ "tCore" : { "contentNum" : "1" } }'> <a href="https://rochestermn.extranet.simpleviewcrm.com/" target="_blank" class="header-booking extranet-booking"> <span>Partner</span><span>Extranet</span> </a> </div> <span> <div data-sv-weatherWidget class="med-header-weather-wrapper weather"></div> <div class="mobile-search"> <div data-civid="641e0104010ee024eeb7ecb9" class="contentRender contentRender_6 contentRender_type_widget contentRender_name_plugins_search_headerbox" data-sv-time="15" data-sv-index="6" data-gtm-vars='{ "tCore" : { "contentNum" : "1" } }'> <script type="text/template" data-template> <div class="search" id="search_widget_headerbox_{{guid}}"> <span class="search-action"><i class="fa fa-search fa-flip-horizontal" aria-hidden="true"></i><img class="search-img"></span> <div class="bg-search-form"></div> <div class="search-form"> <form data-sv-searchForm action="{{customSettings.navSearch}}" method="GET"> <input data-sv-searchInput name="q" type="search" class="searchInput" autocomplete="off" autocorrect="off" autocapitalize="off" placeholder="Search..." value="" /> <button data-sv-searchBtn type="submit" name="submit" class="searchBtn"><i class="fa fa-search" aria-hidden="true"></i></button> </form> <div class="toggle-search" data-toggle-mayocc-search> <i class="fa fa-search" aria-hidden="true"></i> </div> </div> </div> </script> <script> require(["jquery","goatee", "domReady!"], function($, goatee) { var sc = $('[data-sv-widgetSearchBoxContainer]').not('.insertedWidget').first(); var sb = $('#search_widget_headerbox_7b88e834-e55a-49c3-85a0-a33cd69de9dc'); var form = sb.find('[data-sv-searchForm]'); var inp = form.find('[data-sv-searchInput]'); var data = {"sections":{},"data":{},"guid":"7b88e834-e55a-49c3-85a0-a33cd69de9dc","customSettings":{"navSearch":"/search/"},"widgetArgs":{"nav":{"_id":"5ab409d26fabc5420e51608c","sortorder":2,"title":"Things to Do","folder":"things-to-do","section":"main","type":"page","active":true,"show_on_nav":true,"publish_start":"2018-03-22T19:00:00.000Z","searchable":"yes","new_window":false,"image_id":"5b8fe0aed7cf37cfa637b37c","description":"<p>Enjoy the vibrancy, beauty, and charm of Rochester, MN when you visit our picturesque parks, renowned historical sites, and dynamic galleries and theaters or attend one of our events. Then, stop in for a bite to eat in a friendly atmosphere at one of our many celebrated hot spots for dining and nightlife. Plan your "play" time in Rochester, MN today!</p>","meta_title":"Things to Do in Rochester, MN | Attractions & Local Events","meta_description":"Explore things to do in Rochester, MN and experience fun and local attractions like historical sites, parks, art galleries, theaters, and exciting nightlife.","version_id":"650b165d7f682d7986d06a0b","created":"2018-03-22T19:53:54.082Z","content_owner":"default","site_name":"primary","updated":"2023-09-20T15:57:17.742Z","title_sort":"things to do","site_section":"primary.main","published":true,"amp":false,"cms_title":"Things to Do - /things-to-do/","cms_title_sort":"things to do - /things-to-do/","folderHref":"/things-to-do/","image":{"_id":"5b8fe0aed7cf37cfa637b37c","original_public_id":"clients/rochestermn/silver_lake_hazy_AB_Photography_7776ae1e-278e-4244-a1af-92f201d21411","title":"Boating on Silver Lake in Rochester, MN","resource_raw":{"public_id":"clients/rochestermn/silver_lake_hazy_AB_Photography_7776ae1e-278e-4244-a1af-92f201d21411","version":1536155804,"signature":"b48498e66b2f5db7a451099c9870df09b5584776","width":5472,"height":3648,"format":"jpg","resource_type":"image","created_at":"2018-09-05T13:56:44.000Z","pages":1,"bytes":3580612,"type":"upload","etag":"192e0388b02cdb9c44a5afec7c9d29b0","placeholder":false,"url":"http://res.cloudinary.com/simpleview/image/upload/v1536155804/clients/rochestermn/silver_lake_hazy_AB_Photography_7776ae1e-278e-4244-a1af-92f201d21411.jpg","secure_url":"https://res.cloudinary.com/simpleview/image/upload/v1536155804/clients/rochestermn/silver_lake_hazy_AB_Photography_7776ae1e-278e-4244-a1af-92f201d21411.jpg","access_mode":"public","exif":{"ApertureValue":"526069/1000000","Artist":"A. Petrova & B. Wootla","ColorSpace":"1","Copyright":"AB-Photography.us","CustomRendered":"0","DateTime":"2018:08:06 21:15:36","DateTimeDigitized":"2018:08:06 18:39:21","DateTimeOriginal":"2018:08:06 18:39:21","ExifOffset":"292","ExifVersion":"48, 50, 51, 49","ExposureBiasValue":"0/1","ExposureMode":"0","ExposureProgram":"3","ExposureTime":"1/8000","Flash":"16","FNumber":"12/10","FocalLength":"85/1","FocalPlaneResolutionUnit":"3","FocalPlaneXResolution":"49807360/32768","FocalPlaneYResolution":"49807360/32768","ISOSpeedRatings":"100","Make":"Canon","MaxApertureValue":"625/1000","MeteringMode":"5","Model":"Canon EOS-1D X Mark II","ResolutionUnit":"2","SceneCaptureType":"0","ShutterSpeedValue":"12965784/1000000","Software":"Adobe Photoshop Lightroom Classic 7.1 (Macintosh)","SubSecTimeDigitized":"04","SubSecTimeOriginal":"04","Compression":"6","JPEGInterchangeFormat":"974","JPEGInterchangeFormatLength":"9254","XResolution":"240/1","YResolution":"240/1","WhiteBalance":"0"},"original_filename":"file"},"credits":"AB-PHOTOGRAPHY.US","content_owner":"default","title_sort":"boating on silver lake in rochester, mn","updated":"2018-09-05T13:57:02.319Z","deleted":false,"created":"2018-09-05T13:57:02.319Z","resource":{"raw":{"resource_type":"image","format":"jpg","pages":1,"public_id":"clients/rochestermn/silver_lake_hazy_AB_Photography_7776ae1e-278e-4244-a1af-92f201d21411"}},"id":"5b8fe0aed7cf37cfa637b37c","type":"image","inAssetRequest":false,"alt_text":"Boating on Silver Lake in Rochester, MN","expired":false},"locale_count":0,"id":"5ab409d26fabc5420e51608c","version_id_string":"650b165d7f682d7986d06a0b","href":"/things-to-do/","absoluteHref":"https://www.experiencerochestermn.com/things-to-do/","absoluteFolderHref":"https://www.experiencerochestermn.com/things-to-do/","metaTitle":"Things to Do in Rochester, MN | Attractions & Local Events","rootCmsUrl":"/nav/sitemap/site_primary/section_main/"},"num":6,"guid":"7b88e834-e55a-49c3-85a0-a33cd69de9dc","data":{},"civ":{"instance":{"type":"widget","name":"plugins_search_headerbox","site_name":"primary","saved":false,"created":"2023-03-24T20:00:14.342Z","updated":"2023-03-24T20:00:14.342Z","deleted":false,"id":"641e0104010ee024eeb7ecb9","version_id_string":"641e0104010ee024eeb7ecba"},"version":{"created":"2023-03-24T20:00:14.344Z","id":"641e0104010ee024eeb7ecba","instance_id_string":"641e0104010ee024eeb7ecb9","data":{}},"onTrunk":true,"civid":"641e0104010ee024eeb7ecb9"},"name":"plugins_search_headerbox"}}; var template = $("[data-template]").html(); var html = goatee.fill(template, data); var desktopSearchbox = $('.main-search'); var mobileSearchbox = $('.mobile-search'); desktopSearchbox.html(html); mobileSearchbox.html(html); sc.append(sb).addClass('insertedWidget'); form.find('[data-sv-searchBtn]').click(function(){ form.submit(); }) form.submit(function(e){ if (inp.val().length === 0) { e.preventDefault(); } }); $('.search-action').on('click', function() { $(this).toggleClass('active'); $(this).siblings().toggleClass('active'); }); var headerPanel = document.querySelector(".panel_custom_header"); var toggle = document.querySelector("[data-toggle-mayocc-search]"); toggle.addEventListener("click", function() { headerPanel.classList.toggle("search-active"); }); }); </script></div> </div> </span> </div> <nav class="main-nav"> <div data-civid="641e0104010ee024eeb7ecbf" class="contentRender contentRender_9 contentRender_type_widget contentRender_name_plugins_nav_mobile" data-sv-time="34" data-sv-index="9" data-gtm-vars='{ "tCore" : { "contentNum" : "1" } }'> <nav class="main-nav" data-guid="1b8c86de-b79b-49ac-9369-0de03930e72f"> <ul class="main-nav-style-mobile"> <li class="has-children" > <a href="/places-to-stay/" target="_self" data-id="5ab409d16fabc5420e516052">Places to Stay</a> <i class="fa fa-angle-down menu-action"></i> <ul class="sub-nav-mobile"> <li class="has-children" > <a href="/places-to-stay/hotels/" target="_self" data-id="5ab409d46fabc5420e5163d1">Hotels</a> </li> <li class="has-children" > <a href="/places-to-stay/extended-stay/" target="_self" data-id="5ab409d46fabc5420e516445">Extended Stay</a> </li> <li class="has-children" > <a href="/places-to-stay/campgrounds-and-rv-parks/" target="_self" data-id="5ab409d46fabc5420e51647f">Campgrounds & RV Parks</a> </li> </ul> </li> <li class="has-children" > <a href="/things-to-do/" target="_self" data-id="5ab409d26fabc5420e51608c">Things to Do</a> <i class="fa fa-angle-down menu-action"></i> <ul class="sub-nav-mobile"> <li class="has-children" > <a href="/things-to-do/events-calendar/" target="_self" data-id="5ab409d46fabc5420e51652d">Events Calendar</a> <i class="fa fa-angle-down menu-action"></i> <ul> <li class="has-children" > <a href="/things-to-do/events-calendar/fairs-festivals/" target="_self" data-id="5ab409df6fabc5420e51799a">Fairs + Festivals</a> </li> <li class="has-children" > <a href="/things-to-do/events-calendar/fall/" target="_self" data-id="5ab409df6fabc5420e5179d4">Fall</a> </li> <li class="has-children" > <a href="/things-to-do/events-calendar/winter/" target="_self" data-id="5ab409e06fabc5420e517a0e">Winter</a> </li> <li class="has-children" > <a href="/things-to-do/events-calendar/spring/" target="_self" data-id="63f67257c31926015cbdb232">Spring</a> </li> <li class="has-children" > <a href="/things-to-do/events-calendar/summer/" target="_self" data-id="5ab409e06fabc5420e517a48">Summer</a> </li> </ul> </li> <li class="has-children" > <a href="/things-to-do/downtown/" target="_self" data-id="5ab409d66fabc5420e5167e6">Downtown</a> </li> <li class="has-children" > <a href="https://www.experiencerochestermn.com/restaurants/farmers-market/" target="_self" data-id="5ab409d66fabc5420e516737">Farmers Markets</a> </li> <li class="has-children" > <a href="/things-to-do/outdoor-adventure/" target="_self" data-id="5ab409d56fabc5420e5166c3">Outdoor Adventure</a> <i class="fa fa-angle-down menu-action"></i> <ul> <li class="has-children" > <a href="/things-to-do/outdoor-adventure/bike-hike-walk/" target="_self" data-id="5ab409e16fabc5420e517c52">Bike, Hike & Walk</a> </li> <li class="has-children" > <a href="/things-to-do/outdoor-adventure/ski-skate-sled/" target="_self" data-id="5ab409e16fabc5420e517c8c">Ski, Skate & Sled</a> </li> <li class="has-children" > <a href="/things-to-do/outdoor-adventure/parks/" target="_self" data-id="5ab409e16fabc5420e517cc6">Parks</a> </li> </ul> </li> <li class="has-children" > <a href="/things-to-do/shopping/" target="_self" data-id="5ab409d56fabc5420e5165a1">Shopping</a> <i class="fa fa-angle-down menu-action"></i> <ul> <li class="has-children" > <a href="/things-to-do/shopping/only-in-rochester/" target="_self" data-id="5ab409e06fabc5420e517bde">Only in Rochester</a> </li> <li class="has-children" > <a href="/things-to-do/shopping/apparel/" target="_self" data-id="5ab409e06fabc5420e517af6">Apparel</a> </li> <li class="has-children" > <a href="/things-to-do/shopping/gifts/" target="_self" data-id="5ab409e06fabc5420e517b6a">Gifts & Specialty Items</a> </li> <li class="has-children" > <a href="/things-to-do/shopping/antiques/" target="_self" data-id="5ab409e06fabc5420e517abc">Antiques</a> </li> <li class="has-children" > <a href="/things-to-do/shopping/department-stores/" target="_self" data-id="5ab409e06fabc5420e517b30">Department Stores</a> </li> <li class="has-children" > <a href="/things-to-do/shopping/shopping-centers-malls/" target="_self" data-id="5ab409e06fabc5420e517ba4">Shopping Centers & Malls</a> </li> </ul> </li> <li class="has-children" > <a href="/things-to-do/wineries-breweries/" target="_self" data-id="5ab409d66fabc5420e516738">Wineries & Breweries</a> </li> <li class="has-children" > <a href="/things-to-do/arts-culture/" target="_self" data-id="5ab409d56fabc5420e5165db">Arts & Culture</a> </li> <li class="has-children" > <a href="/things-to-do/nightlife-and-live-music/" target="_self" data-id="5ab409d56fabc5420e516615">Live Entertainment</a> </li> <li class="has-children" > <a href="/things-to-do/attractions-entertainment/" target="_self" data-id="5ab409d66fabc5420e5166fd">Attractions & Entertainment</a> <i class="fa fa-angle-down menu-action"></i> <ul> <li class="has-children" > <a href="/things-to-do/attractions-entertainment/movie-theaters/" target="_self" data-id="5ab409e16fabc5420e517d00">Movie Theaters</a> </li> <li class="has-children" > <a href="/things-to-do/attractions-entertainment/sports/" target="_self" data-id="5ab409e16fabc5420e517d3a">Sports</a> </li> <li class="has-children" > <a href="/things-to-do/attractions-entertainment/mayo-civic-center/" target="_self" data-id="5c87cf7a18e1e6fa27c10c8d">Mayo Civic Center</a> </li> </ul> </li> <li class="has-children" > <a href="/things-to-do/history-and-heritage/" target="_self" data-id="5ab409d56fabc5420e51664f">History & Heritage</a> <i class="fa fa-angle-down menu-action"></i> <ul> <li class="has-children" > <a href="/things-to-do/history-and-heritage/top-four-historical-sites/" target="_self" data-id="5c65d10f18e1e6fa27bef07a">Top Four Historical Sites</a> </li> </ul> </li> <li class="has-children" > <a href="/things-to-do/tours/" target="_self" data-id="5ab409d56fabc5420e516567">Tours</a> </li> <li class="has-children" > <a href="/things-to-do/health-fitness-wellness/" target="_self" data-id="5cb0ef192473ea3636522ab2">Health, Fitness & Wellness</a> <i class="fa fa-angle-down menu-action"></i> <ul> <li class="has-children" > <a href="/things-to-do/health-fitness-wellness/rest-and-relaxation-in-rochester-mn/" target="_self" data-id="5cb4da11da6ad739bddb385d">Rest and Relaxation in Rochester, MN</a> </li> </ul> </li> <li class="has-children" > <a href="/things-to-do/things-to-do-with-kids/" target="_self" data-id="5ab409d66fabc5420e516772">Kid Friendly</a> </li> <li class="has-children" > <a href="/things-to-do/hidden-gems-nearby/" target="_self" data-id="5ab409d66fabc5420e516820">Hidden Gems Nearby</a> </li> <li class="has-children" > <a href="/things-to-do/day-trips/" target="_self" data-id="5ab409d56fabc5420e516689">Day Trips</a> </li> </ul> </li> <li class="has-children" > <a href="/restaurants/" target="_self" data-id="5ab409d26fabc5420e5160c6">Restaurants</a> <i class="fa fa-angle-down menu-action"></i> <ul class="sub-nav-mobile"> <li class="has-children" > <a href="/restaurants/only-in-rochester/" target="_self" data-id="5ab409d76fabc5420e5169f0">Only in Rochester</a> </li> <li class="has-children" > <a href="/restaurants/new-restaurants/" target="_self" data-id="5ab409d76fabc5420e5169b6">New Restaurants</a> </li> <li class="has-children" > <a href="/restaurants/downtown/" target="_self" data-id="5ab409d66fabc5420e51685a">Downtown</a> </li> <li class="has-children" > <a href="/restaurants/bars/" target="_self" data-id="5dc9e41556039ec7ebc3f14b">Bars</a> </li> <li class="has-children" > <a href="/restaurants/fine-dining/" target="_self" data-id="5ab409d66fabc5420e5168ce">Fine Dining</a> </li> <li class="has-children" > <a href="/restaurants/food-trucks/" target="_self" data-id="5ab409d66fabc5420e516942">Food Trucks</a> </li> <li class="has-children" > <a href="/restaurants/farmers-market/" target="_self" data-id="5ab409d66fabc5420e516894">Farmers Market</a> </li> <li class="has-children" > <a href="/restaurants/food-and-drink-events/" target="_self" data-id="5ab409d66fabc5420e516908">Food & Drink Events</a> </li> <li class="has-children" > <a href="/restaurants/search-by-cuisine-type/" target="_self" data-id="5ab409d76fabc5420e516a64">Search by Cuisine Type</a> <i class="fa fa-angle-down menu-action"></i> <ul> <li class="has-children" > <a href="/restaurants/search-by-cuisine-type/american/" target="_self" data-id="5ab409e16fabc5420e517d74">American</a> </li> <li class="has-children" > <a href="/restaurants/search-by-cuisine-type/coffee-and-tea/" target="_self" data-id="5ab409e16fabc5420e517dae">Coffee & Tea</a> </li> <li class="has-children" > <a href="/restaurants/search-by-cuisine-type/international/" target="_self" data-id="5ab409e16fabc5420e517de8">International</a> </li> <li class="has-children" > <a href="/restaurants/search-by-cuisine-type/pizza/" target="_self" data-id="5ab409e16fabc5420e517e22">Pizza</a> </li> <li class="has-children" > <a href="/restaurants/search-by-cuisine-type/seafood/" target="_self" data-id="5ab409e16fabc5420e517e5c">Seafood</a> </li> <li class="has-children" > <a href="/restaurants/search-by-cuisine-type/sweet-treats/" target="_self" data-id="5ab409e26fabc5420e517e96">Sweet Treats</a> </li> </ul> </li> <li class="has-children" > <a href="/restaurants/kid-friendly/" target="_self" data-id="5ab409d66fabc5420e51697c">Kid Friendly</a> </li> <li class="has-children" > <a href="/restaurants/dog-friendly/" target="_self" data-id="6671e6608b68e6d94a8206eb">Dog Friendly</a> </li> </ul> </li> <li class="has-children" > <a href="/planning-tools/" target="_self" data-id="5ab409d26fabc5420e516100">Planning Tools</a> <i class="fa fa-angle-down menu-action"></i> <ul class="sub-nav-mobile"> <li class="has-children" > <a href="/planning-tools/getting-here/" target="_self" data-id="5ab409d76fabc5420e516a9e">Getting Here</a> <i class="fa fa-angle-down menu-action"></i> <ul> <li class="has-children" > <a href="/planning-tools/getting-here/airports/" target="_self" data-id="5ab409e26fabc5420e517ed0">Airports</a> </li> <li class="has-children" > <a href="/planning-tools/getting-here/driving-directions/" target="_self" data-id="5ab409e26fabc5420e517f0a">Driving Directions</a> </li> </ul> </li> <li class="has-children" > <a href="/planning-tools/getting-around/" target="_self" data-id="5ab409d76fabc5420e516b12">Getting Around</a> <i class="fa fa-angle-down menu-action"></i> <ul> <li class="has-children" > <a href="/planning-tools/getting-around/bus-line/" target="_self" data-id="5ab409e26fabc5420e517f44">Bus Line</a> </li> <li class="has-children" > <a href="/planning-tools/getting-around/car-rental/" target="_self" data-id="5ab409e26fabc5420e517f7e">Car Rental</a> </li> <li class="has-children" > <a href="/planning-tools/getting-around/limousine-service/" target="_self" data-id="5ab409e26fabc5420e517fb8">Limousine Service</a> </li> <li class="has-children" > <a href="/planning-tools/getting-around/parking/" target="_self" data-id="5ab409e26fabc5420e517ff2">Parking</a> </li> <li class="has-children" > <a href="/planning-tools/getting-around/shuttle-service/" target="_self" data-id="5ab409e26fabc5420e51802c">Shuttle Service</a> </li> <li class="has-children" > <a href="/planning-tools/getting-around/skyway-subway/" target="_self" data-id="5ab409e26fabc5420e518066">Skyway/Subway</a> </li> <li class="has-children" > <a href="/planning-tools/getting-around/specialized-transportation/" target="_self" data-id="5ab409e36fabc5420e5180a0">Specialized Transportation</a> </li> <li class="has-children" > <a href="/planning-tools/getting-around/taxi-service/" target="_self" data-id="5ab409e36fabc5420e5180da">Taxi Service</a> </li> </ul> </li> <li class="has-children" > <a href="/planning-tools/travel-guide/" target="_self" data-id="5ab409d76fabc5420e516b4c">Travel Planning Guide</a> </li> <li class="has-children" > <a href="/planning-tools/weather/" target="_self" data-id="5ab409d76fabc5420e516bc0">Weather</a> </li> <li class="has-children" > <a href="/planning-tools/traveling-with-pets/" target="_self" data-id="5c65ad3518e1e6fa27beeb3f">Traveling With Pets</a> </li> <li class="has-children" > <a href="https://www.experiencerochestermn.com/meet/weddings-parties-celebrations/" target="_self" data-id="5ab409d86fabc5420e516bfa">Weddings, Parties & Celebrations</a> </li> <li class="has-children" > <a href="/planning-tools/university-of-minnesota-rochester/" target="_self" data-id="5ab409d86fabc5420e516bfb">University of Minnesota Rochester</a> </li> </ul> </li> <li class="has-children" > <a href="/mayo-clinic/" target="_self" data-id="5ab409d26fabc5420e51613a">Visit Mayo Clinic</a> <i class="fa fa-angle-down menu-action"></i> <ul class="sub-nav-mobile"> <li class="has-children" > <a href="/mayo-clinic/hotels/" target="_self" data-id="5ab409d86fabc5420e516c35">Hotels</a> <i class="fa fa-angle-down menu-action"></i> <ul> <li class="has-children" > <a href="/mayo-clinic/hotels/charitable-lodging/" target="_self" data-id="5ab409e36fabc5420e518188">Charitable Lodging</a> </li> </ul> </li> <li class="has-children" > <a href="/mayo-clinic/getting-here/" target="_self" data-id="5ab409d86fabc5420e516c6f">Getting Here</a> </li> <li class="has-children" > <a href="/mayo-clinic/getting-around/" target="_self" data-id="5ab409d86fabc5420e516ca9">Getting Around</a> </li> <li class="has-children" > <a href="https://www.mayoclinic.org/patient-visitor-guide/minnesota/travel-lodging-maps/maps" target="_blank" data-id="5ab409d86fabc5420e516ce3">Mayo Clinic Maps</a> </li> <li class="has-children" > <a href="/mayo-clinic/faq/" target="_self" data-id="5ab409d86fabc5420e516ce4">FAQ</a> </li> <li class="has-children" > <a href="/mayo-clinic/history/" target="_self" data-id="5ab409d86fabc5420e516d1e">History</a> </li> <li class="has-children" > <a href="/mayo-clinic/restaurants-nearby/" target="_self" data-id="5ab409d86fabc5420e516d58">Restaurants Nearby</a> </li> <li class="has-children" > <a href="/mayo-clinic/parking/" target="_self" data-id="5ab409d86fabc5420e516d92">Parking</a> </li> </ul> </li> </ul> </nav> <script type="text/javascript"> require(["jquery"], function($) { var root = $('[data-guid=1b8c86de-b79b-49ac-9369-0de03930e72f]'); root.find('.menu-action').on('click', function() { $(this).toggleClass('active'); $(this).siblings().toggleClass('active'); }); var navItemProperties = JSON.parse($('meta[name=sv-nav-properties]').attr('content')); var currentLink = root.find('[data-id=' + navItemProperties.id + ']'); currentLink.addClass('active') var parentIds = navItemProperties.parents_ids || []; var rootParent = parentIds.length > 0 ? parentIds[0] : navItemProperties.id; var current = root.find('[data-id="' + rootParent + '"]'); parentIds.forEach(function(parentId){ var parentItems = root.find('[data-id="' + parentId + '"]'); parentItems.each(function(){ $(this).parent().addClass('current'); }); }); current.addClass('current'); root.find('.micro-mobile').not('.micro-mobile.current').remove(); }); </script></div><div data-civid="641e0104010ee024eeb7ecc1" class="contentRender contentRender_10 contentRender_type_widget contentRender_name_plugins_nav_mobile" data-sv-time="31" data-sv-index="10" data-gtm-vars='{ "tCore" : { "contentNum" : "2" } }'> <nav class="indy-nav" data-guid="1a788d35-52ae-4dec-9622-d0a2460f485b"> <ul class="indy-nav-style-mobile"> <li class="has-children" > <a href="/meet/" target="_self" data-id="5ab409d26fabc5420e516174">Meet in Rochester</a> <i class="fa fa-angle-down menu-action"></i> <ul class="sub-nav-mobile"> <li class="has-children" > <a href="/meet/mayo-civic-center/" target="_self" data-id="5ab409d96fabc5420e516dcc">Convention Center</a> </li> <li class="has-children" > <a href="/meet/facilities/" target="_self" data-id="5ab409d96fabc5420e516e34">Meeting Facilities</a> <i class="fa fa-angle-down menu-action"></i> <ul> <li class="has-children" > <a href="https://www.experiencerochestermn.com/meet/mayo-civic-center/" target="_self" data-id="5ab409e36fabc5420e5181f6">Convention Center</a> </li> <li class="has-children" > <a href="/meet/facilities/hotels/" target="_self" data-id="5ab409e36fabc5420e5181f7">Hotels</a> </li> <li class="has-children" > <a href="/meet/facilities/unique-off-site-venues/" target="_self" data-id="5ab409e36fabc5420e51822b">Unique Off-site Venues</a> </li> </ul> </li> <li class="has-children" > <a href="/meet/weddings-parties-celebrations/" target="_self" data-id="5ab409d96fabc5420e516e68">Weddings, Parties & Celebrations</a> </li> <li class="has-children" > <a href="/meet/green-initiatives/" target="_self" data-id="5ab409d96fabc5420e516ed0">Green Initiatives</a> </li> <li class="has-children" > <a href="https://www.experiencerochestermn.com/things-to-do/nightlife-and-live-music/" target="_self" data-id="5ab409d96fabc5420e516f04">Nightlife</a> </li> <li class="has-children" > <a href="/meet/trolley/" target="_self" data-id="5ab409d96fabc5420e516f38">Trolley</a> </li> <li class="has-children" > <a href="https://www.experiencerochestermn.com/sports/" target="_self" data-id="5ab409d96fabc5420e516fa0">Sports</a> </li> <li class="has-children" > <a href="/meet/contact-us/" target="_self" data-id="5ab409d96fabc5420e516fa1">Contact Us</a> </li> <li class="has-children" > <a href="/meet/medical-meetings/" target="_self" data-id="6435ac6cccc386387b0c92c8">Medical Meetings and Conventions in Rochester, MN</a> </li> </ul> </li> <li class="has-children" > <a href="/sports/" target="_self" data-id="5ab409d26fabc5420e5161a8">Sports</a> <i class="fa fa-angle-down menu-action"></i> <ul class="sub-nav-mobile"> <li class="has-children" > <a href="http://www.rochsports.org/page/show/921763-rochester-sports-calendar" target="_self" data-id="5ab409da6fabc5420e51703d">Sports Events Calendar</a> </li> </ul> </li> <li class="has-children" > <a href="/blog/" target="_self" data-id="5aaafc888c50bb2d2882af24">Blog</a> </li> <li class="has-children" > <a href="/media/" target="_self" data-id="5ab409d26fabc5420e5161dc">Media</a> <i class="fa fa-angle-down menu-action"></i> <ul class="sub-nav-mobile"> <li class="has-children" > <a href="/media/rankings-and-recognitions/" target="_self" data-id="5ab409da6fabc5420e5170db">Rankings & Recognitions</a> </li> </ul> </li> <li class="has-children" > <a href="/podcast/" target="_self" data-id="62101e0d19ab721caededf52">Podcast</a> </li> <li class="has-children" > <a href="/brewpass/" target="_self" data-id="661d80675754e4512960a9c9">Sip n' Savor Brew Pass</a> </li> </ul> </nav> <script type="text/javascript"> require(["jquery"], function($) { var root = $('[data-guid=1a788d35-52ae-4dec-9622-d0a2460f485b]'); root.find('.menu-action').on('click', function() { $(this).toggleClass('active'); $(this).siblings().toggleClass('active'); }); var navItemProperties = JSON.parse($('meta[name=sv-nav-properties]').attr('content')); var currentLink = root.find('[data-id=' + navItemProperties.id + ']'); currentLink.addClass('active') var parentIds = navItemProperties.parents_ids || []; var rootParent = parentIds.length > 0 ? parentIds[0] : navItemProperties.id; var current = root.find('[data-id="' + rootParent + '"]'); parentIds.forEach(function(parentId){ var parentItems = root.find('[data-id="' + parentId + '"]'); parentItems.each(function(){ $(this).parent().addClass('current'); }); }); current.addClass('current'); root.find('.micro-mobile').not('.micro-mobile.current').remove(); }); </script></div> </nav> </div> </div> </section> </header> </div></div> </div> <div class="slideshow_container"> <div data-civid="650b15a37f682d7986d069d2" class="contentRender contentRender_11 contentRender_type_widget contentRender_name_plugins_collections_type_custom_header_slides contentRender_name_plugins_collections_template_custom_header_slideshow_interior" data-sv-time="42" data-sv-index="11" data-gtm-vars='{ "tCore" : { "contentNum" : "1" } }'> <div class="homepage-header-slideshow-holder" data-guid="917d8cc2-1cb9-4945-9c81-4714f4abbf30"> <section class="homepage-header-slideshow interior"> <img class="placeholder" src="https://assets.simpleviewinc.com/simpleview/image/upload/c_fill,e_blur:300,h_107,o_60,q_50,w_320/v1/clients/rochestermn/16_DSC_5090_440ad935-51c6-49f5-9ef3-d1d2ca560f6f.jpg" /> </section> <script type="text/template" data-sv-slides> {{#items.0}} {{:asset.resource}} <article class="homepage-header-slide slide" data-profile-sort="{{profileSort}}"> {{~setVar("resource", helpers.plugins.cloudinary.createResource(data.asset.resource))}} {{~setVar('mobileCrop', data.mobile_crop_image ? helpers.plugins.cloudinary.createResource(data.mobile_crop_image.resource) : helpers.var.resource)}} <picture class="imgcont"> <source media="(max-width: 640px)" srcset="{{~var.mobileCrop.getThumbnailUrl({ height : 652, width : 640, crop : 'fill', sv : { gravity : 'focalPoint' }, quality: 50 })}}"> <source media="(max-width: 1024px)" srcset="{{~var.resource.getThumbnailUrl({ height : 341, width : 1024, crop : 'fill', sv : { gravity : 'focalPoint' }, quality: 50 })}}"> <img src="{{~var.resource.getThumbnailUrl({ height : 500, width : 1500, crop : 'fill', sv : { gravity : 'focalPoint' }, quality: 50 })}}" alt="{{%asset.alt_text}}"> </picture> <div class="ol-header-slideshow"></div> {{:asset.credits}} <div class="credits">Credit: {{asset.credits}}</div> {{/}} {{:*templateData.title}} <div class="header-caption {{:link.url}}has-link{{/}}"> {{:link.url}}<a href="{{link.url}}" target="{{link.target}}">{{/}} <span>{{title}}</span>{{:link.url}}<i class="fa fa-angle-double-right" aria-hidden="true"></i>{{/}} {{:link.url}}</a>{{/}} </div> {{/}} </article> {{/asset}} {{/items}} </script> <div class="header-dots"></div> </div> <script> var modules = ["jquery", "lodash", "sv_load!plugins_dtn", "sv_goatee!plugins=cloudinary,videoLib", "sv_asyncLib", "sv_arrayLib", "sv_load!plugins_dynamic_content"] var browserIsIE = document.body.style.msTouchAction !== undefined; if (browserIsIE) modules.push("plugins_common_custom_picturefill"); require(modules, function($, lodash, dtn, goatee, asyncLib, arrayLib, dynamic) { var root = $("[data-guid=917d8cc2-1cb9-4945-9c81-4714f4abbf30]"); var data = {"template":"custom_header_slideshow_interior","source":"custom","templateData":{"title":"false"},"modelName":"plugins_collections_type_custom_header_slides","typeName":"custom_header_slides","items":[{"_id":"640a2666dff8cf4f0b75b35d","asset_id":{"id":"640a263fdff8cf4f0b75b359","modelName":"plugins_assets_images"},"title":"Savor local flavors at Rochester Farmers Markets","link_raw":{"id":"https://www.experiencerochestermn.com/restaurants/farmers-market/","type":"plugins_nav_external_link"},"created":"2023-03-09T18:30:08.333Z","isdtn":false,"content_owner":"default","_updated":"2023-03-09T18:33:26.026Z","asset":{"_id":"640a263fdff8cf4f0b75b359","original_public_id":"clients/rochestermn/16_DSC_5090_440ad935-51c6-49f5-9ef3-d1d2ca560f6f","title":"Rochester Farmers Market","notes":"Tom Roster","resource_raw":{"asset_id":"aba62347ebcbae5f6d8b44fbad8cc495","public_id":"clients/rochestermn/16_DSC_5090_440ad935-51c6-49f5-9ef3-d1d2ca560f6f","version":1678386740,"version_id":"a7e638429bfef8da6558bbf1e3ab7207","signature":"bce4689b1b829198aec2274f66da2bc3b364229d","width":4928,"height":3280,"format":"jpg","resource_type":"image","created_at":"2023-03-09T18:32:20.000Z","pages":1,"bytes":1905289,"type":"upload","etag":"56bd6d27ad121ccc22633a4b7c1663cf","placeholder":false,"url":"http://res.cloudinary.com/simpleview/image/upload/v1678386740/clients/rochestermn/16_DSC_5090_440ad935-51c6-49f5-9ef3-d1d2ca560f6f.jpg","secure_url":"https://res.cloudinary.com/simpleview/image/upload/v1678386740/clients/rochestermn/16_DSC_5090_440ad935-51c6-49f5-9ef3-d1d2ca560f6f.jpg","folder":"clients/rochestermn","access_mode":"public","exif":{"ApertureValue":"2/1","BodySerialNumber":"2002933","CFAPattern":"2, 0, 2, 0, 0, 1, 1, 2","ColorSpace":"65535","Contrast":"0","CustomRendered":"0","DateTime":"2023:01:24 15:47:59","DateTimeDigitized":"2022:10:22 11:10:57","DateTimeOriginal":"2022:10:22 11:10:57","DigitalZoomRatio":"1/1","ExifOffset":"146","ExifVersion":"48, 50, 51, 49","ExposureBiasValue":"0/6","ExposureMode":"0","ExposureProgram":"3","ExposureTime":"1/1600","FileSource":"3","Flash":"0","FNumber":"2/1","FocalLength":"850/10","FocalLengthIn35mmFilm":"85","FocalPlaneResolutionUnit":"3","FocalPlaneXResolution":"44855751/32768","FocalPlaneYResolution":"44855751/32768","GainControl":"0","LensModel":"85.0 mm f/1.4","LensSpecification":"850/10, 850/10, 14/10, 14/10","LightSource":"0","Make":"NIKON CORPORATION","MaxApertureValue":"10/10","MeteringMode":"5","Model":"NIKON D4S","OffsetTime":"+00:00","PhotographicSensitivity":"100","Saturation":"0","SceneCaptureType":"0","SceneType":"1","SensingMethod":"2","SensitivityType":"2","Sharpness":"0","ShutterSpeedValue":"10643856/1000000","Software":"Adobe Imagecore (Linux)","SubjectDistanceRange":"0","SubSecTimeDigitized":"79","SubSecTimeOriginal":"79","WhiteBalance":"0"},"original_filename":"file","api_key":"756897581616859"},"credits":"Experience Rochester","content_owner":"default","title_sort":"rochester farmers market","updated":"2023-03-09T18:32:31.216Z","private":false,"deleted":false,"created":"2023-03-09T18:32:31.216Z","resource":{"raw":{"resource_type":"image","format":"jpg","pages":1,"public_id":"clients/rochestermn/16_DSC_5090_440ad935-51c6-49f5-9ef3-d1d2ca560f6f"}},"id":"640a263fdff8cf4f0b75b359","type":"image","inAssetRequest":false,"alt_text":"Rochester Farmers Market","expired":false},"link":{"id":"https://www.experiencerochestermn.com/restaurants/farmers-market/","url":"https://www.experiencerochestermn.com/restaurants/farmers-market/","valid":true,"type":"plugins_nav_external_link","typeLabel":"Custom Link","target":"_self","uniqueId":"plugins_nav_external_link_https://www.experiencerochestermn.com/restaurants/farmers-market/"},"id":"640a2666dff8cf4f0b75b35d"}],"guid":"917d8cc2-1cb9-4945-9c81-4714f4abbf30","widgetArgs":{"nav":{"_id":"5ab409d26fabc5420e51608c","sortorder":2,"title":"Things to Do","folder":"things-to-do","section":"main","type":"page","active":true,"show_on_nav":true,"publish_start":"2018-03-22T19:00:00.000Z","searchable":"yes","new_window":false,"image_id":"5b8fe0aed7cf37cfa637b37c","description":"<p>Enjoy the vibrancy, beauty, and charm of Rochester, MN when you visit our picturesque parks, renowned historical sites, and dynamic galleries and theaters or attend one of our events. Then, stop in for a bite to eat in a friendly atmosphere at one of our many celebrated hot spots for dining and nightlife. Plan your "play" time in Rochester, MN today!</p>","meta_title":"Things to Do in Rochester, MN | Attractions & Local Events","meta_description":"Explore things to do in Rochester, MN and experience fun and local attractions like historical sites, parks, art galleries, theaters, and exciting nightlife.","version_id":"650b165d7f682d7986d06a0b","created":"2018-03-22T19:53:54.082Z","content_owner":"default","site_name":"primary","updated":"2023-09-20T15:57:17.742Z","title_sort":"things to do","site_section":"primary.main","published":true,"amp":false,"cms_title":"Things to Do - /things-to-do/","cms_title_sort":"things to do - /things-to-do/","folderHref":"/things-to-do/","image":{"_id":"5b8fe0aed7cf37cfa637b37c","original_public_id":"clients/rochestermn/silver_lake_hazy_AB_Photography_7776ae1e-278e-4244-a1af-92f201d21411","title":"Boating on Silver Lake in Rochester, MN","resource_raw":{"public_id":"clients/rochestermn/silver_lake_hazy_AB_Photography_7776ae1e-278e-4244-a1af-92f201d21411","version":1536155804,"signature":"b48498e66b2f5db7a451099c9870df09b5584776","width":5472,"height":3648,"format":"jpg","resource_type":"image","created_at":"2018-09-05T13:56:44.000Z","pages":1,"bytes":3580612,"type":"upload","etag":"192e0388b02cdb9c44a5afec7c9d29b0","placeholder":false,"url":"http://res.cloudinary.com/simpleview/image/upload/v1536155804/clients/rochestermn/silver_lake_hazy_AB_Photography_7776ae1e-278e-4244-a1af-92f201d21411.jpg","secure_url":"https://res.cloudinary.com/simpleview/image/upload/v1536155804/clients/rochestermn/silver_lake_hazy_AB_Photography_7776ae1e-278e-4244-a1af-92f201d21411.jpg","access_mode":"public","exif":{"ApertureValue":"526069/1000000","Artist":"A. Petrova & B. Wootla","ColorSpace":"1","Copyright":"AB-Photography.us","CustomRendered":"0","DateTime":"2018:08:06 21:15:36","DateTimeDigitized":"2018:08:06 18:39:21","DateTimeOriginal":"2018:08:06 18:39:21","ExifOffset":"292","ExifVersion":"48, 50, 51, 49","ExposureBiasValue":"0/1","ExposureMode":"0","ExposureProgram":"3","ExposureTime":"1/8000","Flash":"16","FNumber":"12/10","FocalLength":"85/1","FocalPlaneResolutionUnit":"3","FocalPlaneXResolution":"49807360/32768","FocalPlaneYResolution":"49807360/32768","ISOSpeedRatings":"100","Make":"Canon","MaxApertureValue":"625/1000","MeteringMode":"5","Model":"Canon EOS-1D X Mark II","ResolutionUnit":"2","SceneCaptureType":"0","ShutterSpeedValue":"12965784/1000000","Software":"Adobe Photoshop Lightroom Classic 7.1 (Macintosh)","SubSecTimeDigitized":"04","SubSecTimeOriginal":"04","Compression":"6","JPEGInterchangeFormat":"974","JPEGInterchangeFormatLength":"9254","XResolution":"240/1","YResolution":"240/1","WhiteBalance":"0"},"original_filename":"file"},"credits":"AB-PHOTOGRAPHY.US","content_owner":"default","title_sort":"boating on silver lake in rochester, mn","updated":"2018-09-05T13:57:02.319Z","deleted":false,"created":"2018-09-05T13:57:02.319Z","resource":{"raw":{"resource_type":"image","format":"jpg","pages":1,"public_id":"clients/rochestermn/silver_lake_hazy_AB_Photography_7776ae1e-278e-4244-a1af-92f201d21411"}},"id":"5b8fe0aed7cf37cfa637b37c","type":"image","inAssetRequest":false,"alt_text":"Boating on Silver Lake in Rochester, MN","expired":false},"locale_count":0,"id":"5ab409d26fabc5420e51608c","version_id_string":"650b165d7f682d7986d06a0b","href":"/things-to-do/","absoluteHref":"https://www.experiencerochestermn.com/things-to-do/","absoluteFolderHref":"https://www.experiencerochestermn.com/things-to-do/","metaTitle":"Things to Do in Rochester, MN | Attractions & Local Events","rootCmsUrl":"/nav/sitemap/site_primary/section_main/"},"num":11,"guid":"c47abf17-ab91-4de7-a8f9-53195f70d33f","data":{"template":"custom_header_slideshow_interior","feedData_json":"{}","templateData_title":"false","source":"custom","items_json":"[\"640a2666dff8cf4f0b75b35d\"]","data_title":"false"},"civ":{"instance":{"type":"widget","name":"plugins_collections_type_custom_header_slideshow_interior","site_name":"primary","saved":false,"created":"2023-09-20T15:57:17.701Z","updated":"2023-09-20T15:57:17.701Z","deleted":false,"id":"650b15a37f682d7986d069d2","version_id_string":"650b15a37f682d7986d069d3"},"version":{"data":{"template":"custom_header_slideshow_interior","feedData_json":"{}","templateData_title":"false","source":"custom","items_json":"[\"640a2666dff8cf4f0b75b35d\"]","data_title":"false"},"created":"2023-09-20T15:57:17.702Z","id":"650b15a37f682d7986d069d3","instance_id_string":"650b15a37f682d7986d069d2"},"onTrunk":true,"civid":"650b15a37f682d7986d069d2"},"name":"plugins_collections_type_custom_header_slideshow_interior"}}; var flow = new asyncLib.Flow(); flow.series({ // query DTN for collections items to fold into the set, if you are not using DTN, you should not remove this code! // This way your client can easily enable this feature in the future. // All downstream code should function if dtn is disabled, no zones chosen, or no valid ads. dtn : function(cb) { if (dtn === undefined) { return cb(null, []); } var ids = []; dtn.getAdUnitsGam({ ids : ids, modelName : "plugins_collections_type_custom_header_slides", trackUrlFields : ["link.url"], mockFilter : { isdtn : true } }, function(err, temp) { if (err) { return cb(err); } // push dtn items to the front of the array data.items.unshift.apply(data.items, temp); cb(null); }); }, slides : function(cb) { var slides = goatee.fill(root.find("[data-sv-slides]").html(), data); var slider = root.find(".homepage-header-slideshow"); slider.html(slides); cb(null); } }, function(err) { if (err) { throw err; } }); }); </script></div> </div> <div class="content"> <div data-civid="5ab2847031637f06dbd15538" class="contentRender contentRender_12 contentRender_type_panel contentRender_name_plugins_common_visitor_guide" data-sv-time="1" data-sv-index="12" data-gtm-vars='{ "tCore" : { "contentNum" : "1" } }'><section class="en-vg"> <div data-civid="5b314d3205d59a40533d350a" class="contentRender contentRender_13 contentRender_type_widget contentRender_name_plugins_common_visitor_guide" data-sv-time="13" data-sv-index="13" data-gtm-vars='{ "tCore" : { "contentNum" : "1" } }'> <a class="vg" href="https://www.experiencerochestermn.com/planning-tools/travel-guide/" target="_self" data-gtm-click data-gtm-vars='{ "tClient_ga4" : {"eventName" : "navigation_click", "navType": "Navigation Callout", "linkObject": "Free%20Visitor%27s%20Guide" } }'><i class="fa fa-book" aria-hidden="true"></i>Free Visitor's Guide</a> </div> <div data-civid="5b314d3205d59a40533d350c" class="contentRender contentRender_14 contentRender_type_widget contentRender_name_plugins_common_visitor_guide" data-sv-time="13" data-sv-index="14" data-gtm-vars='{ "tCore" : { "contentNum" : "2" } }'> <a class="en" href="https://www.experiencerochestermn.com/e-newsletter-subscribe/" target="_self" data-gtm-click data-gtm-vars='{ "tClient_ga4" : {"eventName" : "navigation_click", "navType": "Navigation Callout", "linkObject": "E-Newsletter%20Sign%20Up" } }'><i class="fa fa-newspaper-o" aria-hidden="true"></i>E-Newsletter Sign Up</a> </div> </section></div><div data-civid="5ab2852431637f06dbd1553e" class="contentRender contentRender_15 contentRender_type_panel contentRender_name_plugins_common_container" data-sv-time="0" data-sv-index="15" data-gtm-vars='{ "tCore" : { "contentNum" : "1" } }'><div class="panel_custom_container"> </div></div><div data-civid="5ab2863231637f06dbd155a6" class="contentRender contentRender_16 contentRender_type_panel contentRender_name_plugins_common_nav_container" data-sv-time="0" data-sv-index="16" data-gtm-vars='{ "tCore" : { "contentNum" : "1" } }'><section class="interior-nav" > <div class="row main"> <div class="columns"> <div data-civid="5ab2863231637f06dbd155a8" class="contentRender contentRender_17 contentRender_type_widget contentRender_name_plugins_nav_side" data-sv-time="18" data-sv-index="17" data-gtm-vars='{ "tCore" : { "contentNum" : "1" } }'> <section class="interior-navs hide" data-guid="ca5c4c3c-dccf-4cf5-bd2b-ed4a5b12a155"> <nav class="interior-nav" data-id="5ab409d16fabc5420e516052"> <div class="interior-nav-action"> <span class="interior-nav-actions">In this section: </span><span class="this-section"><a id="link" href="/places-to-stay/" target="_self" data-gtm-click data-gtm-vars='{"tClient_ga4" : {"eventName" : "navigation_click", "navType": "Navigation Side", "linkObject": "Places%20to%20Stay" } }'>Places to Stay</a> </span><i class="fa fa-caret-down interior-nav-actions" aria-hidden="true"></i> </div> </nav> <div class="child-container"> <div class="row child-items" data-id="5ab409d16fabc5420e516052"> <div class="columns"> <ul class="small-block-grid-4 interior-nav-style"> <li class="has-children"> <a href="/places-to-stay/hotels/" target="_self" data-id="5ab409d46fabc5420e5163d1" data-gtm-click data-gtm-vars='{"tClient_ga4" : {"eventName" : "navigation_click", "navType": "Navigation Side", "linkObject": "Hotels" } }'>Hotels</a> </li> <li class="has-children"> <a href="/places-to-stay/extended-stay/" target="_self" data-id="5ab409d46fabc5420e516445" data-gtm-click data-gtm-vars='{"tClient_ga4" : {"eventName" : "navigation_click", "navType": "Navigation Side", "linkObject": "Extended%20Stay" } }'>Extended Stay</a> </li> <li class="has-children"> <a href="/places-to-stay/campgrounds-and-rv-parks/" target="_self" data-id="5ab409d46fabc5420e51647f" data-gtm-click data-gtm-vars='{"tClient_ga4" : {"eventName" : "navigation_click", "navType": "Navigation Side", "linkObject": "Campgrounds%20%26%20RV%20Parks" } }'>Campgrounds & RV Parks</a> </li> </ul> </div> </div> </div> <nav class="interior-nav" data-id="5ab409d26fabc5420e51608c"> <div class="interior-nav-action"> <span class="interior-nav-actions">In this section: </span><span class="this-section"><a id="link" href="/things-to-do/" target="_self" data-gtm-click data-gtm-vars='{"tClient_ga4" : {"eventName" : "navigation_click", "navType": "Navigation Side", "linkObject": "Things%20to%20Do" } }'>Things to Do</a> </span><i class="fa fa-caret-down interior-nav-actions" aria-hidden="true"></i> </div> </nav> <div class="child-container"> <div class="row child-items" data-id="5ab409d26fabc5420e51608c"> <div class="columns"> <ul class="small-block-grid-4 interior-nav-style"> <li class="has-children"> <a href="/things-to-do/events-calendar/" target="_self" data-id="5ab409d46fabc5420e51652d" data-gtm-click data-gtm-vars='{"tClient_ga4" : {"eventName" : "navigation_click", "navType": "Navigation Side", "linkObject": "Events%20Calendar" } }'>Events Calendar</a> <i class="fa fa-angle-down menu-action"></i> <ul> <li> <a href="/things-to-do/events-calendar/fairs-festivals/" class="" target="_self" data-id="5ab409df6fabc5420e51799a">Fairs + Festivals</a> </li> <li> <a href="/things-to-do/events-calendar/fall/" class="" target="_self" data-id="5ab409df6fabc5420e5179d4">Fall</a> </li> <li> <a href="/things-to-do/events-calendar/winter/" class="" target="_self" data-id="5ab409e06fabc5420e517a0e">Winter</a> </li> <li> <a href="/things-to-do/events-calendar/spring/" class="" target="_self" data-id="63f67257c31926015cbdb232">Spring</a> </li> <li> <a href="/things-to-do/events-calendar/summer/" class="" target="_self" data-id="5ab409e06fabc5420e517a48">Summer</a> </li> </ul> </li> <li class="has-children"> <a href="/things-to-do/downtown/" target="_self" data-id="5ab409d66fabc5420e5167e6" data-gtm-click data-gtm-vars='{"tClient_ga4" : {"eventName" : "navigation_click", "navType": "Navigation Side", "linkObject": "Downtown" } }'>Downtown</a> </li> <li class="has-children"> <a href="https://www.experiencerochestermn.com/restaurants/farmers-market/" target="_self" data-id="5ab409d66fabc5420e516737" data-gtm-click data-gtm-vars='{"tClient_ga4" : {"eventName" : "navigation_click", "navType": "Navigation Side", "linkObject": "Farmers%20Markets" } }'>Farmers Markets</a> </li> <li class="has-children"> <a href="/things-to-do/outdoor-adventure/" target="_self" data-id="5ab409d56fabc5420e5166c3" data-gtm-click data-gtm-vars='{"tClient_ga4" : {"eventName" : "navigation_click", "navType": "Navigation Side", "linkObject": "Outdoor%20Adventure" } }'>Outdoor Adventure</a> <i class="fa fa-angle-down menu-action"></i> <ul> <li> <a href="/things-to-do/outdoor-adventure/bike-hike-walk/" class="" target="_self" data-id="5ab409e16fabc5420e517c52">Bike, Hike & Walk</a> </li> <li> <a href="/things-to-do/outdoor-adventure/ski-skate-sled/" class="" target="_self" data-id="5ab409e16fabc5420e517c8c">Ski, Skate & Sled</a> </li> <li> <a href="/things-to-do/outdoor-adventure/parks/" class="" target="_self" data-id="5ab409e16fabc5420e517cc6">Parks</a> </li> </ul> </li> <li class="has-children"> <a href="/things-to-do/shopping/" target="_self" data-id="5ab409d56fabc5420e5165a1" data-gtm-click data-gtm-vars='{"tClient_ga4" : {"eventName" : "navigation_click", "navType": "Navigation Side", "linkObject": "Shopping" } }'>Shopping</a> <i class="fa fa-angle-down menu-action"></i> <ul> <li> <a href="/things-to-do/shopping/only-in-rochester/" class="" target="_self" data-id="5ab409e06fabc5420e517bde">Only in Rochester</a> </li> <li> <a href="/things-to-do/shopping/apparel/" class="" target="_self" data-id="5ab409e06fabc5420e517af6">Apparel</a> </li> <li> <a href="/things-to-do/shopping/gifts/" class="" target="_self" data-id="5ab409e06fabc5420e517b6a">Gifts & Specialty Items</a> </li> <li> <a href="/things-to-do/shopping/antiques/" class="" target="_self" data-id="5ab409e06fabc5420e517abc">Antiques</a> </li> <li> <a href="/things-to-do/shopping/department-stores/" class="" target="_self" data-id="5ab409e06fabc5420e517b30">Department Stores</a> </li> <li> <a href="/things-to-do/shopping/shopping-centers-malls/" class="" target="_self" data-id="5ab409e06fabc5420e517ba4">Shopping Centers & Malls</a> </li> </ul> </li> <li class="has-children"> <a href="/things-to-do/wineries-breweries/" target="_self" data-id="5ab409d66fabc5420e516738" data-gtm-click data-gtm-vars='{"tClient_ga4" : {"eventName" : "navigation_click", "navType": "Navigation Side", "linkObject": "Wineries%20%26%20Breweries" } }'>Wineries & Breweries</a> </li> <li class="has-children"> <a href="/things-to-do/arts-culture/" target="_self" data-id="5ab409d56fabc5420e5165db" data-gtm-click data-gtm-vars='{"tClient_ga4" : {"eventName" : "navigation_click", "navType": "Navigation Side", "linkObject": "Arts%20%26%20Culture" } }'>Arts & Culture</a> </li> <li class="has-children"> <a href="/things-to-do/nightlife-and-live-music/" target="_self" data-id="5ab409d56fabc5420e516615" data-gtm-click data-gtm-vars='{"tClient_ga4" : {"eventName" : "navigation_click", "navType": "Navigation Side", "linkObject": "Live%20Entertainment" } }'>Live Entertainment</a> </li> <li class="has-children"> <a href="/things-to-do/attractions-entertainment/" target="_self" data-id="5ab409d66fabc5420e5166fd" data-gtm-click data-gtm-vars='{"tClient_ga4" : {"eventName" : "navigation_click", "navType": "Navigation Side", "linkObject": "Attractions%20%26%20Entertainment" } }'>Attractions & Entertainment</a> <i class="fa fa-angle-down menu-action"></i> <ul> <li> <a href="/things-to-do/attractions-entertainment/movie-theaters/" class="" target="_self" data-id="5ab409e16fabc5420e517d00">Movie Theaters</a> </li> <li> <a href="/things-to-do/attractions-entertainment/sports/" class="" target="_self" data-id="5ab409e16fabc5420e517d3a">Sports</a> </li> <li> <a href="/things-to-do/attractions-entertainment/mayo-civic-center/" class="" target="_self" data-id="5c87cf7a18e1e6fa27c10c8d">Mayo Civic Center</a> </li> </ul> </li> <li class="has-children"> <a href="/things-to-do/history-and-heritage/" target="_self" data-id="5ab409d56fabc5420e51664f" data-gtm-click data-gtm-vars='{"tClient_ga4" : {"eventName" : "navigation_click", "navType": "Navigation Side", "linkObject": "History%20%26%20Heritage" } }'>History & Heritage</a> <i class="fa fa-angle-down menu-action"></i> <ul> <li> <a href="/things-to-do/history-and-heritage/top-four-historical-sites/" class="" target="_self" data-id="5c65d10f18e1e6fa27bef07a">Top Four Historical Sites</a> </li> </ul> </li> <li class="has-children"> <a href="/things-to-do/tours/" target="_self" data-id="5ab409d56fabc5420e516567" data-gtm-click data-gtm-vars='{"tClient_ga4" : {"eventName" : "navigation_click", "navType": "Navigation Side", "linkObject": "Tours" } }'>Tours</a> </li> <li class="has-children"> <a href="/things-to-do/health-fitness-wellness/" target="_self" data-id="5cb0ef192473ea3636522ab2" data-gtm-click data-gtm-vars='{"tClient_ga4" : {"eventName" : "navigation_click", "navType": "Navigation Side", "linkObject": "Health%2C%20Fitness%20%26%20Wellness" } }'>Health, Fitness & Wellness</a> <i class="fa fa-angle-down menu-action"></i> <ul> <li> <a href="/things-to-do/health-fitness-wellness/rest-and-relaxation-in-rochester-mn/" class="" target="_self" data-id="5cb4da11da6ad739bddb385d">Rest and Relaxation in Rochester, MN</a> </li> </ul> </li> <li class="has-children"> <a href="/things-to-do/things-to-do-with-kids/" target="_self" data-id="5ab409d66fabc5420e516772" data-gtm-click data-gtm-vars='{"tClient_ga4" : {"eventName" : "navigation_click", "navType": "Navigation Side", "linkObject": "Kid%20Friendly" } }'>Kid Friendly</a> </li> <li class="has-children"> <a href="/things-to-do/hidden-gems-nearby/" target="_self" data-id="5ab409d66fabc5420e516820" data-gtm-click data-gtm-vars='{"tClient_ga4" : {"eventName" : "navigation_click", "navType": "Navigation Side", "linkObject": "Hidden%20Gems%20Nearby" } }'>Hidden Gems Nearby</a> </li> <li class="has-children"> <a href="/things-to-do/day-trips/" target="_self" data-id="5ab409d56fabc5420e516689" data-gtm-click data-gtm-vars='{"tClient_ga4" : {"eventName" : "navigation_click", "navType": "Navigation Side", "linkObject": "Day%20Trips" } }'>Day Trips</a> </li> </ul> </div> </div> </div> <nav class="interior-nav" data-id="5ab409d26fabc5420e5160c6"> <div class="interior-nav-action"> <span class="interior-nav-actions">In this section: </span><span class="this-section"><a id="link" href="/restaurants/" target="_self" data-gtm-click data-gtm-vars='{"tClient_ga4" : {"eventName" : "navigation_click", "navType": "Navigation Side", "linkObject": "Restaurants" } }'>Restaurants</a> </span><i class="fa fa-caret-down interior-nav-actions" aria-hidden="true"></i> </div> </nav> <div class="child-container"> <div class="row child-items" data-id="5ab409d26fabc5420e5160c6"> <div class="columns"> <ul class="small-block-grid-4 interior-nav-style"> <li class="has-children"> <a href="/restaurants/only-in-rochester/" target="_self" data-id="5ab409d76fabc5420e5169f0" data-gtm-click data-gtm-vars='{"tClient_ga4" : {"eventName" : "navigation_click", "navType": "Navigation Side", "linkObject": "Only%20in%20Rochester" } }'>Only in Rochester</a> </li> <li class="has-children"> <a href="/restaurants/new-restaurants/" target="_self" data-id="5ab409d76fabc5420e5169b6" data-gtm-click data-gtm-vars='{"tClient_ga4" : {"eventName" : "navigation_click", "navType": "Navigation Side", "linkObject": "New%20Restaurants" } }'>New Restaurants</a> </li> <li class="has-children"> <a href="/restaurants/downtown/" target="_self" data-id="5ab409d66fabc5420e51685a" data-gtm-click data-gtm-vars='{"tClient_ga4" : {"eventName" : "navigation_click", "navType": "Navigation Side", "linkObject": "Downtown" } }'>Downtown</a> </li> <li class="has-children"> <a href="/restaurants/bars/" target="_self" data-id="5dc9e41556039ec7ebc3f14b" data-gtm-click data-gtm-vars='{"tClient_ga4" : {"eventName" : "navigation_click", "navType": "Navigation Side", "linkObject": "Bars" } }'>Bars</a> </li> <li class="has-children"> <a href="/restaurants/fine-dining/" target="_self" data-id="5ab409d66fabc5420e5168ce" data-gtm-click data-gtm-vars='{"tClient_ga4" : {"eventName" : "navigation_click", "navType": "Navigation Side", "linkObject": "Fine%20Dining" } }'>Fine Dining</a> </li> <li class="has-children"> <a href="/restaurants/food-trucks/" target="_self" data-id="5ab409d66fabc5420e516942" data-gtm-click data-gtm-vars='{"tClient_ga4" : {"eventName" : "navigation_click", "navType": "Navigation Side", "linkObject": "Food%20Trucks" } }'>Food Trucks</a> </li> <li class="has-children"> <a href="/restaurants/farmers-market/" target="_self" data-id="5ab409d66fabc5420e516894" data-gtm-click data-gtm-vars='{"tClient_ga4" : {"eventName" : "navigation_click", "navType": "Navigation Side", "linkObject": "Farmers%20Market" } }'>Farmers Market</a> </li> <li class="has-children"> <a href="/restaurants/food-and-drink-events/" target="_self" data-id="5ab409d66fabc5420e516908" data-gtm-click data-gtm-vars='{"tClient_ga4" : {"eventName" : "navigation_click", "navType": "Navigation Side", "linkObject": "Food%20%26%20Drink%20Events" } }'>Food & Drink Events</a> </li> <li class="has-children"> <a href="/restaurants/search-by-cuisine-type/" target="_self" data-id="5ab409d76fabc5420e516a64" data-gtm-click data-gtm-vars='{"tClient_ga4" : {"eventName" : "navigation_click", "navType": "Navigation Side", "linkObject": "Search%20by%20Cuisine%20Type" } }'>Search by Cuisine Type</a> <i class="fa fa-angle-down menu-action"></i> <ul> <li> <a href="/restaurants/search-by-cuisine-type/american/" class="" target="_self" data-id="5ab409e16fabc5420e517d74">American</a> </li> <li> <a href="/restaurants/search-by-cuisine-type/coffee-and-tea/" class="" target="_self" data-id="5ab409e16fabc5420e517dae">Coffee & Tea</a> </li> <li> <a href="/restaurants/search-by-cuisine-type/international/" class="" target="_self" data-id="5ab409e16fabc5420e517de8">International</a> </li> <li> <a href="/restaurants/search-by-cuisine-type/pizza/" class="" target="_self" data-id="5ab409e16fabc5420e517e22">Pizza</a> </li> <li> <a href="/restaurants/search-by-cuisine-type/seafood/" class="" target="_self" data-id="5ab409e16fabc5420e517e5c">Seafood</a> </li> <li> <a href="/restaurants/search-by-cuisine-type/sweet-treats/" class="" target="_self" data-id="5ab409e26fabc5420e517e96">Sweet Treats</a> </li> </ul> </li> <li class="has-children"> <a href="/restaurants/kid-friendly/" target="_self" data-id="5ab409d66fabc5420e51697c" data-gtm-click data-gtm-vars='{"tClient_ga4" : {"eventName" : "navigation_click", "navType": "Navigation Side", "linkObject": "Kid%20Friendly" } }'>Kid Friendly</a> </li> <li class="has-children"> <a href="/restaurants/dog-friendly/" target="_self" data-id="6671e6608b68e6d94a8206eb" data-gtm-click data-gtm-vars='{"tClient_ga4" : {"eventName" : "navigation_click", "navType": "Navigation Side", "linkObject": "Dog%20Friendly" } }'>Dog Friendly</a> </li> </ul> </div> </div> </div> <nav class="interior-nav" data-id="5ab409d26fabc5420e516100"> <div class="interior-nav-action"> <span class="interior-nav-actions">In this section: </span><span class="this-section"><a id="link" href="/planning-tools/" target="_self" data-gtm-click data-gtm-vars='{"tClient_ga4" : {"eventName" : "navigation_click", "navType": "Navigation Side", "linkObject": "Planning%20Tools" } }'>Planning Tools</a> </span><i class="fa fa-caret-down interior-nav-actions" aria-hidden="true"></i> </div> </nav> <div class="child-container"> <div class="row child-items" data-id="5ab409d26fabc5420e516100"> <div class="columns"> <ul class="small-block-grid-4 interior-nav-style"> <li class="has-children"> <a href="/planning-tools/getting-here/" target="_self" data-id="5ab409d76fabc5420e516a9e" data-gtm-click data-gtm-vars='{"tClient_ga4" : {"eventName" : "navigation_click", "navType": "Navigation Side", "linkObject": "Getting%20Here" } }'>Getting Here</a> <i class="fa fa-angle-down menu-action"></i> <ul> <li> <a href="/planning-tools/getting-here/airports/" class="" target="_self" data-id="5ab409e26fabc5420e517ed0">Airports</a> </li> <li> <a href="/planning-tools/getting-here/driving-directions/" class="" target="_self" data-id="5ab409e26fabc5420e517f0a">Driving Directions</a> </li> </ul> </li> <li class="has-children"> <a href="/planning-tools/getting-around/" target="_self" data-id="5ab409d76fabc5420e516b12" data-gtm-click data-gtm-vars='{"tClient_ga4" : {"eventName" : "navigation_click", "navType": "Navigation Side", "linkObject": "Getting%20Around" } }'>Getting Around</a> <i class="fa fa-angle-down menu-action"></i> <ul> <li> <a href="/planning-tools/getting-around/bus-line/" class="" target="_self" data-id="5ab409e26fabc5420e517f44">Bus Line</a> </li> <li> <a href="/planning-tools/getting-around/car-rental/" class="" target="_self" data-id="5ab409e26fabc5420e517f7e">Car Rental</a> </li> <li> <a href="/planning-tools/getting-around/limousine-service/" class="" target="_self" data-id="5ab409e26fabc5420e517fb8">Limousine Service</a> </li> <li> <a href="/planning-tools/getting-around/parking/" class="" target="_self" data-id="5ab409e26fabc5420e517ff2">Parking</a> </li> <li> <a href="/planning-tools/getting-around/shuttle-service/" class="" target="_self" data-id="5ab409e26fabc5420e51802c">Shuttle Service</a> </li> <li> <a href="/planning-tools/getting-around/skyway-subway/" class="" target="_self" data-id="5ab409e26fabc5420e518066">Skyway/Subway</a> </li> <li> <a href="/planning-tools/getting-around/specialized-transportation/" class="" target="_self" data-id="5ab409e36fabc5420e5180a0">Specialized Transportation</a> </li> <li> <a href="/planning-tools/getting-around/taxi-service/" class="" target="_self" data-id="5ab409e36fabc5420e5180da">Taxi Service</a> </li> </ul> </li> <li class="has-children"> <a href="/planning-tools/travel-guide/" target="_self" data-id="5ab409d76fabc5420e516b4c" data-gtm-click data-gtm-vars='{"tClient_ga4" : {"eventName" : "navigation_click", "navType": "Navigation Side", "linkObject": "Travel%20Planning%20Guide" } }'>Travel Planning Guide</a> </li> <li class="has-children"> <a href="/planning-tools/weather/" target="_self" data-id="5ab409d76fabc5420e516bc0" data-gtm-click data-gtm-vars='{"tClient_ga4" : {"eventName" : "navigation_click", "navType": "Navigation Side", "linkObject": "Weather" } }'>Weather</a> </li> <li class="has-children"> <a href="/planning-tools/traveling-with-pets/" target="_self" data-id="5c65ad3518e1e6fa27beeb3f" data-gtm-click data-gtm-vars='{"tClient_ga4" : {"eventName" : "navigation_click", "navType": "Navigation Side", "linkObject": "Traveling%20With%20Pets" } }'>Traveling With Pets</a> </li> <li class="has-children"> <a href="https://www.experiencerochestermn.com/meet/weddings-parties-celebrations/" target="_self" data-id="5ab409d86fabc5420e516bfa" data-gtm-click data-gtm-vars='{"tClient_ga4" : {"eventName" : "navigation_click", "navType": "Navigation Side", "linkObject": "Weddings%2C%20Parties%20%26%20Celebrations" } }'>Weddings, Parties & Celebrations</a> </li> <li class="has-children"> <a href="/planning-tools/university-of-minnesota-rochester/" target="_self" data-id="5ab409d86fabc5420e516bfb" data-gtm-click data-gtm-vars='{"tClient_ga4" : {"eventName" : "navigation_click", "navType": "Navigation Side", "linkObject": "University%20of%20Minnesota%20Rochester" } }'>University of Minnesota Rochester</a> </li> </ul> </div> </div> </div> <nav class="interior-nav" data-id="5ab409d26fabc5420e51613a"> <div class="interior-nav-action"> <span class="interior-nav-actions">In this section: </span><span class="this-section"><a id="link" href="/mayo-clinic/" target="_self" data-gtm-click data-gtm-vars='{"tClient_ga4" : {"eventName" : "navigation_click", "navType": "Navigation Side", "linkObject": "Visit%20Mayo%20Clinic" } }'>Visit Mayo Clinic</a> </span><i class="fa fa-caret-down interior-nav-actions" aria-hidden="true"></i> </div> </nav> <div class="child-container"> <div class="row child-items" data-id="5ab409d26fabc5420e51613a"> <div class="columns"> <ul class="small-block-grid-4 interior-nav-style"> <li class="has-children"> <a href="/mayo-clinic/hotels/" target="_self" data-id="5ab409d86fabc5420e516c35" data-gtm-click data-gtm-vars='{"tClient_ga4" : {"eventName" : "navigation_click", "navType": "Navigation Side", "linkObject": "Hotels" } }'>Hotels</a> <i class="fa fa-angle-down menu-action"></i> <ul> <li> <a href="/mayo-clinic/hotels/charitable-lodging/" class="" target="_self" data-id="5ab409e36fabc5420e518188">Charitable Lodging</a> </li> </ul> </li> <li class="has-children"> <a href="/mayo-clinic/getting-here/" target="_self" data-id="5ab409d86fabc5420e516c6f" data-gtm-click data-gtm-vars='{"tClient_ga4" : {"eventName" : "navigation_click", "navType": "Navigation Side", "linkObject": "Getting%20Here" } }'>Getting Here</a> </li> <li class="has-children"> <a href="/mayo-clinic/getting-around/" target="_self" data-id="5ab409d86fabc5420e516ca9" data-gtm-click data-gtm-vars='{"tClient_ga4" : {"eventName" : "navigation_click", "navType": "Navigation Side", "linkObject": "Getting%20Around" } }'>Getting Around</a> </li> <li class="has-children"> <a href="https://www.mayoclinic.org/patient-visitor-guide/minnesota/travel-lodging-maps/maps" target="_blank" data-id="5ab409d86fabc5420e516ce3" data-gtm-click data-gtm-vars='{"tClient_ga4" : {"eventName" : "navigation_click", "navType": "Navigation Side", "linkObject": "Mayo%20Clinic%20Maps" } }'>Mayo Clinic Maps</a> </li> <li class="has-children"> <a href="/mayo-clinic/faq/" target="_self" data-id="5ab409d86fabc5420e516ce4" data-gtm-click data-gtm-vars='{"tClient_ga4" : {"eventName" : "navigation_click", "navType": "Navigation Side", "linkObject": "FAQ" } }'>FAQ</a> </li> <li class="has-children"> <a href="/mayo-clinic/history/" target="_self" data-id="5ab409d86fabc5420e516d1e" data-gtm-click data-gtm-vars='{"tClient_ga4" : {"eventName" : "navigation_click", "navType": "Navigation Side", "linkObject": "History" } }'>History</a> </li> <li class="has-children"> <a href="/mayo-clinic/restaurants-nearby/" target="_self" data-id="5ab409d86fabc5420e516d58" data-gtm-click data-gtm-vars='{"tClient_ga4" : {"eventName" : "navigation_click", "navType": "Navigation Side", "linkObject": "Restaurants%20Nearby" } }'>Restaurants Nearby</a> </li> <li class="has-children"> <a href="/mayo-clinic/parking/" target="_self" data-id="5ab409d86fabc5420e516d92" data-gtm-click data-gtm-vars='{"tClient_ga4" : {"eventName" : "navigation_click", "navType": "Navigation Side", "linkObject": "Parking" } }'>Parking</a> </li> </ul> </div> </div> </div> </section> <script type="text/javascript"> require(["jquery"], function($) { var root = $('[data-guid=ca5c4c3c-dccf-4cf5-bd2b-ed4a5b12a155]'); var navItemProperties = JSON.parse($('meta[name=sv-nav-properties]').attr('content')); var parentIds = navItemProperties.parents_ids || []; var rootParent = parentIds.length > 0 ? parentIds[0] : navItemProperties.id; var current = root.find('[data-id="' + rootParent + '"]'); var currentLink = root.find('[data-id=' + navItemProperties.id + ']'); var isMicrosite = false; currentLink.addClass('active') currentLink.parent('li').find('ul').addClass('active'); window.onload = function() { $('.interior-navs').removeClass('hide') } root.find('.interior-nav-actions').on('click', function(e) { e.preventDefault(); root.find('.interior-nav-style').toggleClass('active'); root.find('.fa-caret-down').toggleClass('active'); }); parentIds.forEach(function(parentId){ var parentItems = root.find('[data-id="' + parentId + '"]'); parentItems.each(function(){ $(this).parent().addClass('current'); }); }); root.find('.menu-action').on('click', function() { $(this).toggleClass('active'); $(this).siblings().toggleClass('active'); }); current.addClass('current'); root.find('.interior-nav').not('.interior-nav.current').remove(); root.find('.child-items').not('.child-items.current').remove(); if (isMicrosite) { root.find('.interior-nav-style').addClass('active'); root.find('.fa-caret-down').addClass('active'); } }); </script></div> <div data-civid="5ab2863231637f06dbd155aa" class="contentRender contentRender_18 contentRender_type_widget contentRender_name_plugins_common_social_share" data-sv-time="13" data-sv-index="18" data-gtm-vars='{ "tCore" : { "contentNum" : "1" } }'> <div class="sv-share" data-guid="475874a7-aaeb-446e-8396-bc3851902536" data-gtm-vars='{ "tClient_ga4" : { "eventName" : "widget_interaction", "widgetName" : "Social Share", "interactionSource": "widget" } }'> <div class="sv-share-button-wrapper"> <button class="sv-share-trigger" type="button" aria-expanded="false" aria-label="show share links" aria-controls="share-popover"> <i class="sv-share-trigger-icon fas fa-share-square"></i> <span>Share</span> </button> <ul id="share-popover" class="sv-share-popover"> <div data-sv-social-share></div> </ul> </div> </div> <script type="text/template" data-social-share-template> {{#items}} <li class="sv-share-service-email"> <!-- Email --> <a href="mailto:?subject={{%%title}}&body={{%%url}}" target="_blank" data-gtm-click data-gtm-vars='{ "tClient_ga4" : { "linkObject" : "Email", "interactionUrl": "mailto:?subject={{%%title}}&body={{%%url}}", "interactionText" : "Email" } }'> <i class="sv-share-service-icon fas fa-envelope" aria-hidden="true"></i> <span>Email</span> </a> </li> <li class="sv-share-service-twitter"> <!-- Twitter --> <a href="https://twitter.com/share?url={{url}}&text={{%%title}}" target="_blank" data-gtm-click data-gtm-vars='{ "tClient_ga4" : { "linkObject" : "Twitter", "interactionUrl": "https://twitter.com/share?url={{%%url}}&text={{%%title}}", "interactionText" : "Twitter" } }'> <i class="sv-share-service-icon fab fa-twitter" aria-hidden="true"></i> <span>Twitter</span> </a> </li> <li class="sv-share-service-facebook"> <!-- Facebook --> <a href="https://www.facebook.com/sharer/sharer.php?u={{url}}" target="_blank" data-gtm-click data-gtm-vars='{ "tClient_ga4" : { "linkObject" : "Facebook", "interactionUrl": "https://www.facebook.com/sharer/sharer.php?u={{%%url}}", "interactionText" : "Facebook" } }'> <i class="sv-share-service-icon fab fa-facebook" aria-hidden="true"></i> <span>Facebook</span> </a> </li> <li class="sv-share-service-linkedin"> <!-- LinkedIn --> <a href="https://www.linkedin.com/shareArticle?url={{url}}&title={{title}}" target="_blank" data-gtm-click data-gtm-vars='{ "tClient_ga4" : { "linkObject" : "Linkedin", "interactionUrl": "https://www.linkedin.com/shareArticle?url={{%%url}}&title={{%%title}}", "interactionText" : "LinkedIn" } }'> <i class="sv-share-service-icon fab fa-linkedin" aria-hidden="true"></i> <span>LinkedIn</span> </a> </li> <li class="sv-share-service-reddit"> <!-- Reddit --> <a href="https://reddit.com/submit?url={{url}}&title={{title}}" target="_blank" data-gtm-click data-gtm-vars='{ "tClient_ga4" : { "linkObject" : "Reddit", "interactionUrl": "https://reddit.com/submit?url={{%%url}}&title={{%%title}}", "interactionText" : "Reddit" } }'> <i class="sv-share-service-icon fab fa-reddit" aria-hidden="true"></i> <span>Reddit</span> </a> </li> {{/}} </script> <script> require(["plugins_common_custom_social_share"], function(socialShare) { const data = {"sections":{},"data":{},"guid":"475874a7-aaeb-446e-8396-bc3851902536","customSettings":{},"widgetArgs":{"nav":{"_id":"5ab409d26fabc5420e51608c","sortorder":2,"title":"Things to Do","folder":"things-to-do","section":"main","type":"page","active":true,"show_on_nav":true,"publish_start":"2018-03-22T19:00:00.000Z","searchable":"yes","new_window":false,"image_id":"5b8fe0aed7cf37cfa637b37c","description":"<p>Enjoy the vibrancy, beauty, and charm of Rochester, MN when you visit our picturesque parks, renowned historical sites, and dynamic galleries and theaters or attend one of our events. Then, stop in for a bite to eat in a friendly atmosphere at one of our many celebrated hot spots for dining and nightlife. Plan your "play" time in Rochester, MN today!</p>","meta_title":"Things to Do in Rochester, MN | Attractions & Local Events","meta_description":"Explore things to do in Rochester, MN and experience fun and local attractions like historical sites, parks, art galleries, theaters, and exciting nightlife.","version_id":"650b165d7f682d7986d06a0b","created":"2018-03-22T19:53:54.082Z","content_owner":"default","site_name":"primary","updated":"2023-09-20T15:57:17.742Z","title_sort":"things to do","site_section":"primary.main","published":true,"amp":false,"cms_title":"Things to Do - /things-to-do/","cms_title_sort":"things to do - /things-to-do/","folderHref":"/things-to-do/","image":{"_id":"5b8fe0aed7cf37cfa637b37c","original_public_id":"clients/rochestermn/silver_lake_hazy_AB_Photography_7776ae1e-278e-4244-a1af-92f201d21411","title":"Boating on Silver Lake in Rochester, MN","resource_raw":{"public_id":"clients/rochestermn/silver_lake_hazy_AB_Photography_7776ae1e-278e-4244-a1af-92f201d21411","version":1536155804,"signature":"b48498e66b2f5db7a451099c9870df09b5584776","width":5472,"height":3648,"format":"jpg","resource_type":"image","created_at":"2018-09-05T13:56:44.000Z","pages":1,"bytes":3580612,"type":"upload","etag":"192e0388b02cdb9c44a5afec7c9d29b0","placeholder":false,"url":"http://res.cloudinary.com/simpleview/image/upload/v1536155804/clients/rochestermn/silver_lake_hazy_AB_Photography_7776ae1e-278e-4244-a1af-92f201d21411.jpg","secure_url":"https://res.cloudinary.com/simpleview/image/upload/v1536155804/clients/rochestermn/silver_lake_hazy_AB_Photography_7776ae1e-278e-4244-a1af-92f201d21411.jpg","access_mode":"public","exif":{"ApertureValue":"526069/1000000","Artist":"A. Petrova & B. Wootla","ColorSpace":"1","Copyright":"AB-Photography.us","CustomRendered":"0","DateTime":"2018:08:06 21:15:36","DateTimeDigitized":"2018:08:06 18:39:21","DateTimeOriginal":"2018:08:06 18:39:21","ExifOffset":"292","ExifVersion":"48, 50, 51, 49","ExposureBiasValue":"0/1","ExposureMode":"0","ExposureProgram":"3","ExposureTime":"1/8000","Flash":"16","FNumber":"12/10","FocalLength":"85/1","FocalPlaneResolutionUnit":"3","FocalPlaneXResolution":"49807360/32768","FocalPlaneYResolution":"49807360/32768","ISOSpeedRatings":"100","Make":"Canon","MaxApertureValue":"625/1000","MeteringMode":"5","Model":"Canon EOS-1D X Mark II","ResolutionUnit":"2","SceneCaptureType":"0","ShutterSpeedValue":"12965784/1000000","Software":"Adobe Photoshop Lightroom Classic 7.1 (Macintosh)","SubSecTimeDigitized":"04","SubSecTimeOriginal":"04","Compression":"6","JPEGInterchangeFormat":"974","JPEGInterchangeFormatLength":"9254","XResolution":"240/1","YResolution":"240/1","WhiteBalance":"0"},"original_filename":"file"},"credits":"AB-PHOTOGRAPHY.US","content_owner":"default","title_sort":"boating on silver lake in rochester, mn","updated":"2018-09-05T13:57:02.319Z","deleted":false,"created":"2018-09-05T13:57:02.319Z","resource":{"raw":{"resource_type":"image","format":"jpg","pages":1,"public_id":"clients/rochestermn/silver_lake_hazy_AB_Photography_7776ae1e-278e-4244-a1af-92f201d21411"}},"id":"5b8fe0aed7cf37cfa637b37c","type":"image","inAssetRequest":false,"alt_text":"Boating on Silver Lake in Rochester, MN","expired":false},"locale_count":0,"id":"5ab409d26fabc5420e51608c","version_id_string":"650b165d7f682d7986d06a0b","href":"/things-to-do/","absoluteHref":"https://www.experiencerochestermn.com/things-to-do/","absoluteFolderHref":"https://www.experiencerochestermn.com/things-to-do/","metaTitle":"Things to Do in Rochester, MN | Attractions & Local Events","rootCmsUrl":"/nav/sitemap/site_primary/section_main/"},"num":18,"guid":"475874a7-aaeb-446e-8396-bc3851902536","data":{},"civ":{"instance":{"type":"widget","name":"plugins_common_social_share","site_name":"primary","updated":"2018-03-21T16:21:21.143Z","saved":false,"created":"2018-03-21T16:21:21.143Z","deleted":false,"id":"5ab2863231637f06dbd155aa","version_id_string":"5ab2863231637f06dbd155ab"},"version":{"created":"2018-03-21T16:21:21.145Z","id":"5ab2863231637f06dbd155ab","instance_id_string":"5ab2863231637f06dbd155aa","data":{}},"onTrunk":true,"civid":"5ab2863231637f06dbd155aa"},"name":"plugins_common_social_share"}}; socialShare.init("475874a7-aaeb-446e-8396-bc3851902536", data) }); </script> </div> </div> </div> </section></div><div data-civid="650b15a37f682d7986d069dc" class="contentRender contentRender_19 contentRender_type_panel contentRender_name_plugins_common_one_col" data-sv-time="1" data-sv-index="19" data-gtm-vars='{ "tCore" : { "contentNum" : "1" } }'> <div class="panel_custom_one_col controlled-width"> <div class="row"> <div class="columns"> <div data-civid="650b15a37f682d7986d069de" class="contentRender contentRender_20 contentRender_type_widget contentRender_name_plugins_core_textbox" data-sv-time="40" data-sv-index="20" data-gtm-vars='{ "tCore" : { "contentNum" : "2" } }'><section data-sv-core-textbox data-guid="5f9e3016-0c0d-44cd-a17c-fa3e1a72530a"> <h1 style="text-align: center;">Things to Do in Rochester, MN</h1> <p>You'll find a dynamic array of fun things to do in Rochester, MN. Enjoy our city's vibrancy, <a data-sv-linklookup-id="5af312b32186d80398c17c54" data-sv-linklookup-type="plugins_blog_blog_post_leisure_blog" href="https://www.experiencerochestermn.com/blog/post/5-scenic-places-in-rochester-mn/" target>beauty</a>, and charm when you visit our picturesque <a data-sv-linklookup-id="5ab409e16fabc5420e517cc6" data-sv-linklookup-type="plugins_nav_navitem_primary_main" href="https://www.experiencerochestermn.com/things-to-do/outdoor-adventure/parks/" target>parks</a>, renowned <a data-sv-linklookup-id="5ab409d56fabc5420e51664f" data-sv-linklookup-type="plugins_nav_navitem_primary_main" href="https://www.experiencerochestermn.com/things-to-do/history-and-heritage/" target>historical sites</a>, and high-quality <a data-sv-linklookup-id="5ab409d56fabc5420e5165db" data-sv-linklookup-type="plugins_nav_navitem_primary_main" href="https://www.experiencerochestermn.com/things-to-do/arts-culture/" target>galleries and theaters</a>. Attend one of our <a data-sv-linklookup-id="5ab409df6fabc5420e51799a" data-sv-linklookup-type="plugins_nav_navitem_primary_main" href="https://www.experiencerochestermn.com/things-to-do/events-calendar/fairs-festivals/" target>festivals</a> or <a data-sv-linklookup-id="5ab409d46fabc5420e51652d" data-sv-linklookup-type="plugins_nav_navitem_primary_main" href="https://www.experiencerochestermn.com/things-to-do/events-calendar/" target>events</a> in Rochester, MN, take a <a data-sv-linklookup-id="5ab409d96fabc5420e516f38" data-sv-linklookup-type="plugins_nav_navitem_primary_secondary" href="https://www.experiencerochestermn.com/meet/trolley/" target>trolley tour</a>, or <a data-sv-linklookup-id="5ab409e16fabc5420e517c52" data-sv-linklookup-type="plugins_nav_navitem_primary_main" href="https://www.experiencerochestermn.com/things-to-do/outdoor-adventure/bike-hike-walk/" target>hike or bike</a> on our 85 miles of paved trails that wind through the city. Then, stop in for a bite to eat in a friendly atmosphere at a <a data-sv-linklookup-id="5ab409d26fabc5420e5160c6" data-sv-linklookup-type="plugins_nav_navitem_primary_main" href="https://www.experiencerochestermn.com/restaurants/" target>Rochester, MN restaurant</a> or one of our <a data-sv-linklookup-id="5ab409d56fabc5420e516615" data-sv-linklookup-type="plugins_nav_navitem_primary_main" href="https://www.experiencerochestermn.com/things-to-do/nightlife-and-live-music/" target title="Rochester MN Nightlife">nightlife</a> hot spots. </p> <p>Discover more things to do in Rochester, MN: </p> <h2>Things to do in the fall</h2> <p>Pumpkin patches and apple orchards are hot spots for families in the fall in Rochester, MN. At the popular Sekapp's Orchard, U-Pick apples and wagon rides are available. Get a taste of fall in Rochester, MN and fill a glass with seasonally-flavored <a data-sv-linklookup-id="5ab409d66fabc5420e516738" data-sv-linklookup-type="plugins_nav_navitem_primary_main" href="https://www.experiencerochestermn.com/things-to-do/wineries-breweries/" target>craft brews</a>, <a data-sv-linklookup-id="5ab409d66fabc5420e516738" data-sv-linklookup-type="plugins_nav_navitem_primary_main" href="https://www.experiencerochestermn.com/things-to-do/wineries-breweries/" target>local wines</a>, and <a data-sv-linklookup-id="5ab409e16fabc5420e517dae" data-sv-linklookup-type="plugins_nav_navitem_primary_main" href="https://www.experiencerochestermn.com/restaurants/search-by-cuisine-type/coffee-and-tea/" target>teas and lattes</a> found around the city. Or, hit the <a data-sv-linklookup-id="5ab409d66fabc5420e516894" data-sv-linklookup-type="plugins_nav_navitem_primary_main" href="https://www.experiencerochestermn.com/restaurants/farmers-market/" target>Rochester Downtown Farmers Market</a>, open outdoors every Saturday through October.</p> <p><em>Find more <a data-sv-linklookup-id="https://www.experiencerochestermn.com/blog/post/top-things-to-do-this-fall-in-rochester-minnesota/" data-sv-linklookup-type="plugins_nav_external_link" data-sv-targetauto="true" href="https://www.experiencerochestermn.com/blog/post/top-things-to-do-this-fall-in-rochester-minnesota/" target="_self">top things to do this fall</a> in Rochester, Minnesota.</em></p> <h2>Things to do with kids</h2> <p>Rochester is a kid-friendly destination that parents will appreciate for its caring ambience, relaxing pace, and convenient <a data-sv-linklookup-id="https://www.experiencerochestermn.com/things-to-do/attractions-entertainment/" data-sv-linklookup-type="plugins_nav_external_link" data-sv-targetauto="true" href="https://www.experiencerochestermn.com/things-to-do/attractions-entertainment/" target="_self">entertainment and attractions</a>. Enjoy some family fun (and dial down the stress) in Rochester, MN with these <a data-sv-linklookup-id="https://www.experiencerochestermn.com/blog/post/things-to-do-with-kids-in-rochester-mn/" data-sv-linklookup-type="plugins_nav_external_link" data-sv-targetauto="true" href="https://www.experiencerochestermn.com/blog/post/things-to-do-with-kids-in-rochester-mn/" target="_self">kid-friendly ideas</a>. Whether your kids are craving pizza, ice cream, popcorn, or more, there are also many <a data-sv-linklookup-id="https://www.experiencerochestermn.com/restaurants/kid-friendly/" data-sv-linklookup-type="plugins_nav_external_link" data-sv-targetauto="true" href="https://www.experiencerochestermn.com/restaurants/kid-friendly/" target="_self">kid-friendly restaurants</a> in Rochester.</p> <h2>Shopping in Rochester, MN</h2> <p>Explore <a data-sv-linklookup-id="5ab409d66fabc5420e5167e6" data-sv-linklookup-type="plugins_nav_navitem_primary_main" href="https://www.experiencerochestermn.com/things-to-do/downtown/" target>downtown Rochester, MN</a>. Downtown Rochester's hotels, stores, restaurants, and Mayo Clinic are connected via an extensive system of climate-controlled <a data-sv-linklookup-id="5ab409e26fabc5420e518066" data-sv-linklookup-type="plugins_nav_navitem_primary_main" href="https://www.experiencerochestermn.com/planning-tools/getting-around/skyway-subway/" target>skyways and underground walkways</a>.</p> <p><a data-sv-linklookup-id="5ab409d56fabc5420e5165a1" data-sv-linklookup-type="plugins_nav_navitem_primary_main" href="https://www.experiencerochestermn.com/things-to-do/shopping/" target>Shop</a> at unique gift boutiques, beloved local apparel shops, and other one-of-a-kind independent establishments where you'll find only-in-Rochester items. </p> <p>Enjoy a locally-produced glass of wine or beer at Rochester, MN's exceptional <a data-sv-linklookup-id="5ab409d66fabc5420e516738" data-sv-linklookup-type="plugins_nav_navitem_primary_main" href="https://www.experiencerochestermn.com/things-to-do/wineries-breweries/" target>wineries and breweries</a>.</p> <p><em>Experience Rochester, MN to its fullest. <a data-sv-linklookup-id="5ab409d26fabc5420e516100" data-sv-linklookup-type="plugins_nav_navitem_primary_main" href="https://www.experiencerochestermn.com/planning-tools/" target>Plan your visit</a> today!</em></p> </section></div> </div> </div> </div> </div><div data-civid="650b15a37f682d7986d069e0" class="contentRender contentRender_21 contentRender_type_panel contentRender_name_plugins_common_one_col" data-sv-time="0" data-sv-index="21" data-gtm-vars='{ "tCore" : { "contentNum" : "2" } }'> <div class="panel_custom_one_col full-width"> <div data-civid="650b15a37f682d7986d069e2" class="contentRender contentRender_22 contentRender_type_widget contentRender_name_plugins_listings_layout_list" data-sv-time="30" data-sv-index="22" data-gtm-vars='{ "tCore" : { "contentNum" : "1" } }'> <div class="shared-list shared-layout listings layout-grid listings-wrapper" id="listings_35f1d434-bd04-46fc-992a-5520bd888e3a" data-gtm-vars='{ "tCore" : { "category" : "listing_layout_list" }, "tClient" : { "eventCategory" : "Listings" }, "tClient_ga4": {"itemType": "listings"} }' data-sv-layout> <script type="text/template" data-sv-listingListItem> {{~setVar("template", "listings_custom_listing_list_item")}} {{~setVar("bookableOffers", data.oncethere_orgid !== undefined && data.offers !== undefined ? data.offers.filter(function(val) { return val.source === "onceThere" }) : [])}} {{~setVar("oncetherelink", data.offers !== undefined && data.offers.length == 1 ? data.offers[0].onceThereUrl : "" )}} {{~setVar("mainColumnClass", helpers.var.bookableOffers.length > 0 ? "large-7 medium-7" : "large-9 medium-9")}} {{~setVar("cityStateZip", helpers.plugins.stringLib.formatCityStateZip({ city : data.city, state : data.state, zip : data.zip }))}} {{~setVar("addressLine", [data.address1, data.address2, data.address3].filter(function(val) { return val !== undefined }).join(", "))}} {{~setVar("placeholder", helpers.plugins.cloudinary.createResource({ imageUrl : helpers.plugins.sv_site.siteConfig.custom.placeholderImageUrl }) )}} {{~setVar('image_settings', { height : 251, width : 380, crop : 'fill', sv : { gravity : 'focalPoint' }, quality : 75 })}} {{~setVar('image_settings_fit', { height : 251, width : 380, crop : 'pad', quality : 75 })}} <div class="shared-item item {{:isDTN}}dtn{{/isDTN}} catid_{{primary_category.catid}}" data-type="listing" data-recid="{{recid}}" data-qualityscore="{{qualityScore}}" data-rankid="{{rankid}}" data-dtn-rank="{{dtn.rank}}" data-rankname="{{%rankname}}" data-gtm-vars='{ "tCore" : { "label" : "{{:isDTN}}dtn - {{/}}{{%%title}}", "recid" : "{{recid}}", "row" : "{{@row}}", "globalRow" : "{{globalRow}}" }, "tClient": {"eventLabel": "{{%%title}}", "recId": "{{recid}}", "et": "{{%%title}}", "dtn": "{{:isDTN}}DTN{{/isDTN}}", "crmc": "{{%%primary_category.catname}}", "crmsc": "{{%%primary_category.subcatname}}", "row" : "{{@row}}", "globalRow" : "{{globalRow}}", "vt" : "Results" }, "tClient_ga4": {"itemType": "listings", "itemName": "{{%%title}}" } }' {{:isDTN}}data-sv-adunit="{{dtnauid}}" data-sv-adstyle="recid" data-sv-adrecid="{{recid}}"{{/isDTN}}> <div class="image-container"> {{:~equal(data.rankname === "Experience Accreditation" || data.rankname === "Sponsored/Experience Accreditation", true)}} <a href="/about-us/our-commitment-to-visitors/experience-accreditation/" target="_blank"> <img class="accredited" src="/includes/public/assets/images/accredited.png"> <img class="accredited-text" src="/includes/public/assets/images/experience.png"> </a> {{/}} {{~setvar("noPlaceholder", data.media && (data.media.length > 1 || data.media[0].mediatype !== "Logo"))}} <a href="{{detailURL}}" data-gtm-click data-gtm-vars='{ "tCore" : { "action" : "{{~var.template}}_detail_image" }, "tClient" : { "ot" : "Image" }, "tClient_ga4": {"eventName": "link_to_detail", "linkObject": "Image", "crmCatSubcat": "{{%%primary_category.catname}} | {{%%primary_category.subcatname}}"} }'> {{:~var.noPlaceholder}} <img src="{{primary_image.resource.getThumbnailUrl(helpers.var.image_settings)}}" class="thumb"> {{?}} <img src="{{primary_image.resource.getThumbnailUrl(helpers.var.image_settings_fit)}}" class="thumb"> {{/}} </a> {{:isDTN}} <div class="featured"> <i class="fa fa-star" aria-hidden="true"></i> Featured </div> {{/}} </div> <div class="contents"> <h2><a href="{{detailURL}}" data-gtm-click data-gtm-vars='{ "tCore" : { "action" : "{{~var.template}}_detail_title" }, "tClient" : { "ot" : "Text" }, "tClient_ga4": {"eventName": "link_to_detail", "linkObject": "Title", "crmCatSubcat": "{{%%primary_category.catname}} | {{%%primary_category.subcatname}}"} }' >{{title}}</a></h2> {{:distance}} <p class="distance">{{distance.format({ unit : "miles" })}} Miles From You</p> {{/distance}} {{:loc}} <p class="address"><a data-click-placemark href="#" data-gtm-click data-gtm-vars='{ "tCore" : { "action" : "{{~var.template}}_icon_map_it" }, "tClient" : { "eventAction" : "Map", "lt" : "Map"}, "tClient_ga4" : {"eventName" : "filter", "filterType" : "Map | View by"} }' data-sv-open-map><i class="fa fa-map-marker"></i> {{~var.addressLine}}</a></p> {{?}} <p class="address">{{~var.addressLine}}</p> {{/}} <div class="actions"> <a class="detail-button" href="{{detailURL}}" data-gtm-click data-gtm-vars='{ "tCore" : { "action" : "{{~var.template}}_detail_title" }, "tClient" : { "ot" : "Text" },"tClient_ga4": {"linkObject": "Details", "eventName": "link_to_detail", "crmCatSubcat": "{{%%primary_category.catname}} | {{%%primary_category.subcatname}}"} }' > Details <i class="fa fa-angle-right" aria-hidden="true"></i> </a> {{:weburl}}<a class="detail-button web-button" {{:isDTN}}data-sv-adclick{{/isDTN}} href="{{~plugins.crmLib.getTrackUrl(data.crmtracking.core_listing_click, data.weburl)}}" target="_blank" data-gtm-click data-gtm-vars='{ "tClient" : { "eventAction" : "Visit Website", "lt" : "Website", "ot" : "Text", "href" : "{{%weburl}}" },"tClient_ga4": {"linkObject": "Visit Website", "eventName": "partner_referral", "crmCatSubcat": "{{%%primary_category.catname}} | {{%%primary_category.subcatname}}"} }' >website <i class="fa fa-angle-right" aria-hidden="true"></i></a>{{/weburl}} </div> </div> </div> </script> <script type="text/template" data-sv-pagerTemplate>{{~setVar("template", "listings_custom_listing_list_pager")}} <div class="pagination" data-sv-pagination=""> <div class="pager"> <ul class="pagi-info"> <li>Results:</li> <li class="number-results">{{pager.startRow}}-{{pager.currentPageLastRow}} of {{pager.totalRows}}</li> </ul> </div> <div class="pager pager-cont"> <ul class="pager-items"> <li><a {{!pager.hasPreviousPage}}class="disabled"{{/pager.hasPreviousPage}} data-row="{{pager.previousPageStartRow}}" data-query-link='{ "delta" : { "skip" : "{{pager.previousPageStartIndex}}" } }' data-gtm-click data-gtm-vars='{ "tCore" : { "action" : "{{~var.template}}_prv" }, "tClient_ga4": {"eventName": "filter", "filterType": "Previous Page | {{pager.previousPageStartRow}} - {{~exec(() => { return data.pager.perPage + data.pager.previousPageStartIndex })}}", "itemType": "listings"} }'><i class="fa fa-angle-double-left" aria-hidden="true"></i> Prev</a></li> <li>{{pager.currentPage}} of {{pager.totalPages}}</li> <li><a {{!pager.hasNextPage}}class="disabled"{{/pager.hasNextPage}} data-row="{{pager.nextPageStartRow}}" data-query-link='{ "delta" : { "skip" : "{{pager.nextPageStartIndex}}" } }' data-gtm-click data-gtm-vars='{ "tCore" : { "action" : "{{~var.template}}_nxt" }, "tClient_ga4": {"eventName": "filter", "filterType": "Next Page | {{pager.nextPageStartRow}} - {{~exec(() => { return data.pager.perPage + data.pager.nextPageStartIndex })}}", "itemType": "listings"} }'>Next <i class="fa fa-angle-double-right" aria-hidden="true"></i></a></li> </ul> </div> </div></script> <script type="text/template" data-sv-listingListMapItem>{{~setVar("template", "custom_list_map_item")}} {{~setVar("cityStateZip", helpers.plugins.stringLib.formatCityStateZip({ city : data.city, state : data.state, zip : data.zip }))}} {{~setVar("addressLine", [data.address1, data.address2, data.address3, helpers.var.cityStateZip].filter(function(val) { return val !== undefined }).join(", "))}} {{~setVar('image_settings', { height : 251, width : 380, crop : 'fill', sv : { gravity : 'focalPoint' }, quality : 50 })}} {{~setVar('image_settings_fit', { height : 251, width : 380, crop : 'pad', quality : 50 })}} {{~exec(function() { helpers.var.imageType; helpers.var.type; helpers.var.nextDate = data.date || data.nextDate; //set images if(data.isListings != undefined){ helpers.var.imageType = data.primary_image.resource helpers.var.type = "listing" } else if(data.isEvents != undefined && data.media != undefined){ helpers.var.imageType = data.media[0] helpers.var.type = "event" } else if(data.isOffers != undefined && data.image != undefined){ helpers.var.imageType = data.image.resource helpers.var.type = "offer" } else if(data.media == undefined || data.image == undefined){ helpers.var.imageType = helpers.plugins.cloudinary.createResource({ imageUrl : helpers.plugins.sv_site.siteConfig.custom.placeholderImageUrl }); } })}} {{:latitude}} {{:longitude}} <div class="shared-item item" data-recid="{{recid}}" data-type="{{~var.type}}" > <a {{:isOffers}}data-locationid="offer_{{recid}}_listing_{{listings.0.recid}}"{{/isOffers}} data-click-placemark href="#" data-gtm-click data-gtm-vars='{ "tCore" : { "action" : "{{~var.template}}_icon_map_it" }, "tClient" : { "eventAction" : "Map", "lt" : "Map", "ot" : "Button" } }' data-sv-open-map> <div class="image-container"> {{~setvar("noPlaceholder", data.media && (data.media.length > 1 || data.media[0].mediatype !== "Logo"))}} {{:~var.noPlaceholder}} <img src="{{~var.imageType.getThumbnailUrl(helpers.var.image_settings)}}" class="thumb"> {{?}} <img src="{{~var.imageType.getThumbnailUrl(helpers.var.image_settings_fit)}}" class="thumb"> {{/}} {{:isEvents}} {{:nextDate}} <div class="image-date-block"> <span class="month">{{~var.nextDate.format('MMM')}}</span> <span class="day">{{~var.nextDate.format('DD')}}</span> </div> {{/}} {{/}} </div> <div class="contents"> <h2>{{title}}</h2> {{:isOffers}} {{~exec(function() { if (data.redeemstart) data.redeemstart = helpers.plugins.clientMoment(data.redeemstart); if (data.redeemend) data.redeemend = helpers.plugins.clientMoment(data.redeemend); })}} <div class="dates"> Valid: {{!redeemstart}}{{!redeemend}}Always{{/redeemend}}{{/redeemstart}} {{:redeemstart}}{{:redeemend}}{{redeemstart.format("LL")}} - {{redeemend.format("LL")}}{{/redeemend}}{{/redeemstart}} {{:redeemstart}}{{!redeemend}}Starting {{redeemstart.format("LL")}}{{/redeemend}}{{/redeemstart}} {{:redeemend}}{{!redeemstart}}Ending {{redeemend.format("LL")}}{{/redeemstart}}{{/redeemend}} </div> {{/}} {{:distance}} <p class="address">{{distance.format({ unit : "miles" })}} Miles From You</p> {{/distance}} {{:isOffers}} {{:listings}} {{#listings.0}} <p class="address"> {{company}}</p> {{/}} {{/}} {{?}} <p class="address"><i class="fa fa-map-marker"></i> {{~var.addressLine}}</p> {{/}} </div> </a> </div> {{/}} {{/}}</script> <script type="text/template" data-sv-pagerMapTemplate>{{~setVar("template", "custom_list_map_pager")}} <button class="{{!pager.hasPreviousPage}}disabled{{/pager.hasPreviousPage}} map-pager-button" data-row="{{pager.previousPageStartRow}}" data-query-link='{ "delta" : { "skip" : "{{pager.previousPageStartIndex}}" } }' data-gtm-click data-gtm-vars='{ "tCore" : { "action" : "{{~var.template}}_prv" }, "tClient_ga4": {"eventName": "filter", "filterType": "Previous Map Page | Page Changed"} }' data-sv-map-pager-button>Prev</button> <button class="{{!pager.hasNextPage}}disabled{{/pager.hasNextPage}} map-pager-button" data-row="{{pager.nextPageStartRow}}" data-query-link='{ "delta" : { "skip" : "{{pager.nextPageStartIndex}}" } }' data-gtm-click data-gtm-vars='{ "tCore" : { "action" : "{{~var.template}}_nxt" }, "tClient_ga4": {"eventName": "filter", "filterType": "Next Map Page | Page Changed"} }' data-sv-map-pager-button>Next</button></script> <script type="text/template" data-sv-pagerMapCounterTemplate>{{~setVar("template", "custom_list_map_pager")}} Page: {{pager.currentPage}} of {{pager.totalPages}}</script> <script type="text/template" data-sv-infoWindowTemplate>{{!-- The url and the title should always be the same content, so never pass a title to a listing but a url to an offer, or vice-versa The nearbyRecid should only be passed on offer/listing/event detail The location and locationUrl should be passed from event layout and offer layout --}} <div class="infoWindow core-styles"> <h5> {{:url}}<a href="{{url}}" data-gtm-click data-gtm-vars='{"tClient_ga4": { "eventName": "link_to_detail", "linkObject": "Info Window | Title", "itemType": "{{%%itemType}}", "crmCatSubcat": "{{%%ga4_cats}}", "itemName": "{{%%title}}" }}'>{{/}} {{title}} {{:url}}</a>{{/}} </h5> <ul class="contactInfo"> {{:location}} <li>Location: {{:locationUrl}}<a href="{{locationUrl}}">{{/}} {{%location}} {{:locationUrl}}</a>{{/}} </li> {{/location}} {{:address1}}<li>Address: {{address1}}</li>{{/}} <li> <div class="shared-action-items"> {{:url}} <span><a href="{{%url}}" data-gtm-click data-gtm-vars='{"tClient_ga4": { "eventName": "link_to_detail", "linkObject": "Info Window | Details", "itemType": "{{%%itemType}}", "crmCatSubcat": "{{%%ga4_cats}}", "itemName": "{{%%title}}" }}'>Details</a></span> {{/url}} </div> </li> </ul> </div></script> <script type="text/template" data-sv-liItems>{{~exec(function() { // svdm: capitalize the name for analytics purposes. data.seoAction = data.name.charAt(0).toUpperCase() + data.name.slice(1); })}} {{+field_link_or_label}} {{:extra.url}} <a href="{{extra.url}}" data-gtm-click data-gtm-vars='{ "tClient" : { "eventAction" : "{{seoAction}}", "ot" : "Text", "lt" : "{{seoAction}}" }, "tClient_ga4" : { "eventName" : "link_to_detail", "linkObject" : "Link to Venue", "itemType" : "listings", "itemName" : "{{%%value}}", "crmCatSubcat" : "{{%%extra.catname}} | {{%%extra.subcatname}}" } }' > {{/}} {{value}} {{:extra.url}} </a> {{/}} {{/}} {{+field_list_of_link_or_label}} {{#value}} <span class="item"> {{~fill(helpers.partial("field_link_or_label"), { value : data.value, extra : { url : data.url } }, {}, global)}}{{!@last}}, {{/}} </span> {{/}} {{/}} {{+field_times}} {{:item.startTime}} {{~plugins.moment(data.item.startTime, "hh:mm:ss").format('h:mm A')}} {{:item.endTime}}to {{~plugins.moment(data.item.endTime, "hh:mm:ss").format('h:mm A')}}{{/}} {{?}} {{value}} {{/}} {{/}} {{+field_phone}} <a data-gtm-click data-gtm-vars='{ "tCore" : { "action" : "common_custom_li_items_text_phone" }, "tClient" : { "eventAction" : "Phone", "lt" : "Phone", "ot" : "Text" }, "tClient_ga4": {"eventName": "partner_referral", "linkObject": "Phone"} }' href="tel:{{~exec(data.value.replace(/\D/g, ""))}}" title="Click to Call">{{value}}</a>{{:extra.ext}} ext. {{extra.ext}}{{/}} {{/}} {{+field_distance}} {{value.format({ unit : "miles" })}} Miles From You {{/}} {{+field_rating}} {{~setVar("ratingPercent", (data.value / 5) * 100)}} <li class="ratings-back"> <span style="width:{{~var.ratingPercent}}%" class="ratings-front"></span> </li> {{/}} {{:value}} <li class="{{liClass}}" data-name="{{name}}" data-value-template="{{valueTemplate}}"> {{:label}}<span class="info-list-label {{labelClass}}">{{label}}:</span>{{/label}} <span class="info-list-value {{valueClass}}"> {{:valueTemplate}} {{~fill(helpers.plugins.stringLib.decodeScriptTags(helpers.partial("field_" + data.valueTemplate)), data, { field_link_or_label : helpers.partial("field_link_or_label") }, global)}} {{?}} {{value}} {{/}} </span> </li> {{/}}</script> <script type="text/template" data-sv-mainTemplate> {{:data}} {{#data}} {{>listingListItem}} {{/}} {{/data}} {{!data}} <h3 class="no-results">There are no listings that match your query.</h3> {{/data}} </script> <script type="text/template" data-sv-mapMainTemplate> {{:data}} {{#data}} {{~exec(function() { data.isListings = true;})}} {{>listMapItem}} {{/}} {{?}} <h4 class="no-results">There are no listings that match your query.</h4> {{/}} </script> <ul class="mobile-options" data-sv-mobile-options="" data-gtm-vars='{"tClient_ga4": {"eventName": "filter"}}'> <li> <a class="tab-title" href="#" data-sv-mobile-options-display="">Filters <i class="fa fa-angle-down" aria-hidden="true"></i></a> <div class="options-dropdown"> <div class="mobile-filters-wrapper"> <div class="filters" data-sv-filters="" data-gtm-vars='{ "tClient_ga4" : { "eventName" : "filter" } }'> <div class="close" data-sv-close-filters=""></div> <form> <input type="hidden" name="catid" value="4"/> <input type="hidden" name="skip" value="0"/> <input type="hidden" name="alphaend" value=""/> <input type="hidden" name="alphastart" value=""/> <input type="hidden" name="sort" value=""/> <label class="keyword">KEYWORD SEARCH</label> <div class="form-group"> <input class="shared-input input-text" name="keyword" type="text"> <button class="shared-submit"><i class="fa fa-search"></i></button> </div> <div class="top-label"> <h3 class="filterby">Filter by: </h3><a href="#" class="clear-filters" data-sv-clear-filters="" data-gtm-click data-gtm-vars='{ "tClient" : { "eventAction" : "Filter Change", "eventLabel" : "Clear Filters" }, "tClient_ga4": { "itemType": "listings", "eventName": "filter", "filterType": "Clear Filters" } }'>Clear Filters</a> </div> <h4>Category</h4> <ul class="filter-items"> <li><input type="checkbox" name="subcatids" id="subcat-1" class="shared-input input-checkbox" value="1860" data-gtm-click data-gtm-vars='{ "tCore" : { "action" : "listings_custom_listings_list_filter_subcats_check", "label" : "Amusement" }, "tClient" : { "eventAction" : "Filter Change", "eventLabel" : "Category | Amusement" }, "tClient_ga4" : { "filterType" : "Amusement | Category" } }'> <label for="subcat-1">Amusement<span class="filter-count"></span></label></li> <li><input type="checkbox" name="subcatids" id="subcat-2" class="shared-input input-checkbox" value="33" data-gtm-click data-gtm-vars='{ "tCore" : { "action" : "listings_custom_listings_list_filter_subcats_check", "label" : "Arts & Culture" }, "tClient" : { "eventAction" : "Filter Change", "eventLabel" : "Category | Arts & Culture" }, "tClient_ga4" : { "filterType" : "Arts%20%26%20Culture | Category" } }'> <label for="subcat-2">Arts & Culture<span class="filter-count"></span></label></li> <li><input type="checkbox" name="subcatids" id="subcat-3" class="shared-input input-checkbox" value="2234" data-gtm-click data-gtm-vars='{ "tCore" : { "action" : "listings_custom_listings_list_filter_subcats_check", "label" : "Farmers Market" }, "tClient" : { "eventAction" : "Filter Change", "eventLabel" : "Category | Farmers Market" }, "tClient_ga4" : { "filterType" : "Farmers%20Market | Category" } }'> <label for="subcat-3">Farmers Market<span class="filter-count"></span></label></li> <li><input type="checkbox" name="subcatids" id="subcat-4" class="shared-input input-checkbox" value="1855" data-gtm-click data-gtm-vars='{ "tCore" : { "action" : "listings_custom_listings_list_filter_subcats_check", "label" : "Bike/Hike/Walk" }, "tClient" : { "eventAction" : "Filter Change", "eventLabel" : "Category | Bike/Hike/Walk" }, "tClient_ga4" : { "filterType" : "Bike%2FHike%2FWalk | Category" } }'> <label for="subcat-4">Bike/Hike/Walk<span class="filter-count"></span></label></li> <li><input type="checkbox" name="subcatids" id="subcat-5" class="shared-input input-checkbox" value="1905" data-gtm-click data-gtm-vars='{ "tCore" : { "action" : "listings_custom_listings_list_filter_subcats_check", "label" : "Bowling" }, "tClient" : { "eventAction" : "Filter Change", "eventLabel" : "Category | Bowling" }, "tClient_ga4" : { "filterType" : "Bowling | Category" } }'> <label for="subcat-5">Bowling<span class="filter-count"></span></label></li> <li><input type="checkbox" name="subcatids" id="subcat-6" class="shared-input input-checkbox" value="1906" data-gtm-click data-gtm-vars='{ "tCore" : { "action" : "listings_custom_listings_list_filter_subcats_check", "label" : "Climbing" }, "tClient" : { "eventAction" : "Filter Change", "eventLabel" : "Category | Climbing" }, "tClient_ga4" : { "filterType" : "Climbing | Category" } }'> <label for="subcat-6">Climbing<span class="filter-count"></span></label></li> <li><input type="checkbox" name="subcatids" id="subcat-7" class="shared-input input-checkbox" value="1858" data-gtm-click data-gtm-vars='{ "tCore" : { "action" : "listings_custom_listings_list_filter_subcats_check", "label" : "Cross-Country Skiing" }, "tClient" : { "eventAction" : "Filter Change", "eventLabel" : "Category | Cross-Country Skiing" }, "tClient_ga4" : { "filterType" : "Cross-Country%20Skiing | Category" } }'> <label for="subcat-7">Cross-Country Skiing<span class="filter-count"></span></label></li> <li><input type="checkbox" name="subcatids" id="subcat-8" class="shared-input input-checkbox" value="2110" data-gtm-click data-gtm-vars='{ "tCore" : { "action" : "listings_custom_listings_list_filter_subcats_check", "label" : "Crafts" }, "tClient" : { "eventAction" : "Filter Change", "eventLabel" : "Category | Crafts" }, "tClient_ga4" : { "filterType" : "Crafts | Category" } }'> <label for="subcat-8">Crafts<span class="filter-count"></span></label></li> <li><input type="checkbox" name="subcatids" id="subcat-9" class="shared-input input-checkbox" value="2238" data-gtm-click data-gtm-vars='{ "tCore" : { "action" : "listings_custom_listings_list_filter_subcats_check", "label" : "Kid Friendly" }, "tClient" : { "eventAction" : "Filter Change", "eventLabel" : "Category | Kid Friendly" }, "tClient_ga4" : { "filterType" : "Kid%20Friendly | Category" } }'> <label for="subcat-9">Kid Friendly<span class="filter-count"></span></label></li> <li><input type="checkbox" name="subcatids" id="subcat-10" class="shared-input input-checkbox" value="36" data-gtm-click data-gtm-vars='{ "tCore" : { "action" : "listings_custom_listings_list_filter_subcats_check", "label" : "Day Trips" }, "tClient" : { "eventAction" : "Filter Change", "eventLabel" : "Category | Day Trips" }, "tClient_ga4" : { "filterType" : "Day%20Trips | Category" } }'> <label for="subcat-10">Day Trips<span class="filter-count"></span></label></li> <li><input type="checkbox" name="subcatids" id="subcat-11" class="shared-input input-checkbox" value="1863" data-gtm-click data-gtm-vars='{ "tCore" : { "action" : "listings_custom_listings_list_filter_subcats_check", "label" : "Disc Golf" }, "tClient" : { "eventAction" : "Filter Change", "eventLabel" : "Category | Disc Golf" }, "tClient_ga4" : { "filterType" : "Disc%20Golf | Category" } }'> <label for="subcat-11">Disc Golf<span class="filter-count"></span></label></li> <li><input type="checkbox" name="subcatids" id="subcat-12" class="shared-input input-checkbox" value="1856" data-gtm-click data-gtm-vars='{ "tCore" : { "action" : "listings_custom_listings_list_filter_subcats_check", "label" : "Golf" }, "tClient" : { "eventAction" : "Filter Change", "eventLabel" : "Category | Golf" }, "tClient_ga4" : { "filterType" : "Golf | Category" } }'> <label for="subcat-12">Golf<span class="filter-count"></span></label></li> <li><input type="checkbox" name="subcatids" id="subcat-13" class="shared-input input-checkbox" value="1918" data-gtm-click data-gtm-vars='{ "tCore" : { "action" : "listings_custom_listings_list_filter_subcats_check", "label" : "Indoor Golf" }, "tClient" : { "eventAction" : "Filter Change", "eventLabel" : "Category | Indoor Golf" }, "tClient_ga4" : { "filterType" : "Indoor%20Golf | Category" } }'> <label for="subcat-13">Indoor Golf<span class="filter-count"></span></label></li> <li><input type="checkbox" name="subcatids" id="subcat-14" class="shared-input input-checkbox" value="2347" data-gtm-click data-gtm-vars='{ "tCore" : { "action" : "listings_custom_listings_list_filter_subcats_check", "label" : "Health, Fitness & Wellness" }, "tClient" : { "eventAction" : "Filter Change", "eventLabel" : "Category | Health, Fitness & Wellness" }, "tClient_ga4" : { "filterType" : "Health%2C%20Fitness%20%26%20Wellness | Category" } }'> <label for="subcat-14">Health, Fitness & Wellness<span class="filter-count"></span></label></li> <li><input type="checkbox" name="subcatids" id="subcat-15" class="shared-input input-checkbox" value="34" data-gtm-click data-gtm-vars='{ "tCore" : { "action" : "listings_custom_listings_list_filter_subcats_check", "label" : "History & Heritage" }, "tClient" : { "eventAction" : "Filter Change", "eventLabel" : "Category | History & Heritage" }, "tClient_ga4" : { "filterType" : "History%20%26%20Heritage | Category" } }'> <label for="subcat-15">History & Heritage<span class="filter-count"></span></label></li> <li><input type="checkbox" name="subcatids" id="subcat-16" class="shared-input input-checkbox" value="1857" data-gtm-click data-gtm-vars='{ "tCore" : { "action" : "listings_custom_listings_list_filter_subcats_check", "label" : "Ice Skating" }, "tClient" : { "eventAction" : "Filter Change", "eventLabel" : "Category | Ice Skating" }, "tClient_ga4" : { "filterType" : "Ice%20Skating | Category" } }'> <label for="subcat-16">Ice Skating<span class="filter-count"></span></label></li> <li><input type="checkbox" name="subcatids" id="subcat-17" class="shared-input input-checkbox" value="35" data-gtm-click data-gtm-vars='{ "tCore" : { "action" : "listings_custom_listings_list_filter_subcats_check", "label" : "Live Entertainment" }, "tClient" : { "eventAction" : "Filter Change", "eventLabel" : "Category | Live Entertainment" }, "tClient_ga4" : { "filterType" : "Live%20Entertainment | Category" } }'> <label for="subcat-17">Live Entertainment<span class="filter-count"></span></label></li> <li><input type="checkbox" name="subcatids" id="subcat-18" class="shared-input input-checkbox" value="37" data-gtm-click data-gtm-vars='{ "tCore" : { "action" : "listings_custom_listings_list_filter_subcats_check", "label" : "Movie Theaters" }, "tClient" : { "eventAction" : "Filter Change", "eventLabel" : "Category | Movie Theaters" }, "tClient_ga4" : { "filterType" : "Movie%20Theaters | Category" } }'> <label for="subcat-18">Movie Theaters<span class="filter-count"></span></label></li> <li><input type="checkbox" name="subcatids" id="subcat-19" class="shared-input input-checkbox" value="1917" data-gtm-click data-gtm-vars='{ "tCore" : { "action" : "listings_custom_listings_list_filter_subcats_check", "label" : "Nature Centers" }, "tClient" : { "eventAction" : "Filter Change", "eventLabel" : "Category | Nature Centers" }, "tClient_ga4" : { "filterType" : "Nature%20Centers | Category" } }'> <label for="subcat-19">Nature Centers<span class="filter-count"></span></label></li> <li><input type="checkbox" name="subcatids" id="subcat-20" class="shared-input input-checkbox" value="2249" data-gtm-click data-gtm-vars='{ "tCore" : { "action" : "listings_custom_listings_list_filter_subcats_check", "label" : "Outdoor Adventure" }, "tClient" : { "eventAction" : "Filter Change", "eventLabel" : "Category | Outdoor Adventure" }, "tClient_ga4" : { "filterType" : "Outdoor%20Adventure | Category" } }'> <label for="subcat-20">Outdoor Adventure<span class="filter-count"></span></label></li> <li><input type="checkbox" name="subcatids" id="subcat-21" class="shared-input input-checkbox" value="1861" data-gtm-click data-gtm-vars='{ "tCore" : { "action" : "listings_custom_listings_list_filter_subcats_check", "label" : "Outdoor Guide Service" }, "tClient" : { "eventAction" : "Filter Change", "eventLabel" : "Category | Outdoor Guide Service" }, "tClient_ga4" : { "filterType" : "Outdoor%20Guide%20Service | Category" } }'> <label for="subcat-21">Outdoor Guide Service<span class="filter-count"></span></label></li> <li><input type="checkbox" name="subcatids" id="subcat-22" class="shared-input input-checkbox" value="2246" data-gtm-click data-gtm-vars='{ "tCore" : { "action" : "listings_custom_listings_list_filter_subcats_check", "label" : "Parks" }, "tClient" : { "eventAction" : "Filter Change", "eventLabel" : "Category | Parks" }, "tClient_ga4" : { "filterType" : "Parks | Category" } }'> <label for="subcat-22">Parks<span class="filter-count"></span></label></li> <li><input type="checkbox" name="subcatids" id="subcat-23" class="shared-input input-checkbox" value="1853" data-gtm-click data-gtm-vars='{ "tCore" : { "action" : "listings_custom_listings_list_filter_subcats_check", "label" : "Public Swimming" }, "tClient" : { "eventAction" : "Filter Change", "eventLabel" : "Category | Public Swimming" }, "tClient_ga4" : { "filterType" : "Public%20Swimming | Category" } }'> <label for="subcat-23">Public Swimming<span class="filter-count"></span></label></li> <li><input type="checkbox" name="subcatids" id="subcat-24" class="shared-input input-checkbox" value="1870" data-gtm-click data-gtm-vars='{ "tCore" : { "action" : "listings_custom_listings_list_filter_subcats_check", "label" : "Sledding" }, "tClient" : { "eventAction" : "Filter Change", "eventLabel" : "Category | Sledding" }, "tClient_ga4" : { "filterType" : "Sledding | Category" } }'> <label for="subcat-24">Sledding<span class="filter-count"></span></label></li> <li><input type="checkbox" name="subcatids" id="subcat-25" class="shared-input input-checkbox" value="1859" data-gtm-click data-gtm-vars='{ "tCore" : { "action" : "listings_custom_listings_list_filter_subcats_check", "label" : "Spectator Sports" }, "tClient" : { "eventAction" : "Filter Change", "eventLabel" : "Category | Spectator Sports" }, "tClient_ga4" : { "filterType" : "Spectator%20Sports | Category" } }'> <label for="subcat-25">Spectator Sports<span class="filter-count"></span></label></li> <li><input type="checkbox" name="subcatids" id="subcat-26" class="shared-input input-checkbox" value="1854" data-gtm-click data-gtm-vars='{ "tCore" : { "action" : "listings_custom_listings_list_filter_subcats_check", "label" : "Tennis" }, "tClient" : { "eventAction" : "Filter Change", "eventLabel" : "Category | Tennis" }, "tClient_ga4" : { "filterType" : "Tennis | Category" } }'> <label for="subcat-26">Tennis<span class="filter-count"></span></label></li> <li><input type="checkbox" name="subcatids" id="subcat-27" class="shared-input input-checkbox" value="1907" data-gtm-click data-gtm-vars='{ "tCore" : { "action" : "listings_custom_listings_list_filter_subcats_check", "label" : "Trail Rides" }, "tClient" : { "eventAction" : "Filter Change", "eventLabel" : "Category | Trail Rides" }, "tClient_ga4" : { "filterType" : "Trail%20Rides | Category" } }'> <label for="subcat-27">Trail Rides<span class="filter-count"></span></label></li> <li class="showmore" data-sv-filter-showmore data-gtm-click data-gtm-vars='{ "tCore" : { "action" : "listings_custom_listings_list_filter_subcats_showmore" }, "tClient_ga4" : { "filterType" : "Toggle Show More | Category" } }'>Show More <i class="fa fa-caret-down"></i></li> <li class="nofilters">No available filters</li> </ul> </form> </div> </div> </div> </li> <li> <a href="#" data-sv-mobile-options-display="">View <i class="fa fa-angle-down"></i></a> <div class="options-dropdown centered"> <ul class="options"> <li><a href="#" class="active" data-sv-viewby="grid" data-gtm-click data-gtm-vars='{"tClient_ga4" : { "filterType" : "Grid | View by" }}'><i class="fa fa-th"></i> Grid</a></li> <li><a href="#" data-sv-viewby="list" data-gtm-click data-gtm-vars='{"tClient_ga4" : { "filterType" : "List | View by" }}'><i class="fa fa-list"></i> List</a></li> <li><a href="#" data-sv-viewby="map" data-gtm-click data-gtm-vars='{"tClient_ga4" : { "filterType" : "Map | View by" }}'><i class="fa fa-map-marker"></i> Map</a></li> </ul> </div> </li> <li data-sv-distanceSort> <a href="#" data-sv-mobile-options-display="">Sort <i class="fa fa-angle-down"></i></a> <div class="options-dropdown centered"> <ul class="options"> <li class="title">Sort by:</li> <li><a data-gtm-click data-gtm-vars='{ "tCore" : { "label" : "qualityScore" }, "tClient" : { "eventAction" : "Filter Change", "eventLabel" : "Sort | Recommended" }, "tClient_ga4" : { "filterType" : "Recommended | Sort by" } }' data-query-link='{ "delta" : { "sort" : "qualityScore", "skip" : "", "dtnids" :"" }, "selectedIgnore" : ["skip", "dtnids"] }'>Recommended</a></li> <li class="distanceSort"><a data-gtm-click data-gtm-vars='{ "tCore" : { "label" : "distance" }, "tClient" : { "eventAction" : "Filter Change", "eventLabel" : "Sort | Distance" }, "tClient_ga4" : { "filterType" : "Distance | Sort by" } }' data-query-link='{ "delta" : { "sort" : "distance", "skip" : "", "dtnids" : "" }, "selectedIgnore" : ["skip", "dtnids"] }'>Distance</a></li> </ul> </div> </li> </ul> <div class="desktop-filters"> <div class="filters-wrapper"> <div class="filters" data-sv-filters="" data-gtm-vars='{ "tClient_ga4" : { "eventName" : "filter" } }'> <div class="close" data-sv-close-filters=""></div> <form> <input type="hidden" name="catid" value="4"/> <input type="hidden" name="skip" value="0"/> <input type="hidden" name="alphaend" value=""/> <input type="hidden" name="alphastart" value=""/> <input type="hidden" name="sort" value=""/> <label class="keyword">KEYWORD SEARCH</label> <div class="form-group"> <input class="shared-input input-text" name="keyword" type="text"> <button class="shared-submit"><i class="fa fa-search"></i></button> </div> <div class="top-label"> <h3 class="filterby">Filter by: </h3><a href="#" class="clear-filters" data-sv-clear-filters="" data-gtm-click data-gtm-vars='{ "tClient" : { "eventAction" : "Filter Change", "eventLabel" : "Clear Filters" }, "tClient_ga4": { "itemType": "listings", "eventName": "filter", "filterType": "Clear Filters" } }'>Clear Filters</a> </div> <h4>Category</h4> <ul class="filter-items"> <li><input type="checkbox" name="subcatids" id="subcat-1" class="shared-input input-checkbox" value="1860" data-gtm-click data-gtm-vars='{ "tCore" : { "action" : "listings_custom_listings_list_filter_subcats_check", "label" : "Amusement" }, "tClient" : { "eventAction" : "Filter Change", "eventLabel" : "Category | Amusement" }, "tClient_ga4" : { "filterType" : "Amusement | Category" } }'> <label for="subcat-1">Amusement<span class="filter-count"></span></label></li> <li><input type="checkbox" name="subcatids" id="subcat-2" class="shared-input input-checkbox" value="33" data-gtm-click data-gtm-vars='{ "tCore" : { "action" : "listings_custom_listings_list_filter_subcats_check", "label" : "Arts & Culture" }, "tClient" : { "eventAction" : "Filter Change", "eventLabel" : "Category | Arts & Culture" }, "tClient_ga4" : { "filterType" : "Arts%20%26%20Culture | Category" } }'> <label for="subcat-2">Arts & Culture<span class="filter-count"></span></label></li> <li><input type="checkbox" name="subcatids" id="subcat-3" class="shared-input input-checkbox" value="2234" data-gtm-click data-gtm-vars='{ "tCore" : { "action" : "listings_custom_listings_list_filter_subcats_check", "label" : "Farmers Market" }, "tClient" : { "eventAction" : "Filter Change", "eventLabel" : "Category | Farmers Market" }, "tClient_ga4" : { "filterType" : "Farmers%20Market | Category" } }'> <label for="subcat-3">Farmers Market<span class="filter-count"></span></label></li> <li><input type="checkbox" name="subcatids" id="subcat-4" class="shared-input input-checkbox" value="1855" data-gtm-click data-gtm-vars='{ "tCore" : { "action" : "listings_custom_listings_list_filter_subcats_check", "label" : "Bike/Hike/Walk" }, "tClient" : { "eventAction" : "Filter Change", "eventLabel" : "Category | Bike/Hike/Walk" }, "tClient_ga4" : { "filterType" : "Bike%2FHike%2FWalk | Category" } }'> <label for="subcat-4">Bike/Hike/Walk<span class="filter-count"></span></label></li> <li><input type="checkbox" name="subcatids" id="subcat-5" class="shared-input input-checkbox" value="1905" data-gtm-click data-gtm-vars='{ "tCore" : { "action" : "listings_custom_listings_list_filter_subcats_check", "label" : "Bowling" }, "tClient" : { "eventAction" : "Filter Change", "eventLabel" : "Category | Bowling" }, "tClient_ga4" : { "filterType" : "Bowling | Category" } }'> <label for="subcat-5">Bowling<span class="filter-count"></span></label></li> <li><input type="checkbox" name="subcatids" id="subcat-6" class="shared-input input-checkbox" value="1906" data-gtm-click data-gtm-vars='{ "tCore" : { "action" : "listings_custom_listings_list_filter_subcats_check", "label" : "Climbing" }, "tClient" : { "eventAction" : "Filter Change", "eventLabel" : "Category | Climbing" }, "tClient_ga4" : { "filterType" : "Climbing | Category" } }'> <label for="subcat-6">Climbing<span class="filter-count"></span></label></li> <li><input type="checkbox" name="subcatids" id="subcat-7" class="shared-input input-checkbox" value="1858" data-gtm-click data-gtm-vars='{ "tCore" : { "action" : "listings_custom_listings_list_filter_subcats_check", "label" : "Cross-Country Skiing" }, "tClient" : { "eventAction" : "Filter Change", "eventLabel" : "Category | Cross-Country Skiing" }, "tClient_ga4" : { "filterType" : "Cross-Country%20Skiing | Category" } }'> <label for="subcat-7">Cross-Country Skiing<span class="filter-count"></span></label></li> <li><input type="checkbox" name="subcatids" id="subcat-8" class="shared-input input-checkbox" value="2110" data-gtm-click data-gtm-vars='{ "tCore" : { "action" : "listings_custom_listings_list_filter_subcats_check", "label" : "Crafts" }, "tClient" : { "eventAction" : "Filter Change", "eventLabel" : "Category | Crafts" }, "tClient_ga4" : { "filterType" : "Crafts | Category" } }'> <label for="subcat-8">Crafts<span class="filter-count"></span></label></li> <li><input type="checkbox" name="subcatids" id="subcat-9" class="shared-input input-checkbox" value="2238" data-gtm-click data-gtm-vars='{ "tCore" : { "action" : "listings_custom_listings_list_filter_subcats_check", "label" : "Kid Friendly" }, "tClient" : { "eventAction" : "Filter Change", "eventLabel" : "Category | Kid Friendly" }, "tClient_ga4" : { "filterType" : "Kid%20Friendly | Category" } }'> <label for="subcat-9">Kid Friendly<span class="filter-count"></span></label></li> <li><input type="checkbox" name="subcatids" id="subcat-10" class="shared-input input-checkbox" value="36" data-gtm-click data-gtm-vars='{ "tCore" : { "action" : "listings_custom_listings_list_filter_subcats_check", "label" : "Day Trips" }, "tClient" : { "eventAction" : "Filter Change", "eventLabel" : "Category | Day Trips" }, "tClient_ga4" : { "filterType" : "Day%20Trips | Category" } }'> <label for="subcat-10">Day Trips<span class="filter-count"></span></label></li> <li><input type="checkbox" name="subcatids" id="subcat-11" class="shared-input input-checkbox" value="1863" data-gtm-click data-gtm-vars='{ "tCore" : { "action" : "listings_custom_listings_list_filter_subcats_check", "label" : "Disc Golf" }, "tClient" : { "eventAction" : "Filter Change", "eventLabel" : "Category | Disc Golf" }, "tClient_ga4" : { "filterType" : "Disc%20Golf | Category" } }'> <label for="subcat-11">Disc Golf<span class="filter-count"></span></label></li> <li><input type="checkbox" name="subcatids" id="subcat-12" class="shared-input input-checkbox" value="1856" data-gtm-click data-gtm-vars='{ "tCore" : { "action" : "listings_custom_listings_list_filter_subcats_check", "label" : "Golf" }, "tClient" : { "eventAction" : "Filter Change", "eventLabel" : "Category | Golf" }, "tClient_ga4" : { "filterType" : "Golf | Category" } }'> <label for="subcat-12">Golf<span class="filter-count"></span></label></li> <li><input type="checkbox" name="subcatids" id="subcat-13" class="shared-input input-checkbox" value="1918" data-gtm-click data-gtm-vars='{ "tCore" : { "action" : "listings_custom_listings_list_filter_subcats_check", "label" : "Indoor Golf" }, "tClient" : { "eventAction" : "Filter Change", "eventLabel" : "Category | Indoor Golf" }, "tClient_ga4" : { "filterType" : "Indoor%20Golf | Category" } }'> <label for="subcat-13">Indoor Golf<span class="filter-count"></span></label></li> <li><input type="checkbox" name="subcatids" id="subcat-14" class="shared-input input-checkbox" value="2347" data-gtm-click data-gtm-vars='{ "tCore" : { "action" : "listings_custom_listings_list_filter_subcats_check", "label" : "Health, Fitness & Wellness" }, "tClient" : { "eventAction" : "Filter Change", "eventLabel" : "Category | Health, Fitness & Wellness" }, "tClient_ga4" : { "filterType" : "Health%2C%20Fitness%20%26%20Wellness | Category" } }'> <label for="subcat-14">Health, Fitness & Wellness<span class="filter-count"></span></label></li> <li><input type="checkbox" name="subcatids" id="subcat-15" class="shared-input input-checkbox" value="34" data-gtm-click data-gtm-vars='{ "tCore" : { "action" : "listings_custom_listings_list_filter_subcats_check", "label" : "History & Heritage" }, "tClient" : { "eventAction" : "Filter Change", "eventLabel" : "Category | History & Heritage" }, "tClient_ga4" : { "filterType" : "History%20%26%20Heritage | Category" } }'> <label for="subcat-15">History & Heritage<span class="filter-count"></span></label></li> <li><input type="checkbox" name="subcatids" id="subcat-16" class="shared-input input-checkbox" value="1857" data-gtm-click data-gtm-vars='{ "tCore" : { "action" : "listings_custom_listings_list_filter_subcats_check", "label" : "Ice Skating" }, "tClient" : { "eventAction" : "Filter Change", "eventLabel" : "Category | Ice Skating" }, "tClient_ga4" : { "filterType" : "Ice%20Skating | Category" } }'> <label for="subcat-16">Ice Skating<span class="filter-count"></span></label></li> <li><input type="checkbox" name="subcatids" id="subcat-17" class="shared-input input-checkbox" value="35" data-gtm-click data-gtm-vars='{ "tCore" : { "action" : "listings_custom_listings_list_filter_subcats_check", "label" : "Live Entertainment" }, "tClient" : { "eventAction" : "Filter Change", "eventLabel" : "Category | Live Entertainment" }, "tClient_ga4" : { "filterType" : "Live%20Entertainment | Category" } }'> <label for="subcat-17">Live Entertainment<span class="filter-count"></span></label></li> <li><input type="checkbox" name="subcatids" id="subcat-18" class="shared-input input-checkbox" value="37" data-gtm-click data-gtm-vars='{ "tCore" : { "action" : "listings_custom_listings_list_filter_subcats_check", "label" : "Movie Theaters" }, "tClient" : { "eventAction" : "Filter Change", "eventLabel" : "Category | Movie Theaters" }, "tClient_ga4" : { "filterType" : "Movie%20Theaters | Category" } }'> <label for="subcat-18">Movie Theaters<span class="filter-count"></span></label></li> <li><input type="checkbox" name="subcatids" id="subcat-19" class="shared-input input-checkbox" value="1917" data-gtm-click data-gtm-vars='{ "tCore" : { "action" : "listings_custom_listings_list_filter_subcats_check", "label" : "Nature Centers" }, "tClient" : { "eventAction" : "Filter Change", "eventLabel" : "Category | Nature Centers" }, "tClient_ga4" : { "filterType" : "Nature%20Centers | Category" } }'> <label for="subcat-19">Nature Centers<span class="filter-count"></span></label></li> <li><input type="checkbox" name="subcatids" id="subcat-20" class="shared-input input-checkbox" value="2249" data-gtm-click data-gtm-vars='{ "tCore" : { "action" : "listings_custom_listings_list_filter_subcats_check", "label" : "Outdoor Adventure" }, "tClient" : { "eventAction" : "Filter Change", "eventLabel" : "Category | Outdoor Adventure" }, "tClient_ga4" : { "filterType" : "Outdoor%20Adventure | Category" } }'> <label for="subcat-20">Outdoor Adventure<span class="filter-count"></span></label></li> <li><input type="checkbox" name="subcatids" id="subcat-21" class="shared-input input-checkbox" value="1861" data-gtm-click data-gtm-vars='{ "tCore" : { "action" : "listings_custom_listings_list_filter_subcats_check", "label" : "Outdoor Guide Service" }, "tClient" : { "eventAction" : "Filter Change", "eventLabel" : "Category | Outdoor Guide Service" }, "tClient_ga4" : { "filterType" : "Outdoor%20Guide%20Service | Category" } }'> <label for="subcat-21">Outdoor Guide Service<span class="filter-count"></span></label></li> <li><input type="checkbox" name="subcatids" id="subcat-22" class="shared-input input-checkbox" value="2246" data-gtm-click data-gtm-vars='{ "tCore" : { "action" : "listings_custom_listings_list_filter_subcats_check", "label" : "Parks" }, "tClient" : { "eventAction" : "Filter Change", "eventLabel" : "Category | Parks" }, "tClient_ga4" : { "filterType" : "Parks | Category" } }'> <label for="subcat-22">Parks<span class="filter-count"></span></label></li> <li><input type="checkbox" name="subcatids" id="subcat-23" class="shared-input input-checkbox" value="1853" data-gtm-click data-gtm-vars='{ "tCore" : { "action" : "listings_custom_listings_list_filter_subcats_check", "label" : "Public Swimming" }, "tClient" : { "eventAction" : "Filter Change", "eventLabel" : "Category | Public Swimming" }, "tClient_ga4" : { "filterType" : "Public%20Swimming | Category" } }'> <label for="subcat-23">Public Swimming<span class="filter-count"></span></label></li> <li><input type="checkbox" name="subcatids" id="subcat-24" class="shared-input input-checkbox" value="1870" data-gtm-click data-gtm-vars='{ "tCore" : { "action" : "listings_custom_listings_list_filter_subcats_check", "label" : "Sledding" }, "tClient" : { "eventAction" : "Filter Change", "eventLabel" : "Category | Sledding" }, "tClient_ga4" : { "filterType" : "Sledding | Category" } }'> <label for="subcat-24">Sledding<span class="filter-count"></span></label></li> <li><input type="checkbox" name="subcatids" id="subcat-25" class="shared-input input-checkbox" value="1859" data-gtm-click data-gtm-vars='{ "tCore" : { "action" : "listings_custom_listings_list_filter_subcats_check", "label" : "Spectator Sports" }, "tClient" : { "eventAction" : "Filter Change", "eventLabel" : "Category | Spectator Sports" }, "tClient_ga4" : { "filterType" : "Spectator%20Sports | Category" } }'> <label for="subcat-25">Spectator Sports<span class="filter-count"></span></label></li> <li><input type="checkbox" name="subcatids" id="subcat-26" class="shared-input input-checkbox" value="1854" data-gtm-click data-gtm-vars='{ "tCore" : { "action" : "listings_custom_listings_list_filter_subcats_check", "label" : "Tennis" }, "tClient" : { "eventAction" : "Filter Change", "eventLabel" : "Category | Tennis" }, "tClient_ga4" : { "filterType" : "Tennis | Category" } }'> <label for="subcat-26">Tennis<span class="filter-count"></span></label></li> <li><input type="checkbox" name="subcatids" id="subcat-27" class="shared-input input-checkbox" value="1907" data-gtm-click data-gtm-vars='{ "tCore" : { "action" : "listings_custom_listings_list_filter_subcats_check", "label" : "Trail Rides" }, "tClient" : { "eventAction" : "Filter Change", "eventLabel" : "Category | Trail Rides" }, "tClient_ga4" : { "filterType" : "Trail%20Rides | Category" } }'> <label for="subcat-27">Trail Rides<span class="filter-count"></span></label></li> <li class="showmore" data-sv-filter-showmore data-gtm-click data-gtm-vars='{ "tCore" : { "action" : "listings_custom_listings_list_filter_subcats_showmore" }, "tClient_ga4" : { "filterType" : "Toggle Show More | Category" } }'>Show More <i class="fa fa-caret-down"></i></li> <li class="nofilters">No available filters</li> </ul> </form> </div> </div> </div> <div class="results-wrapper"> <ul class="options"> <li class="title">View by:</li> <li><a class="view-option active" href="#" data-sv-viewby="grid" data-gtm-click data-gtm-vars='{ "tClient" : { "eventAction" : "Filter Change", "eventLabel" : "View By | Grid" }, "tClient_ga4" : { "filterType" : "Grid | View by", "eventName": "filter" } }'><i class="fa fa-th"></i> Grid</a></li> <li><a class="view-option" href="#" data-sv-viewby="list" data-gtm-click data-gtm-vars='{ "tClient" : { "eventAction" : "Filter Change", "eventLabel" : "View By | List" }, "tClient_ga4" : { "filterType" : "List | View by", "eventName": "filter" } }'><i class="fa fa-list"></i> List</a></li> <li><a class="view-option" href="#" data-sv-viewby="map" data-gtm-click data-gtm-vars='{ "tClient" : { "eventAction" : "Filter Change", "eventLabel" : "View By | Map" }, "tClient_ga4" : { "filterType" : "Map | View by", "eventName": "filter" } }'><i class="fa fa-map-marker"></i> Map</a></li> <li class="sort-title line" data-sv-distanceSort>Sort by:</li> <li data-sv-distanceSort><a class="view-option" data-gtm-click data-gtm-vars='{ "tCore" : { "label" : "qualityScore" }, "tClient" : { "eventAction" : "Filter Change", "eventLabel" : "Sort | Recommended" }, "tClient_ga4" : { "filterType" : "Recommended | Sort by", "eventName": "filter" } }' data-query-link='{ "delta" : { "sort" : "qualityScore", "skip" : "", "dtnids" :"" }, "selectedIgnore" : ["skip", "dtnids"] }'>Recommended</a></li> <li class="distanceSort"><a class="view-option" data-gtm-click data-gtm-vars='{ "tCore" : { "label" : "distance" }, "tClient" : { "eventAction" : "Filter Change", "eventLabel" : "Sort | Distance" }, "tClient_ga4" : { "filterType" : "Distance | Sort by", "eventName": "filter" } }' data-query-link='{ "delta" : { "sort" : "distance", "skip" : "", "dtnids" : "" }, "selectedIgnore" : ["skip", "dtnids"] }'>Distance</a></li> </ul> <div class="results" data-sv-content-height> <div class="shared-map-container" data-sv-map-container="" > <div class="nav-gear"></div> <div class="item-list shared-items"> <div class="item-list-header"> <h3>Results</h3> <div class="map-counter" data-sv-map-items-counter></div> </div> <div class="container" data-sv-map-items></div> <div class="clearfix buttons" data-sv-map-pager></div> </div> <div id="map" class="shared-map"> <div class="gMapContainer" data-gmapcontainer=""> <div class="gMapHolder" data-mapholder="" style="display: none;"></div> </div> </div> </div> <div class="shared-items-container"> <div class="shared-items" data-gtm-vars='{"tClient": {"eventCategory": "Listings", "eventAction": "Link to Detail", "ot": "Text", "vt": "Results", "ua": "Click", "lt": "Detail"}}'> <div class="container" data-sv-items-wrapper="" data-sv-items> </div> </div> </div> </div> <div class="clearfix"></div> <div class="listings-bottom"> <div class="row"> <div class="columns small-12 pagination-container bottom-container"> <div data-sv-pager></div> </div> </div> </div> </div> <div class="overlay" data-sv-listings-overlay=""></div> </div> <script> require([ "jquery", "plugins_core/main", "sv_goatee!plugins=stringLib,sv_site,crmLib,cloudinary", "geodist", "sv_crmLib", "plugins_listings_custom_map", "plugins_listings_custom_listings_lib", "sv_site", "sv_arrayLib", "sv_Pager", "sv_cloudinaryLib", "sv_asyncLib", "sv_urlLib", "sv_geolocationLib", "lodash", "sv_clientLib", "sv_load!plugins_dtn", "sv_clientMoment", "plugins_listings_custom_rates", "sv_load!site_tripbuilder", "site_gtm", "site_gamClient", "sv_siteFoundation" ], function( $, core, goatee, geodist, sv_crmLib, mapObj, lib, site, arrayLib, sv_Pager, sv_cloudinaryLib, asyncLib, urlLib, geolocationLib, lodash, clientLib, dtn, clientMoment, rates, tripbuilder, gtm, gamClient, foundation ) { var root = $("#listings_35f1d434-bd04-46fc-992a-5520bd888e3a"); var filterContainer = root.find("[data-sv-filters]"); var infoWindowTmpl = root.find("[data-sv-infoWindowTemplate]").html(); var mainTemplate = root.find("[data-sv-mainTemplate]").html(); var mapMainTemplate = root.find("[data-sv-mapMainTemplate]").html(); var mapTemplate = root.find("[data-sv-mapTemplate]").html(); var pagerTemplate = root.find("[data-sv-pagerTemplate]").html(); var pagerMapTemplate = root.find("[data-sv-pagerMapTemplate]").html(); var pagerMapCounterTemplate = root.find("[data-sv-pagerMapCounterTemplate]").html(); var listMapItem = root.find("[data-sv-listingListMapItem]").html(); var listingListItem = root.find("[data-sv-listingListItem]").html(); var liItemsTemplate = root.find("[data-sv-liItems]").html(); var widget = {"template":"list","showSearchBox":"true","listingcats":"4","amenityoptions":"none"}; var limit = 12; var maxRangeMiles = 100; var clientLat = 44.022233; var clientLong = -92.458054; var dtnargs = {"auid":"/21812118460/21812952115/21812733330","limit":10,"sort":"random"}; var validSubcats = [{"label":"Amusement","value":1860,"sortorder":1,"catid":4},{"label":"Arts & Culture","value":33,"sortorder":2,"catid":4},{"label":"Farmers Market","value":2234,"sortorder":3,"catid":4},{"label":"Bike/Hike/Walk","value":1855,"sortorder":4,"catid":4},{"label":"Bowling","value":1905,"sortorder":5,"catid":4},{"label":"Climbing","value":1906,"sortorder":6,"catid":4},{"label":"Cross-Country Skiing","value":1858,"sortorder":7,"catid":4},{"label":"Crafts","value":2110,"sortorder":8,"catid":4},{"label":"Kid Friendly","value":2238,"sortorder":9,"catid":4},{"label":"Day Trips","value":36,"sortorder":10,"catid":4},{"label":"Disc Golf","value":1863,"sortorder":11,"catid":4},{"label":"Golf","value":1856,"sortorder":12,"catid":4},{"label":"Indoor Golf","value":1918,"sortorder":13,"catid":4},{"label":"Health, Fitness & Wellness","value":2347,"sortorder":14,"catid":4},{"label":"History & Heritage","value":34,"sortorder":15,"catid":4},{"label":"Ice Skating","value":1857,"sortorder":16,"catid":4},{"label":"Live Entertainment","value":35,"sortorder":17,"catid":4},{"label":"Movie Theaters","value":37,"sortorder":18,"catid":4},{"label":"Nature Centers","value":1917,"sortorder":19,"catid":4},{"label":"Outdoor Adventure","value":2249,"sortorder":20,"catid":4},{"label":"Outdoor Guide Service","value":1861,"sortorder":21,"catid":4},{"label":"Parks","value":2246,"sortorder":22,"catid":4},{"label":"Public Swimming","value":1853,"sortorder":23,"catid":4},{"label":"Sledding","value":1870,"sortorder":24,"catid":4},{"label":"Spectator Sports","value":1859,"sortorder":25,"catid":4},{"label":"Tennis","value":1854,"sortorder":26,"catid":4},{"label":"Trail Rides","value":1907,"sortorder":27,"catid":4}]; var hasDtn = (dtnargs.auid !== undefined && dtnargs.auid.length > 0 && dtnargs.limit > 0 && dtn !== undefined); var scrollSpeed = 175; var defaultSort = "qualityScore"; // the default sort var fallbackSort = "qualityScore"; // the fallback sort in case a requested sort is not available (IE distance and out of range) var validSorts = ["qualityScore","rankTitle", "distance"]; var defaultHooks = ["afterFind_offers"]; var filterHeight; if (tripbuilder !== undefined) { tripbuilder.initButtons({ root : root, addButtonTemplate : '<a class="listing-block-button trip" data-tb-add data-gtm-click=\'{ "collect" : true }\' data-gtm-vars=\'{ "tCore" : { "action" : "common_custom_map_handle_trip_builder_add" } }\' >Add to Trip</a>', removeButtonTemplate : '<span><a class="listing-block-button trip" data-gtm-click data-gtm-vars=\'{ "tCore" : { "action" : "common_custom_map_handle_trip_builder_view" } }\' href="' + tripbuilder.path + '" target="_blank" data-tb-view>View Trip</a></span>' }); tripbuilder.events.on("updateButton", function() { gtm.update(); }); } if (widget.detail_type !== undefined) { defaultHooks.push({ name : "afterFind_custom_detail_type", args : { detail_type : widget.detail_type } }); } if (validSorts.indexOf(defaultSort) === -1 || validSorts.indexOf(fallbackSort) === -1) { throw new Error("defaultSort or fallbackSort is not in the validSorts array"); } var validQueryVars = ["skip", "sort", "alphastart", "alphaend", "subcatids", "regionids", "keyword", "amenities", "mealtype"]; // query variables that we allow var queryFields = { address1 : 1, altphone : 1, city : 1, crmtracking : 1, detailURL : 1, dtn : 1, description: 1, isDTN : 1, loc : 1, latitude : 1, longitude : 1, media : 1, phone : 1, primary_category : 1, primary_site : 1, primary_image : 1, primary_image_url : 1, rankid : 1, rankorder : 1, recid : 1, regionid : 1, rankname: 1, state : 1, title : 1, tollfree: 1, zip : 1, typeid:1, detail_type : 1, oncethere_orgid : 1, offers_ids : 1, weburl:1, "offers.recid" : 1, "offers.title" : 1, "offers.price" : 1, "offers.source" : 1, "listingudfs_object.60.value_raw.listid" : 1, "accountudfs_object.1319.value_raw" : 1, "primary_category" : 1, "qualityScore" : 1 } // setup DTN if (hasDtn) { dtnargs.limit = Math.min(dtnargs.limit, limit); // ensures dtnargs.limit is not greater than limit validQueryVars.push("dtnids"); } var geoResult; var xhr; var findLogo = function(primary_image_url,media) { for (var i=0; i < media.length; i++) { if (media[i].mediatype === 'Logo' && media[i].mediaurl === primary_image_url) { return true; } } return false; }; var init = function() { if(widget.custom_meal_type != undefined && widget.custom_meal_type === "true"){ var pipeline = [ { "$match" : { "listingudfs_object.60" : { "$exists" : true } } }, { "$project" : { "listingudfs_object.60.values" : 1 } }, { "$group" : { "_id" : "$listingudfs_object.60.values" } }, { "$sort" : { "_id" : 1 } }, { "$project" : { "_id" : 0, "item": "$_id" } } ]; $.get("/includes/rest_v2/plugins_listings_listingmeta/aggregate/", { json : JSON.stringify({ pipeline : pipeline }), token : core.simpleToken }, function(data) { root.find("[data-sv-meal-type]").replaceWith(function() { return data.docs[0].item.map(function(type) { return '<li><input type="checkbox" name="mealtype" id="mealtype-'+data.docs[0].item.indexOf(type)+'" class="shared-input input-checkbox" value="'+type.listid+'"> <label for="mealtype-'+data.docs[0].item.indexOf(type)+'">'+type.listvalue+'<span class="filter-count"></span></label></li>'; }); }); root.find("[data-sv-mealType]").removeClass("hide"); }); } // begin: Google Maps logic mapObj.init({ node : root, scrollSpeed: scrollSpeed, listingsPro : true, hasQV : true, map : { markerIcon : '/includes/public/assets/images/pin.png', gestureHandling: 'cooperative', scrollwheel: false, mapOptions: { mapTypeControl: false } } }); mapObj.initListInterface(); mapObj.renderMap(); // end: Google Maps logic // begin: GTM tracking var gtmBase = gtm.getVars({ node : root }); var scrollFn = lodash.debounce(function() { // If the items result is view then we can say the listing layout has scrolled into view and thus is a meaningful check on how the user uses it var top = root.find("[data-sv-items]").offset().top; var inRange = $(window).scrollTop() + $(window).height() > top; if (inRange) { $(window).off("scroll", scrollFn); gtm.sendEvents($.extend(true, {}, gtmBase, { tCore : { action : "common_custom_map_handle_scroll_into_view", value : top, nonInteractiveHit : true }, tClient: {eventCategory: "Listings", eventAction: "Scroll Into View", eventLabel: "common_custom_map_handle", nonInteraction: true, eventValue: top } })); } }, 250); $(window).on("scroll", scrollFn); ["subcatids", "regionids", "keyword", "mealtype"].forEach(function(filter, i) { root.find("[name=" + filter + "]").change(function() { var input = $(this); var val = input.val(); if (!val) { return; } // catches undefined, null or "" since that applies to most field types (select, multieselect, text) var valArray = val instanceof Array ? val : [val]; var valString = valArray.join(","); // extract the labels from the options, if we're using keyword just use the original value, separates with | because "," can occur in subcat/region names var labelString = filter === "keyword" ? val : valArray.map(function(val) { return input.find('option[value="' + val + '"]').text().trim() }).join("|"); gtm.sendEvents($.extend(true, {}, gtmBase, { tCore : { action : "common_custom_map_handle_filter_change_" + filter, label : labelString, filter : valString }, tClient: {eventCategory: "Listings", eventAction: "Filter Change", eventLabel: labelString+" | "+filter}, tClient_ga4: {itemType: "listings", eventName: "filter", filterType: labelString+" | "+filter} })); }); }); // end: GTM tracking // this is the starting state on a blank url, these are your "defaults", IE values that occur if you start with a blank state // This is not used to enforce required values, that should occur at in the flow.state phase var query = { subcatids : undefined, // this value represents the subcatids that are chosen by default in the UI therefore it should be undefined always regionids : widget.region_array !== undefined ? widget.region_array.join(",") : undefined, sort : defaultSort } if(widget.custom_meal_type != undefined && widget.custom_meal_type === "true"){ query.mealtype = undefined; } if (window.location.search.length > 0 && clientLib.inPreview() === false) { // if we have a starting query string, we use it, extends the values in so we don't lose initial settings query = $.extend(query, urlLib.parse(window.location.toString()).get); } if (history.pushState) { history.replaceState(query, "", window.location.href); window.onpopstate = function(e) { // older safari and iOS browsers call window.onpopstate on page load without a state, even though it's declared the line above due to bugs so we bail if that happens if (e.state === null) { return; } runSearchQuery({ query : e.state, push : false }); } } // run the first query, don't push since this is a starting state runSearchQuery({ query : query, push : false }); // we need to check for geolocation always to find out if the user is in range geolocationLib.getGeolocationPosition({ checkRange : { latitude : clientLat, longitude : clientLong, maxRangeMiles : maxRangeMiles } }, function(err, result) { if (err) { throw err; } if (result.inRange === false) { return; } root.find(".distanceSort").css({"visibility" : "visible"}); root.find('[data-sv-distanceSort]').css({"opacity" : 1, "pointer-events": "all"}); // user is in range, set the geoResult and re-search. // TODO: move the sort template out of the result set template this way we don't have to re-perform the search to re-render the sorting template // that action should only take place if the defaultSort was distance geoResult = result; // if the original sort was meant to be distance, then lets re-run the search if (query.sort !== "distance") { return; } runSearchQuery({ query : query, push : false }); }); } // takes a query state, applies a delta, removes blacklisted keys, and removes any keys we've said aren't valid in the query var buildUrl = function(state, delta) { var queryVars = $.extend({}, state, delta); // var tempValidVars = lodash.without.apply(null, [validQueryVars].concat(blacklist)); queryVars = lodash.pick(queryVars, validQueryVars); $.each(queryVars, function(i, val) { if (val === "") { delete queryVars[i]; } }); return urlLib.build({ get : queryVars }); } // defines a getter to ease translating comma separated strings to integer arrays since they are used in multiple places var define_stringToNumberArray = function(state, prop) { Object.defineProperty(state, prop + "_array", { get : function() { return this[prop] !== undefined ? this[prop].split(",").map(function(val) { return parseInt(val) }) : [] } }); } // defines a getter to ease translating comma separated string to array of strings var define_stringToArray = function(state, prop) { Object.defineProperty(state, prop + "_array", { get : function() { return this[prop] !== undefined ? this[prop].split(",") : [] } }); } // Alters the current state and perform a series of steps // -> validate query variables, set defaults, and enforce restrictions // -> get data // -> render ui var runSearchQuery = function(args) { args.query = args.query || {}; args.push = args.push !== undefined ? args.push : true; $.each(args.query, function(i, val) { if (val !== undefined && typeof val !== "string") { // URL variables inherently only support strings, so we enforce that args.query is the same structure is only strings using comma separated instead of array // If you are hitting this thrown error it means you are likely calling this function improperly, or passing something bogus to it console.log("query", args.query); // intentional console.log, left to help debug when you hit this throw due to developer error throw new Error("Invalid data type, runSearchQuery only accepts an object of key value strings, or arrays of strings, as that's all URLs support") } // remove empty strings as it's easier to utilize undefined as a null state if (val === "") { delete args.query[i]; } }); var flow = new asyncLib.Flow(); flow.series({ state : function(cb) { // create a state based on whiteListings our query, validate that variables match expected values // cast items to integer or other values // after this function cb's, nothing should ever change a value in anyway on the state var state = $.extend(true, {}, args.query); // clone the query so that downstream changes don't alter the original state = lodash.pick(state, validQueryVars); // whitelist incoming arguments to only those that are approved if (history.pushState && args.push) { history.pushState(state, "", urlLib.build({ get : state })) } // set values for required state fields, that way even if not passed, or passed bogus, we can ensure theye exist state.limit = limit; state.catid = parseInt(widget.listingcats) || undefined; state.skip = parseInt(state.skip) || 0; // ensures we have a integer skip even if skip === "foo" || undefined state.sort = state.sort || defaultSort; if (state.sort === "distance" && geoResult === undefined) { state.sort = fallbackSort; } state.sort = validSorts.indexOf(state.sort) > -1 ? state.sort : defaultSort; define_stringToNumberArray(state, "regionids"); define_stringToNumberArray(state, "dtnids"); // for excluding dtn recids from our main queries and ensuring the same set as we paginate define_stringToNumberArray(state, "subcatids"); define_stringToNumberArray(state, "mealtype"); define_stringToArray(state, "amenities"); // state.subcatids is the subcats chosen in UI, if we have those, use the ones that also exist in our validSubcats // if we don't have those and we have listingsubcats chosen in the CMS, use those // else do not filter by subcatid var tempSubcats = state.subcatids !== undefined ? validSubcats.filter(function(val) { return state.subcatids_array.indexOf(val.value) !== -1 }) : widget.listingsubcats !== undefined ? validSubcats : undefined; // if we have subcats to filter on, use them, otherwise filter on the site and catid, catid may be undefined and in that case it will filter on site only state.filterTagItems = tempSubcats !== undefined ? tempSubcats.map(function(val) { return { site : site.site, subcatid : val.value } }) : [{ site : site.site, catid : state.catid }]; cb(null, state); }, filter : function(cb) { // prepare primary filter var filter = { solrOptions : {} }; filter.filter_tags = { $in : sv_crmLib.getListingFilterTags({ items : flow.data.state.filterTagItems }) }; if (widget.custom_experience_accredited != undefined && widget.custom_experience_accredited.toString() === 'true') { filter['accountudfs_object.1319.value_raw'] = true } if (flow.data.state.mealtype !== undefined) { filter['listingudfs_object.60.value_raw.listid'] = { $in : flow.data.state.mealtype_array } } if (flow.data.state.regionids !== undefined) { filter.regionid = { $in : flow.data.state.regionids_array } } // add amenities to filter 1 to 1 if (flow.data.state.amenities !== undefined) { flow.data.state.amenities_array.forEach(function(val, i) { filter["amenities." + val + ".value_raw"] = true; }); } if (flow.data.state.alphastart !== undefined && flow.data.state.alphaend !== undefined) { filter.alpha = { $gte : flow.data.state.alphastart, $lte : flow.data.state.alphaend }; } if (flow.data.state.keyword !== undefined) { filter.solrOptions.keyword = flow.data.state.keyword; } if (flow.data.state.sort === "distance") { filter.solrOptions.sort = "distance"; filter.solrOptions.point = [geoResult.latitude, geoResult.longitude].join(","); filter.solrOptions.radius = site.siteConfig.maxRangeMiles.toString(); } // if we have no solrOptions, clean it if (Object.keys(filter.solrOptions).length === 0) { delete filter.solrOptions; } cb(null, filter); }, dtn : function(cb) { if ( hasDtn === false || // if dtn disabled flow.data.state.skip > 0 || // or not on the first page flow.data.state.sort === "distance" || // sorting by distance flow.data.state.catid === undefined // or we don't have cats ) { // no dtn results for this result set return cb(null, []); } // query dtn var dtnFilter = $.extend(true, {}, flow.data.filter); dtnFilter.filter_tags = { $in : sv_crmLib.getListingFilterTags({ items : flow.data.state.filterTagItems, dtn : true }) }; // using 0000 and 2359 for caching purposes, otherwise we could just use Date().toISOString() var today0000 = clientMoment().startOf("day"); // send date as 00:00:00 in the client timezone in UTC var today2359 = today0000.clone().add(1, "day").subtract(1, "second"); // send date as 23:59:59 in the client timezone in UTC dtnFilter.$and = [ { $or : [ { "dtn.sdate" : { $lte : { $date : today0000.toISOString() } } }, { "dtn.sdate" : { $exists : false } } ] }, { $or : [ { "dtn.edate" : { $gte : { $date : today2359.toISOString() } } }, { "dtn.edate" : { $exists : false } } ] } ]; var dtnOptions = { fields : queryFields, limit : dtnargs.limit, hooks : defaultHooks.concat("afterFind_dtn") }; if (dtnargs.sort === "random") { // on random we have to request a larger set so that we can choose a random set based on dtnargs.limit // dtn should not massively oversell this to prevent performance problems dtnOptions.limit = 99; } else if (dtnargs.sort === "alpha") { dtnOptions.sort = { rankorder : 1, sortcompany : 1 }; } else if (dtnargs.sort === "rank") { dtnOptions.sort = { "dtn.rank" : 1, sortcompany : 1 }; } else { throw new Error("Invalid dtn sort '" + dtnargs.sort + "'"); } if (xhr) { xhr.abort(); } xhr = $.get("/includes/rest_v2/plugins_listings_listings/find/", { json : JSON.stringify({ filter : dtnFilter, options : dtnOptions }), token : core.simpleToken }); xhr.done(function(res) { if (dtnargs.sort === "random") { // randomize the result set, then trim it down to our desired limit var isDtnAndExperience = []; var isOnlyDtn = []; res.docs.forEach(function(doc){ if (doc.isDTN && (doc.accountudfs_object !== undefined) && (doc.accountudfs_object[1319] !== undefined)) { isDtnAndExperience.push(doc); } else { isOnlyDtn.push(doc); } }); isDtnAndExperience = arrayLib.randomize(isDtnAndExperience); isOnlyDtn = arrayLib.randomize(isOnlyDtn); res.docs = isDtnAndExperience.concat(isOnlyDtn); res.docs = res.docs.splice(0, dtnargs.limit); } flow.data.state.dtnids = res.docs.length > 0 ? res.docs.map(function(val) { return val.recid; }).join(",") : undefined; res.docs.forEach(function(val) { val.dtnauid = dtnargs.auid; }); cb(null, res.docs); }).fail(function(err, type, message) { if (type === "abort") { return flow.halt(cb); } // another request has aborted this one, so halt this flow return cb(new Error(message)); }); }, data : function(cb) { // declare query options var options = { limit : flow.data.state.limit, skip : flow.data.state.skip, fields : queryFields, count : true, hooks : defaultHooks }; if (flow.data.state.sort === "qualityScore") { options.sort = { qualityScore : -1, sortcompany : 1 }; } if (flow.data.dtn.length > 0) { // has DTN listings, need to adjust page 1 limit and store state.dtnids for exclusion from main query on all pages options.limit -= flow.data.dtn.length; } else { // adjust our skip based on number of dtn listings output on page 1 options.skip = flow.data.state.skip - flow.data.state.dtnids_array.length; } if (flow.data.state.dtnids !== undefined) { // exclude dtn recids from main query on all pages flow.data.filter.recid = { "$nin" : flow.data.state.dtnids_array }; } // get listings data if (xhr) { xhr.abort(); } if (options.limit === 0) { // if this happens, it means the entirety of page 1 came from dtn, so need to query for the total count for non-dtn listings xhr = $.get("/includes/rest_v2/plugins_listings_listings/count/", { json : JSON.stringify({ filter : flow.data.filter }), token : core.simpleToken }); } else { xhr = $.get("/includes/rest_v2/plugins_listings_listings/find/", { json : JSON.stringify({ filter : flow.data.filter, options : options }), token : core.simpleToken }); } xhr.done(function(res) { var count; var data; if (options.limit === 0) { // process the count query count = res.count; data = flow.data.dtn; } else { // process the normal find query count = res.docs.count + flow.data.state.dtnids_array.length; // put dtn listings first data = flow.data.dtn.concat(res.docs.docs); } cb(null, { data : data, count : count }); }).fail(function(err, type, message) { if (type === "abort") { return flow.halt(cb); } // another request has aborted this one, so halt this flow return cb(new Error(message)); }); }, keywordRecids : function(cb) { if (flow.data.state.keyword === undefined) { return cb(null); } var filter = { solrOptions : flow.data.filter.solrOptions }; var options = { fields : { recid : 1, _id : 0 }, count : false }; xhr = $.get("/includes/rest_v2/plugins_listings_listings/find/", { json : JSON.stringify({ filter : filter, options : options }), token : core.simpleToken }); xhr.done(function(res) { var recids = res.docs.map(function(val) { return val.recid; }); cb(null, recids); }).fail(function(err, type, message) { if (type === "abort") { return flow.halt(cb); } // another request has aborted this one, so halt this flow return cb(new Error(message)); }); }, filterCount : function(cb) { var filter; var filterOriginal = $.extend({}, flow.data.filter); //removing dtn count if (flow.data.state.dtnids !== undefined && filterOriginal.recid && filterOriginal.recid["$nin"]) { delete filterOriginal.recid; } delete filterOriginal["solrOptions"]; // solrOptions doesn't work w/ aggregates // pull in location matches into faceted aggregates if (flow.data.state.sort === "distance") { filterOriginal["loc"] = { $exists : true }; } // Pull in keyword matches into faceted aggregates if (flow.data.keywordRecids !== undefined) { filterOriginal["recid"] = { $in : flow.data.keywordRecids }; } // MealType var facetMeal = [ { $project : { "listingudfs_object.60.value_raw" : 1 } }, { $unwind : "$listingudfs_object.60.value_raw" }, { $group : { _id : "$listingudfs_object.60.value_raw.listid", count : { $sum : 1 } } } ]; filter = $.extend({}, filterOriginal); delete filter["listingudfs_object.60.value_raw.listid"]; facetMeal.unshift({ $match : filter }) // Amenities var facetAmenities = [ { $project : { "amenities_array.uniquename" : 1 } }, { $unwind : "$amenities_array" }, { $group : { _id : "$amenities_array.uniquename", count : { $sum : 1 } } } ]; filter = $.extend({}, filterOriginal); delete filter["$or"]; // only amenities in $or facetAmenities.unshift({ $match : filter }) // Regions var facetRegions = [ { $group : { _id : "$regionid", count : { $sum : 1 } } } ]; filter = $.extend({}, filterOriginal); delete filter["regionid"]; facetRegions.unshift({ $match : filter }) // Subcats var facetSubcats = [ { $project : { categories : 1 } }, { $unwind : "$categories" }, { $group : { _id : "$categories.subcatid", count : { $sum : 1 } } } ]; filter = $.extend({}, filterOriginal); delete filter['filter_tags']; facetSubcats.unshift({ $match : filter }) var filterFlow = new asyncLib.Flow(); filterFlow.series({ mealCount : function(cb) { xhr = $.get("/includes/rest_v2/plugins_listings_listings/aggregate/", { json : JSON.stringify({ pipeline : facetMeal }), token : core.simpleToken }); xhr.done(function(res) { cb(null, arrayLib.index(res.docs, "_id")); }).fail(function(err, type, message) { return cb(new Error(message)); }); }, amenCount : function(cb) { xhr = $.get("/includes/rest_v2/plugins_listings_listings/aggregate/", { json : JSON.stringify({ pipeline : facetAmenities }), token : core.simpleToken }); xhr.done(function(res) { cb(null, arrayLib.index(res.docs, "_id")); }).fail(function(err, type, message) { return cb(new Error(message)); }); }, regionCount : function(cb) { xhr = $.get("/includes/rest_v2/plugins_listings_listings/aggregate/", { json : JSON.stringify({ pipeline : facetRegions }), token : core.simpleToken }); xhr.done(function(res) { cb(null, arrayLib.index(res.docs, "_id")); }).fail(function(err, type, message) { return cb(new Error(message)); }); }, subcatsCount : function(cb) { xhr = $.get("/includes/rest_v2/plugins_listings_listings/aggregate/", { json : JSON.stringify({ pipeline : facetSubcats }), token : core.simpleToken }); xhr.done(function(res) { cb(null, arrayLib.index(res.docs, "_id")); }).fail(function(err, type, message) { return cb(new Error(message)); }); } }, cb); }, render : function(cb) { // using flow.data.data, render pager, items, update map var pager = new sv_Pager({ totalRows : flow.data.data.count, perPage : flow.data.state.limit, startIndex : flow.data.state.skip }); // perform any alterations needed to data before render flow.data.data.data.forEach(function(val, i) { val.globalRow = flow.data.state.skip + i + 1; // skip + current index + 1 because it's 1-based, like row if (val.primary_image_url !== undefined) { // if the primary image is a logo, replace it with the listing placeholder if (val.media !== undefined && val.media.length) { val.useslogo = findLogo(val.primary_image_url,val.media); if (val.useslogo) { val.primary_image_url = site.siteConfig.custom.listingPlaceholderUrl; } } val.primary_image = { resource : sv_cloudinaryLib.default.createResource({ imageUrl : val.primary_image_url }) }; } if (flow.data.state.sort === "distance" && val.loc !== undefined) { val.distance = new geodist({ start : { lat : val.latitude, lon : val.longitude }, end : { lat : geoResult.latitude, lon : geoResult.longitude } }); } // validate social links if (val.social !== undefined && val.social !== null) { $.each( val.social, function( key, social ) { if (social.smserviceid == 4) { social.value = lib.getValidSocialUrl({ url : social.value , urlType : "facebook" }); social.value = sv_crmLib.getTrackUrl(val.crmtracking.core_facebook_click, social.value); } else if (social.smserviceid == 1) { social.value = lib.getValidSocialUrl({ url : social.value , urlType : "twitter" }); social.value = sv_crmLib.getTrackUrl(val.crmtracking.core_twitter_click, social.value); } }); } }); var filterCount = flow.data.filterCount; var filterSortCount = function(parent, args) { // parent [DOM Element] // args.countObj [Object] // args.count [bool] // args.sort [bool] var items = parent.find("li"); var hasCount = 0; if (args.count === true) { items.each(function(i, val) { var input = $(val).find("input"); var countIndex = args.countObj[input.val()]; if (countIndex !== undefined) { input.removeClass("disabled"); input.data("count", countIndex.count); input.next("label").find(".filter-count").text("("+countIndex.count+")"); hasCount++; } else{ input.addClass("disabled"); input.data("count", 0); input.next("label").find(".filter-count").text("("+0+")"); } }) } if (args.sort === true) { items.sort(function(a, b) { if ($(b).hasClass("showmore") || $(b).hasClass("nofilters")) { // ensures showmore and nofilters at end return -1; } var count_a = $(a).find("input").data("count"); var count_b = $(b).find("input").data("count"); if (count_a === count_b) { var alpha_a = $(a).find("label").text().toLowerCase(); var alpha_b = $(b).find("label").text().toLowerCase(); return alpha_a === alpha_b ? 0 : alpha_a < alpha_b ? -1 : 1; } else { return count_a > count_b ? -1 : 1 } }); } parent.html(items); if (hasCount > 5) { parent.find(".showmore").show(); parent.find(".nofilters").hide(); } else if (hasCount === 0) { parent.find(".showmore").hide(); parent.find(".nofilters").show(); } else { parent.find(".showmore").hide(); parent.find(".nofilters").hide(); } } // There are 2 filterContainers (1 for desktop + 1 for mobile) - loop over both and apply sort/count filterContainer.each(function(i, val) { // Meal filterSortCount($(filterContainer[i]).find("input[type=checkbox][name=mealtype]").parent().parent(), { countObj : filterCount.mealCount, count : true, sort : true }); // Regions filterSortCount($(filterContainer[i]).find("input[type=checkbox][name=regionids]").parent().parent(), { countObj : filterCount.regionCount, count : true, sort : false }); // Subcats filterSortCount($(filterContainer[i]).find("input[type=checkbox][name=subcatids]").parent().parent(), { countObj : filterCount.subcatsCount, count : true, sort : false }); // Amenities filterSortCount($(filterContainer[i]).find("input[type=checkbox][name=amenities]").parent().parent(), { countObj : filterCount.amenCount, count : true, sort : true }); }); var html = goatee.fill(mainTemplate, { data : flow.data.data.data, pager : pager }, { listingListItem : listingListItem, custom_li_items : liItemsTemplate }); var mapListHTML = goatee.fill(mapMainTemplate, { data : flow.data.data.data }, { listMapItem : listMapItem, custom_li_items : liItemsTemplate }); var pagerHtml = goatee.fill(pagerTemplate, {pager : pager }); var pageMapHTML = goatee.fill(pagerMapTemplate, { pager : pager }); var pageMapCounterHtml = goatee.fill(pagerMapCounterTemplate, { pager : pager }); root.find("[data-sv-items]").html(html); root.find("[data-sv-pager]").html(pagerHtml); root.find("[data-sv-map-items]").html(mapListHTML); root.find("[data-sv-map-pager]").html(pageMapHTML); root.find("[data-sv-map-items-counter]").html(pageMapCounterHtml); rates.populateSummary({ node: root, cleanup: true }); // update form inputs for multi-select and select ["regionids", "subcatids", "mealtype"].forEach(function(val, i) { root.find("[name='" + val + "']").prop("checked", function() { return flow.data.state[val + "_array"].indexOf(parseInt($(this).attr("value"))) > -1; }); }); // update text inputs ["sort", "alphastart", "alphaend", "keyword"].forEach(function(val, i) { filterContainer.find("[name=" + val + "]").val(flow.data.state[val]); }); // update checkbox inputs ["amenities"].forEach(function(val, i) { root.find("[name='" + val + "']").prop("checked", function() { return flow.data.state[val + "_array"].indexOf($(this).attr("value")) > -1; }); }); // update the query-links with new hrefs and selected class root.find("[data-query-link]").each(function(i, val) { var settingString = $(this).attr("data-query-link"); try { // JSON.parse() can fail due to "" or other syntax lets catch that error to simplify development in the case of typos var args = JSON.parse(settingString); } catch (e) { console.log("Unable to parse", settingString); return; } args.delta = args.delta || {}; args.selectedIgnore = args.selectedIgnore || []; var deltaUrl = buildUrl(flow.data.state, args.delta); var skipUrl = urlLib.blacklistQuery(deltaUrl, args.selectedIgnore); var currentUrl = urlLib.blacklistQuery(buildUrl(flow.data.state, {}), args.selectedIgnore); $(this).attr("href", deltaUrl); $(this).toggleClass("selected", skipUrl === currentUrl); }); // begin: Google Maps logic var placemarks = []; $.each(flow.data.data.data, function(i,v) { if (v.latitude && v.longitude) { placemarks.push({ id : "listing_"+v.recid, recid : v.recid, type : 'listing', marker : { position : [v.latitude, v.longitude] }, infoWindow : { content : goatee.fill(infoWindowTmpl, { title : v.title, address1 : v.address1, url : v.url, nearbyRecid : v.recid, ga4_cats : v.primary_category.catname + " | " + v.primary_category.subcatname, crmCat : v.primary_category.catname, crmSubcat: v.primary_category.subcatname, itemType: "listings", listing: true }), maxWidth : 300 } }); } }); mapObj.setPlacemarks(placemarks); // end: Google Maps logic // tripbuilder if (tripbuilder !== undefined) { tripbuilder.updateButtons(root); } if (hasDtn) { gamClient.renderAds(); } // process gtmLib tagged items that may have been added to the DOM gtm.update(); cb(null); }, renderfilterHeight : function(cb) { filterHeight = root.find('[data-sv-content-height]').innerHeight(); setFilterHeight(filterHeight); cb(null); } }, function(err) { if (err) { throw err; } }); } filterContainer.find("form").submit(function(e) { e.preventDefault(); var query = clientLib.formToObject($(this)); // certain form inputs like select and multi-select and checkbox pass as an array // so we want to convert those to comma separated lists for shorter query strings and easy of use downstream Object.keys(query).forEach(function(val, i) { if (query[val] instanceof Array) { query[val] = query[val].join(",") } }); runSearchQuery({ query : query }); $('html, body').animate({ scrollTop: $(root).offset().top }, 300); $('body').trigger('resetMap'); }); root.on("click", "[data-query-link]", function(e) { e.preventDefault(); if ($(this).hasClass("disabled")) { return; } var query = urlLib.parse($(this).attr("href")).get; runSearchQuery({ query : query }); }); root.find('a[data-sv-viewby]').click(function(e) { e.preventDefault(); var viewby = $(this).attr('data-sv-viewby'); var layout = $('[data-sv-layout]'); $('a[data-sv-viewby].active').removeClass('active'); $('a[data-sv-viewby="' + viewby + '"]').toggleClass('active'); layout.removeClass('layout-grid') .removeClass('layout-list') .removeClass('layout-map'); layout.addClass('layout-' + viewby); // specific display settings for list view if (viewby === "list") { root.find('[data-sv-items-wrapper]').removeClass('hide'); root.find('[data-sv-pager]').removeClass('hide'); root.find('[data-sv-desktop-pager]').css({'width' : 'auto' }); filterHeight = root.find('[data-sv-content-height]').innerHeight(); setFilterHeight(filterHeight); } // specific display settings for grid view if (viewby === "grid") { root.find('[data-sv-items-wrapper]').removeClass('hide'); root.find('[data-sv-pager]').removeClass('hide'); root.find('[data-sv-desktop-pager]').css({'width' : 'auto' }); filterHeight = root.find('[data-sv-content-height]').innerHeight(); setFilterHeight(filterHeight); } // specific display settings for map view if (viewby === "map") { mapObj.setState({ open : true }); root.find('[data-sv-desktop-pager]').css({'width' : 280 + 'px' }); root.find('[data-sv-items-wrapper]').addClass('hide'); root.find('[data-sv-pager]').addClass('hide'); } filterHeight = root.find('[data-sv-content-height]').innerHeight(); setFilterHeight(filterHeight); }); root.on('click', '[data-sv-open-map]', function(e) { e.preventDefault(); var layout = $('[data-sv-layout]'); $('a[data-sv-viewby].active').removeClass('active'); $('a[data-sv-viewby="map"]').toggleClass('active'); layout.removeClass('layout-grid') .removeClass('layout-list') .removeClass('layout-map'); layout.addClass('layout-map'); root.find('[data-sv-items-wrapper]').addClass('hide'); root.find('[data-sv-pager]').addClass('hide'); }); var setFilterHeight = function(filterHeight){ if(filterHeight < 980 && $(window).width() > 768){ filterContainer.css({"height" : 980 + 'px'}); } else { filterContainer.css({"height" : filterHeight}); } } var toggleOverlay = function() { var overylay = $('[data-sv-listings-overlay]'); if (overylay.hasClass('active')) { overylay.removeClass('active'); $('[data-sv-mobile-options]').find('li.active').removeClass('active'); } else { overylay.addClass('active'); } }; var closeMobileMenus = function() { var w_width = $(window).width(); $('[data-sv-mobile-options]').find('li.active').siblings().removeClass('active'); if (w_width < 1025){ toggleOverlay(); } }; ["subcatids", "regionids", "amenities", "mealtype"].forEach(function(filter, i) { filterContainer.on("change", "input[name=" + filter + "]", function() { $(this).closest('form').submit(); }); }); root.find('[data-sv-mobile-options] [data-sv-viewby]').click(function(e) { closeMobileMenus(); }); root.on("click", "[data-query-link]", function(e) { e.preventDefault(); if ($(this).hasClass("disabled") || $(this).hasClass('map-pager-button')) { return; } closeMobileMenus(); var query = urlLib.parse($(this).attr("href")).get; runSearchQuery({ query : query }); }); root.on("click", ".pagination [data-query-link]", function() { // enable scroll to top for the bottom pager only $("html, body").animate({ scrollTop: root.offset().top }, scrollSpeed); }); root.find('[data-sv-mobile-options-display]').click(function(e) { e.preventDefault(); $(this).parent().toggleClass('active'); closeMobileMenus(); }); root.find('[data-sv-listings-overlay]').click(function(e) { e.preventDefault(); closeMobileMenus(); }); root.find('[data-sv-close-filters]').click(function(e) { e.preventDefault(); closeMobileMenus(); }); root.find('[data-sv-clear-filters]').click(function(e) { e.preventDefault(); $(this).closest('form')[0].reset(); closeMobileMenus(); runSearchQuery({ query : {} }); var href = window.location.href.replace(window.location.search, ''); history.pushState(null, "", href); }); filterContainer.on("click", 'li[data-sv-filter-showmore]', function(e) { e.preventDefault(); var parent = $(this).closest('ul.filter-items'); if (parent.hasClass('showmore')) { parent.removeClass('showmore'); $(this).html("Show More <i class='fa fa-caret-down'></i>"); } else { parent.addClass('showmore'); $(this).html("Show Less <i class='fa fa-caret-up'></i>"); } }); root.on('click', '.nav-gear', function() { root.find('[data-sv-map-container]').toggleClass('dockit'); }); $(window).on('resize', lodash.debounce(setFilterHeight, 200)); $(window).on('load', function() { filterHeight = root.find('[data-sv-content-height]').innerHeight(); setFilterHeight(filterHeight); }); $(root).find('[data-sv-back-up]').on('click', function(e) { // enable scroll to top for the bottom $('html, body').animate({ scrollTop: $(root).offset().top }, 300); }); init(); }); </script></div> </div> </div><div data-civid="650b15a37f682d7986d069e4" class="contentRender contentRender_23 contentRender_type_panel contentRender_name_plugins_common_one_col" data-sv-time="0" data-sv-index="23" data-gtm-vars='{ "tCore" : { "contentNum" : "3" } }'> <div class="panel_custom_one_col controlled-width"> <div class="row"> <div class="columns"> <div data-civid="650b15a37f682d7986d069e6" class="contentRender contentRender_24 contentRender_type_panel contentRender_name_plugins_common_50_50" data-sv-time="0" data-sv-index="24" data-gtm-vars='{ "tCore" : { "contentNum" : "1" } }'> <div class="panel-two-col-even"> <div class="row"> <div class="columns large-6"> <div data-civid="650b15a37f682d7986d069e8" class="contentRender contentRender_25 contentRender_type_widget contentRender_name_plugins_collections_type_custom_slides contentRender_name_plugins_collections_template_custom_imagebox_subtitle" data-sv-time="30" data-sv-index="25" data-gtm-vars='{ "tCore" : { "contentNum" : "1" } }'> <div data-guid="beea1056-dbd7-4b1d-a048-371c9921e267" class="imagebox-subtitle-holder"> <script type="text/template" data-slide-template> {{#items}} <section class="imagebox-fancy"> {{:link}}<a href="{{link.url}}" target="{{link.target}}">{{/}} <span class="imgcont"> <img src="{{asset.resource.getThumbnailUrl({ width : 636, height : 846, crop : 'fill', sv : { gravity : 'focalPoint' } })}}"> </span> {{:link}}</a>{{/}} <dl class="textcont"> {{:link}}<a href="{{link.url}}" target="{{link.target}}">{{/}} <dt>{{title}}</dt> <dd>{{subtitle}}</dd> {{:link}}</a>{{/}} </dl> {{:link}} <a href="{{link.url}}" target="{{link.target}}" class="btn btn-2"> <div class="btn-text"> {{*templateData.more_caption}} <i class="fa fa-angle-double-right" aria-hidden="true"></i> </div> </a> {{/}} </section> {{/}} </script> </div> <script> require(["jquery", "plugins_common_custom_collection_helper", "sv_asyncLib", "sv_load!plugins_dtn", "sv_goatee!plugins=cloudinary"], function($, collectionHelper, asyncLib, plugins_dtn, goatee) { var root = $("[data-guid=beea1056-dbd7-4b1d-a048-371c9921e267]"); var flow = new asyncLib.Flow(); var data = {"template":"custom_imagebox_subtitle","source":"custom","templateData":{"more_caption":"LEARN MORE","adunits":["/21812118460/21812952115/21812823374"]},"modelName":"plugins_collections_type_custom_slides","typeName":"custom_slides","items":[],"guid":"beea1056-dbd7-4b1d-a048-371c9921e267","widgetArgs":{"nav":{"_id":"5ab409d26fabc5420e51608c","sortorder":2,"title":"Things to Do","folder":"things-to-do","section":"main","type":"page","active":true,"show_on_nav":true,"publish_start":"2018-03-22T19:00:00.000Z","searchable":"yes","new_window":false,"image_id":"5b8fe0aed7cf37cfa637b37c","description":"<p>Enjoy the vibrancy, beauty, and charm of Rochester, MN when you visit our picturesque parks, renowned historical sites, and dynamic galleries and theaters or attend one of our events. Then, stop in for a bite to eat in a friendly atmosphere at one of our many celebrated hot spots for dining and nightlife. Plan your "play" time in Rochester, MN today!</p>","meta_title":"Things to Do in Rochester, MN | Attractions & Local Events","meta_description":"Explore things to do in Rochester, MN and experience fun and local attractions like historical sites, parks, art galleries, theaters, and exciting nightlife.","version_id":"650b165d7f682d7986d06a0b","created":"2018-03-22T19:53:54.082Z","content_owner":"default","site_name":"primary","updated":"2023-09-20T15:57:17.742Z","title_sort":"things to do","site_section":"primary.main","published":true,"amp":false,"cms_title":"Things to Do - /things-to-do/","cms_title_sort":"things to do - /things-to-do/","folderHref":"/things-to-do/","image":{"_id":"5b8fe0aed7cf37cfa637b37c","original_public_id":"clients/rochestermn/silver_lake_hazy_AB_Photography_7776ae1e-278e-4244-a1af-92f201d21411","title":"Boating on Silver Lake in Rochester, MN","resource_raw":{"public_id":"clients/rochestermn/silver_lake_hazy_AB_Photography_7776ae1e-278e-4244-a1af-92f201d21411","version":1536155804,"signature":"b48498e66b2f5db7a451099c9870df09b5584776","width":5472,"height":3648,"format":"jpg","resource_type":"image","created_at":"2018-09-05T13:56:44.000Z","pages":1,"bytes":3580612,"type":"upload","etag":"192e0388b02cdb9c44a5afec7c9d29b0","placeholder":false,"url":"http://res.cloudinary.com/simpleview/image/upload/v1536155804/clients/rochestermn/silver_lake_hazy_AB_Photography_7776ae1e-278e-4244-a1af-92f201d21411.jpg","secure_url":"https://res.cloudinary.com/simpleview/image/upload/v1536155804/clients/rochestermn/silver_lake_hazy_AB_Photography_7776ae1e-278e-4244-a1af-92f201d21411.jpg","access_mode":"public","exif":{"ApertureValue":"526069/1000000","Artist":"A. Petrova & B. Wootla","ColorSpace":"1","Copyright":"AB-Photography.us","CustomRendered":"0","DateTime":"2018:08:06 21:15:36","DateTimeDigitized":"2018:08:06 18:39:21","DateTimeOriginal":"2018:08:06 18:39:21","ExifOffset":"292","ExifVersion":"48, 50, 51, 49","ExposureBiasValue":"0/1","ExposureMode":"0","ExposureProgram":"3","ExposureTime":"1/8000","Flash":"16","FNumber":"12/10","FocalLength":"85/1","FocalPlaneResolutionUnit":"3","FocalPlaneXResolution":"49807360/32768","FocalPlaneYResolution":"49807360/32768","ISOSpeedRatings":"100","Make":"Canon","MaxApertureValue":"625/1000","MeteringMode":"5","Model":"Canon EOS-1D X Mark II","ResolutionUnit":"2","SceneCaptureType":"0","ShutterSpeedValue":"12965784/1000000","Software":"Adobe Photoshop Lightroom Classic 7.1 (Macintosh)","SubSecTimeDigitized":"04","SubSecTimeOriginal":"04","Compression":"6","JPEGInterchangeFormat":"974","JPEGInterchangeFormatLength":"9254","XResolution":"240/1","YResolution":"240/1","WhiteBalance":"0"},"original_filename":"file"},"credits":"AB-PHOTOGRAPHY.US","content_owner":"default","title_sort":"boating on silver lake in rochester, mn","updated":"2018-09-05T13:57:02.319Z","deleted":false,"created":"2018-09-05T13:57:02.319Z","resource":{"raw":{"resource_type":"image","format":"jpg","pages":1,"public_id":"clients/rochestermn/silver_lake_hazy_AB_Photography_7776ae1e-278e-4244-a1af-92f201d21411"}},"id":"5b8fe0aed7cf37cfa637b37c","type":"image","inAssetRequest":false,"alt_text":"Boating on Silver Lake in Rochester, MN","expired":false},"locale_count":0,"id":"5ab409d26fabc5420e51608c","version_id_string":"650b165d7f682d7986d06a0b","href":"/things-to-do/","absoluteHref":"https://www.experiencerochestermn.com/things-to-do/","absoluteFolderHref":"https://www.experiencerochestermn.com/things-to-do/","metaTitle":"Things to Do in Rochester, MN | Attractions & Local Events","rootCmsUrl":"/nav/sitemap/site_primary/section_main/"},"num":25,"guid":"3ee46ea9-8515-4af2-92c7-f8d6d3608530","data":{"template":"custom_imagebox_subtitle","feedData_json":"{}","templateData_more_caption":"LEARN MORE","templateData_adunits":["/21812118460/21812952115/21812823374"],"source":"custom","items_json":"[]","data_more_caption":"LEARN MORE","data_adunits":["/21812118460/21812952115/21812823374"]},"civ":{"instance":{"type":"widget","name":"plugins_collections_type_custom_imagebox_subtitle","site_name":"primary","saved":false,"created":"2023-09-20T15:57:17.723Z","updated":"2023-09-20T15:57:17.723Z","deleted":false,"id":"650b15a37f682d7986d069e8","version_id_string":"650b15a37f682d7986d069e9"},"version":{"data":{"template":"custom_imagebox_subtitle","feedData_json":"{}","templateData_more_caption":"LEARN MORE","templateData_adunits":["/21812118460/21812952115/21812823374"],"source":"custom","items_json":"[]","data_more_caption":"LEARN MORE","data_adunits":["/21812118460/21812952115/21812823374"]},"created":"2023-09-20T15:57:17.725Z","id":"650b15a37f682d7986d069e9","instance_id_string":"650b15a37f682d7986d069e8"},"onTrunk":true,"civid":"650b15a37f682d7986d069e8"},"name":"plugins_collections_type_custom_imagebox_subtitle"}}; var slideTemplate = root.find("[data-slide-template]").html(); flow.series({ dtn : function(cb) { if (plugins_dtn === undefined) { return cb(null, []); } var ids = ["/21812118460/21812952115/21812823374"]; plugins_dtn.getAdUnitsGam({ ids : ids, modelName : "plugins_collections_type_custom_slides", trackUrlFields : ["link.url"], mockFilter : { isdtn : true } }, function(err, temp) { if (err) { return cb(err); } // push dtn items to the front of the array data.items.unshift.apply(data.items, temp); cb(null); }); }, slides : function(cb) { data = collectionHelper.init(data); var slides = goatee.fill(slideTemplate, data); root.html(slides); cb(null); } }, function(err) { if (err) { throw err; } }); }); </script></div> </div> <div class="columns large-6"> <div data-civid="650b15a37f682d7986d069ea" class="contentRender contentRender_26 contentRender_type_widget contentRender_name_plugins_collections_type_custom_slides contentRender_name_plugins_collections_template_custom_imagebox" data-sv-time="31" data-sv-index="26" data-gtm-vars='{ "tCore" : { "contentNum" : "2" } }'> <div data-guid="7b9950dc-9288-47e6-96d3-45c49e09395a" class="imagebox-holder"> <script type="text/template" data-slide-template> {{~setVar('largeImage', data.templateData.tall_image)}} {{#items}} <section class="imagebox"> {{:link}}<a href="{{link.url}}" target="{{link.target}}">{{/}} <span class="imgcont"> {{:~var.largeImage}} <img src="{{asset.resource.getThumbnailUrl({ width : 594, height : 791, crop : 'fill', sv : { gravity : 'focalPoint' } })}}"> {{?}} <img src="{{asset.resource.getThumbnailUrl({ width : 666, height : 498, crop : 'fill', sv : { gravity : 'focalPoint' } })}}"> {{/}} </span> {{:link}}</a>{{/}} <div class="fw-gradient ol-gray-gradient"></div> {{:link}}<a href="{{link.url}}" target="{{link.target}}">{{/}} <dl class="textcont"> <dt> {{title}} </dt> <dd> {{plainDescription(100)}} </dd> {{:link}} <span class="more-link">{{*templateData.more_caption}}</a> {{/}} <div class="bg-tiles"></div> </dl> {{:link}}</a>{{/}} </section> {{/}} </script> </div> <script> require(["jquery", "plugins_common_custom_collection_helper", "sv_asyncLib", "sv_load!plugins_dtn", "sv_goatee!plugins=cloudinary"], function($, collectionHelper, asyncLib, plugins_dtn, goatee) { var root = $("[data-guid=7b9950dc-9288-47e6-96d3-45c49e09395a]"); var flow = new asyncLib.Flow(); var data = {"template":"custom_imagebox","source":"custom","templateData":{"tall_image":"true","more_caption":"Read More","adunits":["/21812118460/21812952115/pagesponsor_thingstodo"]},"modelName":"plugins_collections_type_custom_slides","typeName":"custom_slides","items":[],"guid":"7b9950dc-9288-47e6-96d3-45c49e09395a","widgetArgs":{"nav":{"_id":"5ab409d26fabc5420e51608c","sortorder":2,"title":"Things to Do","folder":"things-to-do","section":"main","type":"page","active":true,"show_on_nav":true,"publish_start":"2018-03-22T19:00:00.000Z","searchable":"yes","new_window":false,"image_id":"5b8fe0aed7cf37cfa637b37c","description":"<p>Enjoy the vibrancy, beauty, and charm of Rochester, MN when you visit our picturesque parks, renowned historical sites, and dynamic galleries and theaters or attend one of our events. Then, stop in for a bite to eat in a friendly atmosphere at one of our many celebrated hot spots for dining and nightlife. Plan your "play" time in Rochester, MN today!</p>","meta_title":"Things to Do in Rochester, MN | Attractions & Local Events","meta_description":"Explore things to do in Rochester, MN and experience fun and local attractions like historical sites, parks, art galleries, theaters, and exciting nightlife.","version_id":"650b165d7f682d7986d06a0b","created":"2018-03-22T19:53:54.082Z","content_owner":"default","site_name":"primary","updated":"2023-09-20T15:57:17.742Z","title_sort":"things to do","site_section":"primary.main","published":true,"amp":false,"cms_title":"Things to Do - /things-to-do/","cms_title_sort":"things to do - /things-to-do/","folderHref":"/things-to-do/","image":{"_id":"5b8fe0aed7cf37cfa637b37c","original_public_id":"clients/rochestermn/silver_lake_hazy_AB_Photography_7776ae1e-278e-4244-a1af-92f201d21411","title":"Boating on Silver Lake in Rochester, MN","resource_raw":{"public_id":"clients/rochestermn/silver_lake_hazy_AB_Photography_7776ae1e-278e-4244-a1af-92f201d21411","version":1536155804,"signature":"b48498e66b2f5db7a451099c9870df09b5584776","width":5472,"height":3648,"format":"jpg","resource_type":"image","created_at":"2018-09-05T13:56:44.000Z","pages":1,"bytes":3580612,"type":"upload","etag":"192e0388b02cdb9c44a5afec7c9d29b0","placeholder":false,"url":"http://res.cloudinary.com/simpleview/image/upload/v1536155804/clients/rochestermn/silver_lake_hazy_AB_Photography_7776ae1e-278e-4244-a1af-92f201d21411.jpg","secure_url":"https://res.cloudinary.com/simpleview/image/upload/v1536155804/clients/rochestermn/silver_lake_hazy_AB_Photography_7776ae1e-278e-4244-a1af-92f201d21411.jpg","access_mode":"public","exif":{"ApertureValue":"526069/1000000","Artist":"A. Petrova & B. Wootla","ColorSpace":"1","Copyright":"AB-Photography.us","CustomRendered":"0","DateTime":"2018:08:06 21:15:36","DateTimeDigitized":"2018:08:06 18:39:21","DateTimeOriginal":"2018:08:06 18:39:21","ExifOffset":"292","ExifVersion":"48, 50, 51, 49","ExposureBiasValue":"0/1","ExposureMode":"0","ExposureProgram":"3","ExposureTime":"1/8000","Flash":"16","FNumber":"12/10","FocalLength":"85/1","FocalPlaneResolutionUnit":"3","FocalPlaneXResolution":"49807360/32768","FocalPlaneYResolution":"49807360/32768","ISOSpeedRatings":"100","Make":"Canon","MaxApertureValue":"625/1000","MeteringMode":"5","Model":"Canon EOS-1D X Mark II","ResolutionUnit":"2","SceneCaptureType":"0","ShutterSpeedValue":"12965784/1000000","Software":"Adobe Photoshop Lightroom Classic 7.1 (Macintosh)","SubSecTimeDigitized":"04","SubSecTimeOriginal":"04","Compression":"6","JPEGInterchangeFormat":"974","JPEGInterchangeFormatLength":"9254","XResolution":"240/1","YResolution":"240/1","WhiteBalance":"0"},"original_filename":"file"},"credits":"AB-PHOTOGRAPHY.US","content_owner":"default","title_sort":"boating on silver lake in rochester, mn","updated":"2018-09-05T13:57:02.319Z","deleted":false,"created":"2018-09-05T13:57:02.319Z","resource":{"raw":{"resource_type":"image","format":"jpg","pages":1,"public_id":"clients/rochestermn/silver_lake_hazy_AB_Photography_7776ae1e-278e-4244-a1af-92f201d21411"}},"id":"5b8fe0aed7cf37cfa637b37c","type":"image","inAssetRequest":false,"alt_text":"Boating on Silver Lake in Rochester, MN","expired":false},"locale_count":0,"id":"5ab409d26fabc5420e51608c","version_id_string":"650b165d7f682d7986d06a0b","href":"/things-to-do/","absoluteHref":"https://www.experiencerochestermn.com/things-to-do/","absoluteFolderHref":"https://www.experiencerochestermn.com/things-to-do/","metaTitle":"Things to Do in Rochester, MN | Attractions & Local Events","rootCmsUrl":"/nav/sitemap/site_primary/section_main/"},"num":26,"guid":"22ac015b-3368-499b-a40e-1c17fc844da8","data":{"template":"custom_imagebox","feedData_json":"{}","templateData_tall_image":"true","templateData_more_caption":"Read More","templateData_adunits":["/21812118460/21812952115/pagesponsor_thingstodo"],"source":"custom","items_json":"[]","data_tall_image":"true","data_more_caption":"Read More","data_adunits":["/21812118460/21812952115/pagesponsor_thingstodo"]},"civ":{"instance":{"type":"widget","name":"plugins_collections_type_custom_imagebox","site_name":"primary","saved":false,"created":"2023-09-20T15:57:17.726Z","updated":"2023-09-20T15:57:17.726Z","deleted":false,"id":"650b15a37f682d7986d069ea","version_id_string":"650b15a37f682d7986d069eb"},"version":{"data":{"template":"custom_imagebox","feedData_json":"{}","templateData_tall_image":"true","templateData_more_caption":"Read More","templateData_adunits":["/21812118460/21812952115/pagesponsor_thingstodo"],"source":"custom","items_json":"[]","data_tall_image":"true","data_more_caption":"Read More","data_adunits":["/21812118460/21812952115/pagesponsor_thingstodo"]},"created":"2023-09-20T15:57:17.728Z","id":"650b15a37f682d7986d069eb","instance_id_string":"650b15a37f682d7986d069ea"},"onTrunk":true,"civid":"650b15a37f682d7986d069ea"},"name":"plugins_collections_type_custom_imagebox"}}; var slideTemplate = root.find("[data-slide-template]").html(); flow.series({ dtn : function(cb) { if (plugins_dtn === undefined) { return cb(null, []); } var ids = ["/21812118460/21812952115/pagesponsor_thingstodo"]; plugins_dtn.getAdUnitsGam({ ids : ids, modelName : "plugins_collections_type_custom_slides", trackUrlFields : ["link.url"], mockFilter : { isdtn : true } }, function(err, temp) { if (err) { return cb(err); } // push dtn items to the front of the array data.items.unshift.apply(data.items, temp); cb(null); }); }, slides : function(cb) { data = collectionHelper.init(data); var slides = goatee.fill(slideTemplate, data); root.html(slides); cb(null); } }, function(err) { if (err) { throw err; } }); }); </script></div> </div> </div> </div></div><div data-civid="650b15a37f682d7986d069ec" class="contentRender contentRender_27 contentRender_type_widget contentRender_name_plugins_collections_type_custom_slides contentRender_name_plugins_collections_template_custom_features" data-sv-time="32" data-sv-index="27" data-gtm-vars='{ "tCore" : { "contentNum" : "3" } }'> <section class="spotlight interior" data-guid="8c68d7b0-c47e-4142-90e4-7d994184eb3c"> <script type="text/template" data-slide-template> <dl class="bg-shatter"> <dt class="mixed"> <span class="first-text">Rochester</span> <span class="second-text">FEATURES</span> </dt> {{#items}} <dd class="columns{{:description}} has-desc{{/}}"> {{:link}}<a href="{{link.url}}" target="{{link.target}}">{{/}} <div class="title">{{title}}</div> <div class="description"> {{plainDescription(50)}} </div> {{:link}}</a>{{/}} </dd> {{/items}} </dl> </script> <div data-slide-replace class="row collapse"></div> </section> <script> require(["jquery","sv_load!plugins_dtn", "sv_goatee!plugins=cloudinary", "sv_asyncLib", "plugins_common_custom_collection_helper", "sv_clientLib"], function($, plugins_dtn, goatee, asyncLib, collectionHelper, sv_clientLib) { var root = $("[data-guid=8c68d7b0-c47e-4142-90e4-7d994184eb3c]"); var flow = new asyncLib.Flow(); var data = {"template":"custom_features","source":"custom","templateData":{"title":"Rochester","title2":"FEATURES","interior_style":"true","adunits":["/21812118460/21812952115/21812744532","/21812118460/21812952115/21812744535","/21812118460/21812952115/21812823638","/21812118460/21812952115/21812823644"]},"modelName":"plugins_collections_type_custom_slides","typeName":"custom_slides","items":[],"guid":"8c68d7b0-c47e-4142-90e4-7d994184eb3c","widgetArgs":{"nav":{"_id":"5ab409d26fabc5420e51608c","sortorder":2,"title":"Things to Do","folder":"things-to-do","section":"main","type":"page","active":true,"show_on_nav":true,"publish_start":"2018-03-22T19:00:00.000Z","searchable":"yes","new_window":false,"image_id":"5b8fe0aed7cf37cfa637b37c","description":"<p>Enjoy the vibrancy, beauty, and charm of Rochester, MN when you visit our picturesque parks, renowned historical sites, and dynamic galleries and theaters or attend one of our events. Then, stop in for a bite to eat in a friendly atmosphere at one of our many celebrated hot spots for dining and nightlife. Plan your "play" time in Rochester, MN today!</p>","meta_title":"Things to Do in Rochester, MN | Attractions & Local Events","meta_description":"Explore things to do in Rochester, MN and experience fun and local attractions like historical sites, parks, art galleries, theaters, and exciting nightlife.","version_id":"650b165d7f682d7986d06a0b","created":"2018-03-22T19:53:54.082Z","content_owner":"default","site_name":"primary","updated":"2023-09-20T15:57:17.742Z","title_sort":"things to do","site_section":"primary.main","published":true,"amp":false,"cms_title":"Things to Do - /things-to-do/","cms_title_sort":"things to do - /things-to-do/","folderHref":"/things-to-do/","image":{"_id":"5b8fe0aed7cf37cfa637b37c","original_public_id":"clients/rochestermn/silver_lake_hazy_AB_Photography_7776ae1e-278e-4244-a1af-92f201d21411","title":"Boating on Silver Lake in Rochester, MN","resource_raw":{"public_id":"clients/rochestermn/silver_lake_hazy_AB_Photography_7776ae1e-278e-4244-a1af-92f201d21411","version":1536155804,"signature":"b48498e66b2f5db7a451099c9870df09b5584776","width":5472,"height":3648,"format":"jpg","resource_type":"image","created_at":"2018-09-05T13:56:44.000Z","pages":1,"bytes":3580612,"type":"upload","etag":"192e0388b02cdb9c44a5afec7c9d29b0","placeholder":false,"url":"http://res.cloudinary.com/simpleview/image/upload/v1536155804/clients/rochestermn/silver_lake_hazy_AB_Photography_7776ae1e-278e-4244-a1af-92f201d21411.jpg","secure_url":"https://res.cloudinary.com/simpleview/image/upload/v1536155804/clients/rochestermn/silver_lake_hazy_AB_Photography_7776ae1e-278e-4244-a1af-92f201d21411.jpg","access_mode":"public","exif":{"ApertureValue":"526069/1000000","Artist":"A. Petrova & B. Wootla","ColorSpace":"1","Copyright":"AB-Photography.us","CustomRendered":"0","DateTime":"2018:08:06 21:15:36","DateTimeDigitized":"2018:08:06 18:39:21","DateTimeOriginal":"2018:08:06 18:39:21","ExifOffset":"292","ExifVersion":"48, 50, 51, 49","ExposureBiasValue":"0/1","ExposureMode":"0","ExposureProgram":"3","ExposureTime":"1/8000","Flash":"16","FNumber":"12/10","FocalLength":"85/1","FocalPlaneResolutionUnit":"3","FocalPlaneXResolution":"49807360/32768","FocalPlaneYResolution":"49807360/32768","ISOSpeedRatings":"100","Make":"Canon","MaxApertureValue":"625/1000","MeteringMode":"5","Model":"Canon EOS-1D X Mark II","ResolutionUnit":"2","SceneCaptureType":"0","ShutterSpeedValue":"12965784/1000000","Software":"Adobe Photoshop Lightroom Classic 7.1 (Macintosh)","SubSecTimeDigitized":"04","SubSecTimeOriginal":"04","Compression":"6","JPEGInterchangeFormat":"974","JPEGInterchangeFormatLength":"9254","XResolution":"240/1","YResolution":"240/1","WhiteBalance":"0"},"original_filename":"file"},"credits":"AB-PHOTOGRAPHY.US","content_owner":"default","title_sort":"boating on silver lake in rochester, mn","updated":"2018-09-05T13:57:02.319Z","deleted":false,"created":"2018-09-05T13:57:02.319Z","resource":{"raw":{"resource_type":"image","format":"jpg","pages":1,"public_id":"clients/rochestermn/silver_lake_hazy_AB_Photography_7776ae1e-278e-4244-a1af-92f201d21411"}},"id":"5b8fe0aed7cf37cfa637b37c","type":"image","inAssetRequest":false,"alt_text":"Boating on Silver Lake in Rochester, MN","expired":false},"locale_count":0,"id":"5ab409d26fabc5420e51608c","version_id_string":"650b165d7f682d7986d06a0b","href":"/things-to-do/","absoluteHref":"https://www.experiencerochestermn.com/things-to-do/","absoluteFolderHref":"https://www.experiencerochestermn.com/things-to-do/","metaTitle":"Things to Do in Rochester, MN | Attractions & Local Events","rootCmsUrl":"/nav/sitemap/site_primary/section_main/"},"num":27,"guid":"0cd59ae9-ed50-4c85-a81d-17fcb41defd4","data":{"template":"custom_features","feedData_json":"{}","templateData_title":"Rochester","templateData_title2":"FEATURES","templateData_interior_style":"true","templateData_adunits":["/21812118460/21812952115/21812744532","/21812118460/21812952115/21812744535","/21812118460/21812952115/21812823638","/21812118460/21812952115/21812823644"],"source":"custom","items_json":"[]","data_title":"Rochester","data_title2":"FEATURES","data_interior_style":"true","data_adunits":["/21812118460/21812952115/21812744532","/21812118460/21812952115/21812744535","/21812118460/21812952115/21812823638","/21812118460/21812952115/21812823644"]},"civ":{"instance":{"type":"widget","name":"plugins_collections_type_custom_features","site_name":"primary","saved":false,"created":"2023-09-20T15:57:17.729Z","updated":"2023-09-20T15:57:17.729Z","deleted":false,"id":"650b15a37f682d7986d069ec","version_id_string":"650b15a37f682d7986d069ed"},"version":{"data":{"template":"custom_features","feedData_json":"{}","templateData_title":"Rochester","templateData_title2":"FEATURES","templateData_interior_style":"true","templateData_adunits":["/21812118460/21812952115/21812744532","/21812118460/21812952115/21812744535","/21812118460/21812952115/21812823638","/21812118460/21812952115/21812823644"],"source":"custom","items_json":"[]","data_title":"Rochester","data_title2":"FEATURES","data_interior_style":"true","data_adunits":["/21812118460/21812952115/21812744532","/21812118460/21812952115/21812744535","/21812118460/21812952115/21812823638","/21812118460/21812952115/21812823644"]},"created":"2023-09-20T15:57:17.731Z","id":"650b15a37f682d7986d069ed","instance_id_string":"650b15a37f682d7986d069ec"},"onTrunk":true,"civid":"650b15a37f682d7986d069ec"},"name":"plugins_collections_type_custom_features"}}; var slideTemplate = root.find("[data-slide-template]").html(); var slideReplace = root.find("[data-slide-replace]"); flow.series({ dtn : function(cb) { if (plugins_dtn === undefined) { return cb(null, []); } var ids = ["/21812118460/21812952115/21812744532","/21812118460/21812952115/21812744535","/21812118460/21812952115/21812823638","/21812118460/21812952115/21812823644"]; plugins_dtn.getAdUnitsGam({ ids : ids, modelName : "plugins_collections_type_custom_slides", trackUrlFields : ["link.url"], mockFilter : { isdtn : true } }, function(err, temp) { if (err) { return cb(err); } // push dtn items to the front of the array data.items.unshift.apply(data.items, temp); cb(null); }); }, slides : function(cb) { data = collectionHelper.init(data); var slides = goatee.fill(slideTemplate, data); slideReplace.html(slides); cb(null); } }, function(err) { if (err) { throw err; } }); }); </script></div> </div> </div> </div> </div> </div> <div class="footer_container"> <div data-civid="5a9d89b7c9764a0e840beae1" class="contentRender contentRender_28 contentRender_type_panel contentRender_name_plugins_common_footer" data-sv-time="0" data-sv-index="28" data-gtm-vars='{ "tCore" : { "contentNum" : "1" } }'> <footer class="panel_custom_footer"> <section class="social"> <div data-civid="6421dda0ccc386387b0b3c81" class="contentRender contentRender_29 contentRender_type_widget contentRender_name_plugins_collections_type_custom_social_slides contentRender_name_plugins_collections_template_custom_social_links" data-sv-time="32" data-sv-index="29" data-gtm-vars='{ "tCore" : { "contentNum" : "1" } }'> <ul class="bg-gradient"> <li class="title"> <span>Let's</span><span>Connect</span><i class="fa fa-angle-double-right" aria-hidden="true"></i> </li> <li> <a href="https://www.facebook.com/ExperienceRochesterMN" target="_blank"><i class="fab fa-facebook" aria-hidden="true" data-gtm-click data-gtm-vars='{"tClient_ga4" : {"eventName" : "navigation_click", "navType" : "Footer", "linkObject" : "Facebook | Social"}}'></i></a> </li> <li> <a href="https://twitter.com/ExperienceRoch" target="_blank"><i class="fab fa-twitter" aria-hidden="true" data-gtm-click data-gtm-vars='{"tClient_ga4" : {"eventName" : "navigation_click", "navType" : "Footer", "linkObject" : "Twitter | Social"}}'></i></a> </li> <li> <a href="https://www.instagram.com/experiencerochmn/" target="_blank"><i class="fab fa-instagram" aria-hidden="true" data-gtm-click data-gtm-vars='{"tClient_ga4" : {"eventName" : "navigation_click", "navType" : "Footer", "linkObject" : "Instagram | Social"}}'></i></a> </li> <li> <a href="https://www.linkedin.com/company/rochester-mn-convention-&-visitors-bureau/" target="_blank"><i class="fab fa-linkedin" aria-hidden="true" data-gtm-click data-gtm-vars='{"tClient_ga4" : {"eventName" : "navigation_click", "navType" : "Footer", "linkObject" : "Linkedin | Social"}}'></i></a> </li> <li> <a href="https://www.youtube.com/@ExperienceRochesterMN" target="_blank"><i class="fab fa-youtube" aria-hidden="true" data-gtm-click data-gtm-vars='{"tClient_ga4" : {"eventName" : "navigation_click", "navType" : "Footer", "linkObject" : "Youtube | Social"}}'></i></a> </li> </ul></div> </section> <section class="main-footer row"> <div class="columns medium-6 large-4"> <div class="flex-control"> <picture class="imgcont footer-logo"> <div data-civid="6421dda0ccc386387b0b3c83" class="contentRender contentRender_30 contentRender_type_widget contentRender_name_plugins_core_textbox" data-sv-time="32" data-sv-index="30" data-gtm-vars='{ "tCore" : { "contentNum" : "3" } }'><section data-sv-core-textbox data-guid="6eeea21f-7f53-4e45-a6d2-ad182d870803"> <p><img alt="Experience Rochester Logo 2023" id="plugins_assets_images_641dd924010ee024eeb7e5b2" src="https://assets.simpleviewinc.com/simpleview/image/upload/c_fill,h_1166,q_75,w_1200/v1/clients/rochestermn/ExperienceRochester_Tricolor_Stacked_be56910c-e3c0-41ac-869b-294032222f7e.png" style width="1200" height="1166" data-width="1200" data-height="1166" data-processed="true"></p> </section></div> </picture> <div data-civid="6421dda0ccc386387b0b3c85" class="contentRender contentRender_31 contentRender_type_widget contentRender_name_plugins_core_textbox" data-sv-time="15" data-sv-index="31" data-gtm-vars='{ "tCore" : { "contentNum" : "4" } }'><section data-sv-core-textbox data-guid="1c28d952-f9c4-4d1a-b4e3-13c7c3d8a87d"> <ul class="address-container"> <li>30 CIVIC CENTER DRIVE SE</li> <li>ROCHESTER MN 55904</li> <li>PHONE <a href="tel:+15072884331">507 288 4331</a></li> </ul> </section></div> </div> <div class="hide-for-large-up" > <div data-civid="6421dda0ccc386387b0b3c87" class="contentRender contentRender_32 contentRender_type_widget contentRender_name_plugins_googletranslate_googletranslate" data-sv-time="11" data-sv-index="32" data-gtm-vars='{ "tCore" : { "contentNum" : "1" } }'><!-- widget removed --> </div> </div> </div> <div class="columns show-for-large-up large-4"> <div data-civid="6421dda0ccc386387b0b3c87" class="contentRender contentRender_32 contentRender_type_widget contentRender_name_plugins_googletranslate_googletranslate" data-sv-time="11" data-sv-index="32" data-gtm-vars='{ "tCore" : { "contentNum" : "1" } }'><!-- widget removed --> </div> <nav class="footer-nav"> <div data-civid="6421dda0ccc386387b0b3c89" class="contentRender contentRender_33 contentRender_type_widget contentRender_name_plugins_nav_footer" data-sv-time="31" data-sv-index="33" data-gtm-vars='{ "tCore" : { "contentNum" : "1" } }'> <ul class="navFooter"> <li class="item item-parent row-1 has-submenu"> <a href="/about-us/" target="_self" class=" has-children" title="About Us" data-gtm-click data-gtm-vars='{ "tClient_ga4" : {"eventName" : "navigation_click", "navType" : "Footer", "linkObject" : "About%20Us" } }'>About Us</a> </li> <li class="item item-parent row-2"> <a href="/contact-us/" target="_self" class="" title="Contact Us" data-gtm-click data-gtm-vars='{ "tClient_ga4" : {"eventName" : "navigation_click", "navType" : "Footer", "linkObject" : "Contact%20Us" } }'>Contact Us</a> </li> <li class="item item-parent row-3"> <a href="/sitemap/" target="_self" class="" title="Sitemap" data-gtm-click data-gtm-vars='{ "tClient_ga4" : {"eventName" : "navigation_click", "navType" : "Footer", "linkObject" : "Sitemap" } }'>Sitemap</a> </li> <li class="item item-parent row-4 last"> <a href="/privacy-policy/" target="_self" class="" title="Privacy Policy" data-gtm-click data-gtm-vars='{ "tClient_ga4" : {"eventName" : "navigation_click", "navType" : "Footer", "linkObject" : "Privacy%20Policy" } }'>Privacy Policy</a> </li> </ul> </div> </nav> </div> <div class="columns medium-6 large-4"> <nav class="footer-nav hide-for-large-up"> <div data-civid="6421dda0ccc386387b0b3c89" class="contentRender contentRender_33 contentRender_type_widget contentRender_name_plugins_nav_footer" data-sv-time="31" data-sv-index="33" data-gtm-vars='{ "tCore" : { "contentNum" : "1" } }'> <ul class="navFooter"> <li class="item item-parent row-1 has-submenu"> <a href="/about-us/" target="_self" class=" has-children" title="About Us" data-gtm-click data-gtm-vars='{ "tClient_ga4" : {"eventName" : "navigation_click", "navType" : "Footer", "linkObject" : "About%20Us" } }'>About Us</a> </li> <li class="item item-parent row-2"> <a href="/contact-us/" target="_self" class="" title="Contact Us" data-gtm-click data-gtm-vars='{ "tClient_ga4" : {"eventName" : "navigation_click", "navType" : "Footer", "linkObject" : "Contact%20Us" } }'>Contact Us</a> </li> <li class="item item-parent row-3"> <a href="/sitemap/" target="_self" class="" title="Sitemap" data-gtm-click data-gtm-vars='{ "tClient_ga4" : {"eventName" : "navigation_click", "navType" : "Footer", "linkObject" : "Sitemap" } }'>Sitemap</a> </li> <li class="item item-parent row-4 last"> <a href="/privacy-policy/" target="_self" class="" title="Privacy Policy" data-gtm-click data-gtm-vars='{ "tClient_ga4" : {"eventName" : "navigation_click", "navType" : "Footer", "linkObject" : "Privacy%20Policy" } }'>Privacy Policy</a> </li> </ul> </div> </nav> <div class="partners"> <div class="textbox"> <div data-civid="6421dda0ccc386387b0b3c8b" class="contentRender contentRender_34 contentRender_type_widget contentRender_name_plugins_core_textbox" data-sv-time="37" data-sv-index="34" data-gtm-vars='{ "tCore" : { "contentNum" : "5" } }'><section data-sv-core-textbox data-guid="05b28249-b48e-4b36-854c-3f08fee03671"> <p><a data-sv-linklookup-id="http://www.exploreminnesota.com/" data-sv-linklookup-type="plugins_nav_external_link" data-sv-targetauto="false" href="http://www.exploreminnesota.com/" target="_blank"><img alt="placeholder" data-processed="true" src="/includes/public/assets/images/placeholders/partners1.png" style></a>  <a data-sv-linklookup-id="https://dmc.mn/" data-sv-linklookup-type="plugins_nav_external_link" data-sv-targetauto="true" href="https://dmc.mn/" target="_blank"><img alt="Destination Medical Center White Logo" data-height="60" data-processed="true" data-width="130" height="60" id="plugins_assets_images_63dc1433f91da35800f17b75" src="https://assets.simpleviewinc.com/simpleview/image/upload/c_fill,h_60,q_75,w_130/v1/clients/rochestermn/DMC_1color_RGB_Wht_v_op_7c94f0b1-693f-4f66-aeb9-ccc779fd95a0.png" style width="130"></a></p> <p><a class="visitusa-logo" data-sv-linklookup-id="https://www.visittheusa.com/node/34261" data-sv-linklookup-type="plugins_nav_external_link" data-sv-targetauto="false" href="https://www.visittheusa.com/node/34261" target="_blank"><img alt="brandusa" data-height="36" data-processed="true" data-width="140" height="36" src="https://assets.simpleviewinc.com/simpleview/image/fetch/c_fill,h_36,q_75,w_140/http://res.cloudinary.com/simpleview/image/upload/v1523979164/clients/rochestermn-redesign/cf1113cd_d0ac_40e8_b6cf_365dadd07f52_210602d3-638a-4d87-a4ff-a460dce69da6.png" style width="140"></a><picture class="imgcont ta-logo"><img alt="Trip Advisor Logo" data-processed="true" src="/includes/public/managed/core/plugins/listings/public/images/ta_logos_custom/logo-ta-horizontal-white.svg" style></picture></p> </section></div> </div> </div> <div class="copyright"> © 2024 All rights reserved. </div> <picture class="imgcont sv-logo"> <a href="https://www.simpleviewinc.com/our-services/creative-design/" target="_blank" class="sv-logo"><img src="/includes/public/assets/images/sv-logo.png"/></a> </picture> </div> </section> <div class="mobile-fixed"> <div class="mobileAd" data-sv-mobiledtn-mobilead> <div class="banner-close" data-sv-mobiledtn-close><span>close</span> <i class="fa fa-times-circle"></i></div> <div class="content"></div> <script data-sv-mobiledtn-adcode type="text/template"><div data-civid="6421dda0ccc386387b0b3c8d" class="contentRender contentRender_35 contentRender_type_widget contentRender_name_plugins_dtn_gam_ad" data-sv-time="10" data-sv-index="35" data-gtm-vars='{ "tCore" : { "contentNum" : "1" } }'> <div class="dtnContainer"> <div class="dtnad" data-sv-adunit="/21812118460/21812952115/21812823359" data-sv-adsize="320x50"></div> <div class="clear"></div> </div> <sv_script> require(["site_gamClient", "domReady!"], function(gamClient) { gamClient.renderAds(); }); </sv_script></div></script> </div> <div data-civid="6421dda0ccc386387b0b3c8f" class="contentRender contentRender_36 contentRender_type_widget contentRender_name_plugins_common_cookie_banner" data-sv-time="10" data-sv-index="36" data-gtm-vars='{ "tCore" : { "contentNum" : "1" } }'> <dialog class="cookie-banner dismissed hide" data-guid="3c07a913-50e8-49ae-919d-92d2e1f4fff8"> <div class="banner-inner"> <div class="banner-message"> <p>Cookies are used for measurement, ads and optimization. By continuing to use our site you agree to our <a data-sv-linklookup-id="5ab409d36fabc5420e516271" data-sv-linklookup-type="plugins_nav_navitem_primary_footer" href="https://www.experiencerochestermn.com/privacy-policy/" target="_self">privacy notice</a>.</p> </div> <div class="banner-close"> <button class="button site-style" aria-label="Close cookie banner" data-sv-close-banner> Accept </button> </div> </div> </dialog> <script> require([ 'jquery', 'sv_clientLib' ], function ($, clientLib) { var root = $('[data-guid="3c07a913-50e8-49ae-919d-92d2e1f4fff8"]'); var bannerSeen = clientLib.getCookie('cookie-banner-seen'); if (bannerSeen !== "true") { root.removeClass('hide'); root.attr('open', true); setTimeout(function() { root.removeClass('dismissed'); }, 500); } root.find('[data-sv-close-banner]').on('click', function() { root.addClass('dismissed'); root.removeAttr('open') setTimeout(function() { root.addClass('hide'); }, 500); clientLib.setCookie({ name : 'cookie-banner-seen', value : 'true', path : '/', 'max-age' : 1438560*60 // 999 days }); }); }); </script></div> </div> </footer> <script> require(["jquery", "sv_stringLib", "sv_clientLib", "lodash"], function($, stringLib, clientLib, lodash) { var root = $(".panel_custom_footer"); var mobileAd = root.find("[data-sv-mobiledtn-mobilead]"); var content = mobileAd.find(".content"); var closeButton = mobileAd.find("[data-sv-mobiledtn-close]"); var storageKey = "mobile_dtn_ad_hide"; var sessionAvailable = clientLib.sessionStorageAvailable(); // show ad if session not available or if it doesn't contain our hide session var var showAd = sessionAvailable === false || window.sessionStorage.getItem(storageKey) !== "true"; closeButton.on("click", function(e) { e.preventDefault(); // if we have session storage, prevent it from appearing on future page views this session if (sessionAvailable) { window.sessionStorage.setItem(storageKey, "true"); } showAd = false; mobileAd.remove(); render(); }); var render = function() { // according to DTN the philosophy should be show this banner if the site in general is in mobile or tablet view regardless of device (determined by width only) var isMobile = window.innerWidth < 1024; var displayAd = isMobile === true && showAd === true; root.toggleClass("hasMobileAd", displayAd); if (displayAd && content.children().length === 0) { // executes the dtn code if the ad should be displayed and the ad wasn't already rendered var html = stringLib.decodeScriptTags(root.find("[data-sv-mobiledtn-adcode]").html()); content.html(html); root.find(".dtnContainer").append(closeButton); } }; render(); // allows cms preview device switcher to work, without having to hit preview refresh button $(window).on("resize", lodash.debounce(render, 300)); }); </script> </div> </div> </div></div> <!-- footer css bundles --> <!-- footer js bundles --> <script src="/includes/public/managed/v_bc66977c_63692723/core/plugins/core/public/js/loginCheck.js"></script> <script src="/includes/public/managed/v_bc66977c_63692723/core/plugins/common/virtuals/js/shared_footer.js"></script> <!-- bottomBody --> <script data-id="site_global_footer"> require(["sv_clientLib", "sv_load!plugins_dynamic_content"], function(clientLib) { clientLib._initLazy(); }); </script> </body> </html>