Things to Do in Syracuse | Attractions, Activities & Shopping (2024)

Skip navigationSkip to main content

{{?}}

{{currentConditions}}

{{current.temp}}°

{{current.condition.text}}

{{#forecast}}

{{day}}

{{high}}°

{{low}}°

{{/forecast}}

{{/}}

EnewsletterVisitors GuideCheck Rates

{{:shownchildren}}

{{/}}

{{/}}{{/}}{{>nav_items_helper}}{{/}}{{>nav_items}}

Events

Places To Stay

Plan Your Visit

Film Office

{{:shownchildren}}

{{/}}

{{/}}{{/}}{{>nav_items_helper}}{{/}}{{>nav_items}}

Things To Do

Events

Places To Stay

Plan Your Visit

Film Office

{{:shownchildren}}

{{/}}

{{/}}{{/}}{{>nav_items_helper}}{{/}}{{>nav_items}}

Meeting Planners

Sports Planners

Travel Trade

Media

Blog

{{:shownchildren}}

{{/}}

Experienceall of the activities, attractions, and events that Syracuse, NY has to offer. Step out into the scenic outdoors, embracethe urban vibrancy of Downtown Syracuse or explore one of our many unique neighborhoods.Find your next big adventure whetherit'skayaking in the summer, hiking through autumn, or chasing frozen waterfalls. Let your inner foodie lead the way to restaurants offering everything from the best brunches to farm-to-table eats. Sip your way through craft breweries, wineries, and cideries. Immerse yourself in the rich history of the region or enjoy the expansive scene. No matter the season, stay inspired on things to do in Syracuse.

AB Variation:

Easter Dining

Winter Daytrips from Syracuse

All Day Winter Play

Find Spring Blooms in CNY

Spend a Spring Weekend in Syracuse

Cozy Winter co*cktails

Celebrate Spring in Syracuse

Syracuse Spring Sporting Events

Planning to visit during another season? Check out some Top Things To Do during the Spring, Summer and Fall in the 'Cuse!

Spend a Spring Weekend in Syracuse

Find things to do for families, couples or the solo traveler this spring!

Your Syracuse Summer Bucket List

Salt potatoes, baseball, mini golf, outdoor concerts, Syracuse Nationals & more.

Top Fall Things To Do in Syracuse

Discover all the fall activities, events and happenings in Syracuse this season.

FAQ's on Things to Do in Syracuse

What are the top outdoor activities in Syracuse?

  • Chase waterfalls at Pratt's Falls or Chittenango Falls State Park
  • Enjoy year-round fun at
  • Enjoy a game of golf
  • Cruise the Skaneateles Lake
  • Hike or walk the trails at Clark Reservation State Park
  • Find more outdoor activities in Syracuse

Find more outdoor activities in Syracuse

What are the top attractions to visit in Syracuse?

  • Armory Square & The MOST
  • The Carrier Dome
  • Destiny USA
  • Dinosaur BBQ
  • Erie Canal Museum

Find more top attractions in Syracuse

What are the top things to do with kids in Syracuse?

  • Museum of Science and Technology (MOST)
  • Rosamond Gifford Zoo at Burnet Park
  • WonderworksSyracuse
  • Erie Canal Museum

Find more things to do with kids in Syracuse

What are the top things to do in Syracuse this winter?

  1. Go ice skating at Clinton Square Ice Rink.
  2. Enjoy a sleigh ride at Highland Forest.
  3. Go snowshoeing at Beaver Lake Nature Center.
  4. Ski, snowboard or tube down a mountain or hill.
  5. Spend a day at a museum.

Discover more things to do in Winter!

{"@context": "https://schema.org","@type": "FAQPage","mainEntity": [{"@type": "Question","name": "What are the top outdoor activities in Syracuse?","acceptedAnswer": {"@type": "Answer","text": "
  • Chase waterfalls at Pratt's Falls or Chittenango Falls State Park
  • Enjoy year-round fun at
  • Enjoy a game of golf
  • Cruise the Skaneateles Lake
  • Hike or walk the trails at Clark Reservation State Park
  • Find more outdoor activities in Syracuse
Find more outdoor activities in Syracuse","url": "https://www.visitsyracuse.com/things-to-do/outdoors-seasons/"}},{"@type": "Question","name": "What are the top attractions to visit in Syracuse?","acceptedAnswer": {"@type": "Answer","text": "
  • Armory Square & The MOST
  • The Carrier Dome
  • Destiny USA
  • Dinosaur BBQ
  • Erie Canal Museum
Find more top attractions in Syracuse","url": "https://www.visitsyracuse.com/things-to-do/visitors-top-picks/"}},{"@type": "Question","name": "What are the top things to do with kids in Syracuse?","acceptedAnswer": {"@type": "Answer","text": "
  • Museum of Science and Technology (MOST)
  • Rosamond Gifford Zoo at Burnet Park
  • WonderworksSyracuse
  • Erie Canal Museum
Find more things to do with kids in Syracuse","url": "https://www.visitsyracuse.com/things-to-do/kid-friendly/"}},{"@type": "Question","name": "What are the top things to do in Syracuse this winter?","acceptedAnswer": {"@type": "Answer","text": "
  1. Go ice skating at Clinton Square Ice Rink.
  2. Enjoy a sleigh ride at Highland Forest.
  3. Go snowshoeing at Beaver Lake Nature Center.
  4. Ski, snowboard or tube down a mountain or hill.
  5. Spend a day at a museum.
Discover more things to do in Winter!","url": "https://www.visitsyracuse.com/things-to-do/outdoors-seasons/winter/"}}]}
window.addEventListener("load", function(){// Merges schema if more than one widget on page. Must fire on page load to avoid errors in Google Search Consolevar schemaBlock = document.querySelectorAll("[data-sv-faqschema]");if(schemaBlock[0].dataset.merged === "true"){return;}var parentBlock, parentBlockMainEntity;var additionalSchema = []; schemaBlock.forEach(block => {if(schemaBlock[0] === block){parentBlock = block;parentBlockMainEntity = JSON.parse(parentBlock.innerHTML);}else{var markup = JSON.parse(block.innerHTML)["mainEntity"]parentBlockMainEntity.mainEntity.push(...markup);block.parentNode.removeChild(block);}});parentBlockMainEntity = JSON.stringify(parentBlockMainEntity);parentBlock.innerHTML = parentBlockMainEntity;parentBlock.setAttribute("data-merged", "true");});
require(['jquery', '//s3.amazonaws.com/downloads.mailchimp.com/js/mc-validate.js'], function(jQuery){ window.fnames = new Array(); window.ftypes = new Array();fnames[0]='EMAIL';ftypes[0]='email';fnames[1]='FNAME';ftypes[1]='text';fnames[3]='ADDRESS';ftypes[3]='address';fnames[7]='MMERGE7';ftypes[7]='zip';fnames[2]='LNAME';ftypes[2]='text';fnames[4]='PHONE';ftypes[4]='phone';fnames[5]='MMERGE5';ftypes[5]='text';fnames[6]='MMERGE6';ftypes[6]='text'; var $mcj = jQuery.noConflict(true); })
{"leo":{"apply":"Apply","clear_filters":"Clear Filters","reset":"Reset","filter":"Filter","sort":"Sort","view":"View","keyword":"Keyword","search_placeholder":"Search","regions":"Region","categories":"Category","grid":"Grid","list":"List","map":"Map","show_map":"Show Map","hide_map":"Hide Map","recommended":"Recommended","near_me":"Near Me","read_more":"Read More","quick_view":"Quick View","featured_title":"Partner","visit_website":"View Website","email":"E-mail","tollfree":"Toll Free","tab_about":"Overview","tab_map":"Map","show_more":"Show $1 more","show_less":"Show Less","results":"$1 results","no_results":"There are no results that match your filter.","miles_from_you":"Miles from You","meeting_rooms":"Meeting Rooms","square_feet":"Total Sq. Ft.","largest_room":"Largest Room","sleeping_rooms":"Sleeping Rooms","banquet":"Banquet Capacity","reception":"Reception Capacity","theatre":"Theater Capacity","classroom":"Classroom Capacity","compare":"Compare","close_compare_dropdown":"Close compare dropdown","compare_add":"Add to compare","compare_remove":"Remove from compare","compare_clear_all":"Clear All","compare_limit_message":"You can only compare four (4) items at a time","location":"Location","locations":"Locations","details":"Details","address":"Address","err_loc_timeout":"We're unable to determine your location at this time.","err_loc_blocked":"You must allow location access for distance sorting.","err_loc_radius":"You must be within $1 miles to sort by distance.","date_range_title":"Show Events For","date_range_day":"Day","date_range_week":"Week","date_range_weekend":"Weekend","date_range_month":"Month","date_range_year":"Year","date_range_selected_dates":"Selected Dates","per_page_label":"Items Per Page","tb_add":"Add to Trip","tb_remove":"Remove from Trip","tb_view":"View Trip","facilities":"Facilities","download":"Download Events as CSV","convention":"Convention","venues":"Venues","dates":"Dates","attendance":"Attendance","whats_nearby":"What's Nearby","attractions":"Attractions","dining":"Dining","accommodations":"Accommodations","events":"Events","things_to_do":"Things To Do","get_directions":"Get Directions","redo_search_in_map":"Redo Search in Map","add_to_calendar":"Add to Calendar","add_to_google_calendar":"Add to Google Calendar","add_to_microsoft_calendar":"Add to Microsoft Live Calendar","add_to_outlook_calendar":"Add to Office365 Outlook Calendar","add_to_iCloud_calendar":"Add to iCloud Calendar","add_to_windows_calendar":"Add to Windows Calendar","start_date":"Start Date","end_date":"End Date"},"listings":{"clear_filters":"Clear Filters","amenities":"Amenities","tab_amenities":"Amenities","tab_meeting_facilities":"Facilities","tab_offers":"Offers","tab_events":"Events","tab_hours":"Hours","tab_tripadvisor":"TripAdvisor","tab_yelp":"Yelp","yelp_closed":"Closed","tab_social_feeds":"Social Feeds","facility_info":"Facility Info","meeting_rooms":"Meeting Rooms","m_exhibits_space":"Exhibits Space","m_description":"Description","m_exhibits":"Exhibits","m_floorplan_file":"Floorplan File","m_largest_room":"Largest Room","m_toll_free":"Toll Free","m_total_sq_ft":"Total Sq. Ft.","m_reception_capacity":"Reception Capacity","m_space_notes":"Space Notes","m_theater_capacity":"Theater Capacity","m_link":"Link","m_villas":"Villas","m_banquet_capacity":"Banquet Capacity","m_number_of_rooms":"Number of Rooms","m_booths":"Booths","m_large_floor_plan_pdf":"Large floor Plan PDF","m_suites":"Suites","m_classroom_capacity":"Classroom Capacity","m_sleeping_rooms":"Sleeping Rooms","m_width":"Width","m_length":"Length","m_height":"Height","m_booth_capacity":"Booth Capacity","m_amphitheater_present":"Amphitheater Present","m_listening_devices_present":"Listening Devices Present"}}{{#data}}{{:rating_image_url}}

{{num_reviews}} reviews

{{/}}{{/data}}
require(["jquery","plugins_core/main","sv_site","sv_crmLib","sv_cloudinaryLib","sv_asyncLib","sv_clientMoment","sv_arrayLib","sv_load!plugins_dtn","plugins_common_custom_layoutjs","plugins_common_custom_lazyload","sv_load!site_gamClient","plugins_common_custom_ui_watcher","sv_clientLib","plugins_common_custom_utils","sv_urlLib","sv_goatee!"], function($,core,site,crmLib,sv_cloudinaryLib,asyncLib,clientMoment,arrayLib,dtn,layoutjs,lazyload,gamClient,UIWatcher,clientLib,utils,urlLib,goatee) {var widget = {"template":"list","showSearchBox":"true","listingcats":"80","amenityoptions":"all"};var useGroupedCats = false;var groupedCats = [{"label":"Accommodations","value":"77"},{"label":"Association/Not-for-Profits","value":"79"},{"label":"Attraction","value":"80","options":[{"label":"Agriculture","value":"3"},{"label":"Antiques/Flea Market","value":"6"},{"label":"Art Gallery","value":"9"},{"label":"Boutique","value":"492"},{"label":"Casino/Arcade","value":"24"},{"label":"Destiny USA","value":"33"},{"label":"Golfing","value":"42"},{"label":"Historical","value":"66"},{"label":"Kid Friendly","value":"72"},{"label":"Library/Research Center","value":"75"},{"label":"Marina/ Boating-Related","value":"78"},{"label":"Museum","value":"87"},{"label":"Nearby Attractions","value":"96"},{"label":"Nightlife","value":"90"},{"label":"Outdoors","value":"114"},{"label":"Pampering","value":"408"},{"label":"Performing Arts","value":"117"},{"label":"Religious Attraction/Worship","value":"126"},{"label":"Seasonal Activities","value":"183"},{"label":"Shopping","value":"405"},{"label":"Sports/Recreation","value":"411"},{"label":"Tours/Cruises","value":"417"},{"label":"Winery/Brewery","value":"468"},{"label":"Zoo","value":"471"}]},{"label":"Festival/Annual Event","value":"85"},{"label":"Historical/Cultural Association/Orginazation","value":"88"},{"label":"Musician/Band","value":"92"},{"label":"Out of Area","value":"96"},{"label":"Dining","value":"103"},{"label":"Services","value":"105"},{"label":"Sports Facilities","value":"106"},{"label":"Transportation","value":"110"},{"label":"Vendor","value":"111"},{"label":"Venue","value":"112"},{"label":"Visitor Services","value":"113"}];var subcats = [{"label":"Agriculture","value":"3"},{"label":"Antiques/Flea Market","value":"6"},{"label":"Art Gallery","value":"9"},{"label":"Boutique","value":"492"},{"label":"Casino/Arcade","value":"24"},{"label":"Destiny USA","value":"33"},{"label":"Golfing","value":"42"},{"label":"Historical","value":"66"},{"label":"Kid Friendly","value":"72"},{"label":"Library/Research Center","value":"75"},{"label":"Marina/ Boating-Related","value":"78"},{"label":"Museum","value":"87"},{"label":"Nearby Attractions","value":"96"},{"label":"Nightlife","value":"90"},{"label":"Outdoors","value":"114"},{"label":"Pampering","value":"408"},{"label":"Performing Arts","value":"117"},{"label":"Religious Attraction/Worship","value":"126"},{"label":"Seasonal Activities","value":"183"},{"label":"Shopping","value":"405"},{"label":"Sports/Recreation","value":"411"},{"label":"Tours/Cruises","value":"417"},{"label":"Winery/Brewery","value":"468"},{"label":"Zoo","value":"471"}];var regions = [{"label":"All Regions","value":"1"},{"label":"Downtown","value":"2"},{"label":"East Area","value":"3"},{"label":"North Area","value":"5"},{"label":"Skaneateles","value":"7"},{"label":"South Area","value":"9"},{"label":"Syracuse University","value":"10"},{"label":"Tipperary Hill Area","value":"11"},{"label":"West Area","value":"12"},{"label":"Destiny USA","value":"46"},{"label":"Out of County","value":"47"}];var regionsChosen = false;var subcatsChosen = false;var specificListingsChosen = false;var hasMapDefault = false;var showRegionsFilter = true;var amenities = [{"label":"Free Wi-Fi","value":"newgeneral_wifi"},{"label":"Vegan Options","value":"neweatdrink_vo"},{"label":"LGBTQ Owned or Led Business","value":"dei_lgbtqowned"},{"label":"Fishing Nearby","value":"newcampingandcabins_fn"},{"label":"Gluten Free Options","value":"neweatdrink_gf"},{"label":"Black Owned or Led Business","value":"dei_blackowned"},{"label":"Air Conditioning","value":"newhotelbandb_ac"},{"label":"Hunting Nearby","value":"newcampingandcabins_hn"},{"label":"Good For Groups or Parties","value":"newgeneral_ggp"},{"label":"Indigenous Owned or Led Business","value":"dei_indigenousowned"},{"label":"Iron","value":"newhotelbandb_i"},{"label":"Lake","value":"newcampingandcabins_l"},{"label":"Family/Gender Neutral Washrooms","value":"newgeneral_fgnw"},{"label":"Person with Disabilties Owned or Led Business","value":"dei_personwithdisa"},{"label":"Mini-Bar","value":"newhotelbandb_mb"},{"label":"Lodging Rentals","value":"newcampingandcabins_lr"},{"label":"Public Washrooms","value":"newgeneral_pw"},{"label":"Live Entertainment","value":"neweatdrink_le"},{"label":"Veteran Owned or Led Business","value":"dei_veteranowned"},{"label":"Non-Smoking Rooms","value":"newhotelbandb_ns"},{"label":"Playground","value":"newcampingandcabins_p"},{"label":"Gift Shop/Souvenirs","value":"newgeneral_gs"},{"label":"Price","value":"neweatdrink_p"},{"label":"Woman Owned or Led Business","value":"dei_womanowned"},{"label":"Rollaway Capable","value":"newhotelbandb_rc"},{"label":"Showers","value":"newcampingandcabins_sh"},{"label":"Near Public Transportation","value":"newgeneral_pt"},{"label":"Private Room","value":"neweatdrink_priv"},{"label":"Hispanic Owned or Led Business","value":"dei_hispanicowend"},{"label":"Safe in Room","value":"newhotelbandb_sr"},{"label":"Dump Station","value":"newcampingandcabins_ds"},{"label":"Motorcoach Friendly","value":"newgeneral_mf"},{"label":"Outdoor Dining","value":"neweatdrink_out"},{"label":"Asian American/Pacific Islander Owned Business","value":"dei_asianpacific"},{"label":"Telephone","value":"newhotelbandb_t"},{"label":"Electric Hook-up","value":"newcampingandcabins_eh"},{"label":"Services for Hearing Impairments","value":"newaccessibility_hi"},{"label":"Catering","value":"neweatdrink_c"},{"label":"Wake-up Service","value":"newhotelbandb_wu"},{"label":"Carry Out","value":"newcampingandcabins_co"},{"label":"Phone Charging Stations","value":"newgeneral_pc"},{"label":"Services for Visually Impaired","value":"newaccessibility_vi"},{"label":"Take Out","value":"neweatdrink_to"},{"label":"Pet Friendly","value":"neweatdrink_pf"},{"label":"Business Center","value":"newhotelbandb_bc"},{"label":"Dining On-Site","value":"newhotelbandb_din"},{"label":"Fitness Center","value":"newhotelbandb_fc"},{"label":"Laundry & Dry Cleaning","value":"newhotelbandb_ldc"},{"label":"Pet-Friendly","value":"newhotelbandb_pet"},{"label":"Tea/Coffee Maker/Electric Kettle","value":"newhotelbandb_tck"},{"label":"Kitchenette","value":"newhotelbandb_k"},{"label":"Late Check Out","value":"newhotelbandb_lco"},{"label":"Room Service","value":"newhotelbandb_rs"},{"label":"Hair Dryer","value":"newhotelbandb_hd"},{"label":"Bar or Lounge On-Site","value":"newhotelbandb_bar"},{"label":"Luggage Storage","value":"newhotelbandb_ls"},{"label":"Jacuzzi Suites","value":"newhotelbandb_js"}];var hasPrimaryCat = true;var initialAmenities = (widget !== undefined && widget.custom_amenities_filter !== undefined) ? widget.custom_amenities_filter : undefined;var dtnargs = {"auid":"/214662569/dtn_featured_listings","limit":10,"sort":"random"};var hasDtn = (dtnargs.auid !== undefined && dtnargs.auid.length > 0 && dtnargs.limit > 0 && dtn !== undefined);var limit = widget.custom_items_per_page !== undefined && site?.siteConfig?.custom?.[site.site].listings?.enablePaginationCountControl ? Number(widget.custom_items_per_page) : site?.siteConfig?.custom?.[site.site].listings?.paginationCountDefault;var defaultHooks = [];var defaultView = widget.custom_defaultView !== undefined ? widget.custom_defaultView : "grid";const translations = JSON.parse(document.querySelector('#translations_92e0ec4c-d55d-43c6-92be-d202604d774e').innerHTML);let abortController;const primaryCat = 80;const taTemplate = document.querySelector('[data-sv-tripadvisorTemplate]').innerHTML;var hideCalendar = false;let widgetStartDate = clientMoment();let widgetEndDate = clientMoment().add(3, 'days');widgetStartDate = widgetStartDate.format('YYYY-MM-DD');widgetEndDate = widgetEndDate.format('YYYY-MM-DD');const showBookingFilters = primaryCat === 77 && !hideCalendar;if (widget.detail_type !== undefined) {defaultHooks.push({ name : "afterFind_custom_detail_type", args : { detail_type : widget.detail_type } });}if (widget.dtnlimit) {// if a limit is specified in the widget, override that passed in configdtnargs.limit = Number(widget.dtnlimit);}if (hasDtn) {// we want the smaller of the limit and dtnargs.limitdtnargs.limit = Math.min(dtnargs.limit, limit);}var allFilterTagItems = subcats.map(function(val) { return { site : site.site, subcatid : Number(val.value) } });// the base filter is the minimum filter applied to all queries. This is *not* the same as a "default" query, or the initial query.// this is the base. Any filter components that can be done in the UI are added to this objectvar baseFilter = {$and : []}if (hasPrimaryCat) {baseFilter.$and.push({filter_tags : {$in : crmLib.getListingFilterTags({ items : allFilterTagItems })}});} else {baseFilter.$and.push({filter_tags : {$in : ['site_' + site.site]}});}if (regionsChosen) {baseFilter.regionid = {$in : regions.map(function(val) { return Number(val.value) })}}if (specificListingsChosen) {baseFilter.recid = { $in : widget.custom_specific_listings_ids };}if (initialAmenities && widget.amenityoptions === "none") {initialAmenities.forEach(function(val) {baseFilter["amenities." + val + ".value_raw"] = true;});}else if (initialAmenities && widget.amenityoptions === "custom") {initialAmenities.forEach(function(val) {let selected = amenities.some(function(amenity) { return amenity.value === val; });if (!selected) {baseFilter["amenities." + val + ".value_raw"] = true;}});}var masterFlow = new asyncLib.Flow();masterFlow.series({init: function(cb) {var vue = layoutjs.getVue({rootNode : document.querySelector('#layoutjs_92e0ec4c-d55d-43c6-92be-d202604d774e'),type : "listings",view : defaultView,limit : limit,sort : "qualityScore",translations : translations.leo,mapOpen: hasMapDefault,// if there is a defaultImageUrl defined in client config, use it. Else it will utilize the default declared in custom_layoutjs.jsfallbackImageUrl : site.siteConfig.custom && site.siteConfig.custom[site.site] && site.siteConfig.custom[site.site].defaultImageUrl,showFilter : true,baseFilter : baseFilter,// change to true in order to show the first and last page arrowspager_first_last_page_arrows: false,filters : [{name : "keyword",label : translations.leo.keyword,placeholder : translations.leo.search_placeholder,type : "keyword",toFilter : function(value, filter, context) {filter.solrOptions = {keyword : value}return filter;}},{name : "onlybooking",label : "Show only bookable accommodations",type : "toggle",show: showBookingFilters,toFilter : function(value, filter, context) {filter.bookingOptions = {...filter.bookingOptions,filter: true,currency: 'USD',}return filter;}},{name : 'daterange',label : 'Check in/Check out',type : 'daterange',reset : false,show: showBookingFilters,initialValue : {start : widgetStartDate,end : widgetEndDate},typeExtra : {dateFormat : 'MMM Do',showQuicklinks: false,},toFilter : function(value, filter, context) {if (context === 'query') {filter.bookingOptions = {...filter.bookingOptions,start_date: clientMoment(value.start).format('YYYY-MM-DD'),end_date: clientMoment(value.end).format('YYYY-MM-DD'),currency: 'USD',}} else if (context === 'runCounts') {delete filter.bookingOptions;}return filter;}},{name : "subcats",label : translations.leo.categories,show : subcats.length > 1,type : useGroupedCats ? "twostage" : "checkbox",typeExtra : {options : useGroupedCats ? groupedCats : subcats,countArgs : {watchFilters : ["amenities", "regions"],unsupportedFilters : ["keyword"],field : "categories.subcatid",unwind : "categories",model : "plugins_listings_listings",sort : true}},toFilter : function(value, filter, context) {filter.$and.push({filter_tags : {$in : crmLib.getListingFilterTags({ items : this.custom_selectedSubcatItems })}});return filter;}},{name : "regions",label : translations.leo.regions,// we implicitly filter on regions if they have been selected in the widget, so no reason to display a region option with 1 choice// if no regions were selected, then a region option with 1 choice is valid and therefore we pass the whole arrayshow : showRegionsFilter && (regionsChosen ? regions.length > 1 : regions.length > 0),type : "checkbox",typeExtra : {options : regions,countArgs : {watchFilters : ["subcats", "amenities"],unsupportedFilters : ["keyword"],field : "regionid",model : "plugins_listings_listings",sort : true}},toFilter : function(value, filter, context) {filter.$and.push({regionid : { $in : value.map(function(val) { return Number(val) }) }});return filter;}},{name : "amenities",label : translations.listings.amenities,// we do not implicitly filter on amenities so if there is only one available option we still want to show the checkboxshow : amenities.length > 0,type : "checkbox",initialValue : initialAmenities,typeExtra : {options : amenities,countArgs : {watchFilters : ["subcats", "regions", "amenities"],unsupportedFilters : ["keyword"],field : "amenities_array.uniquename",unwind : "amenities_array",model : "plugins_listings_listings",sort : true}},toFilter : function(value, filter) {value.forEach(function(val) {filter["amenities." + val + ".value_raw"] = true;});return filter;}}],sortOptions : [{ value : "qualityScore", label : translations.leo.recommended, tabindex : 0 },{ value : "distance", label : translations.leo.near_me, tabindex : 0 },{ value : "pan", label : '' , tabindex : -1 }],limitOptions : site?.siteConfig?.custom?.[site.site].listings?.enablePaginationCountControl && site?.siteConfig?.custom?.[site.site].listings?.paginationOptions ? site.siteConfig.custom[site.site].listings.paginationOptions : [],maxRangeMiles : 100,latitude : 43.088947,longitude : -76.15448,data : {custom_catid : (widget.listingcats !== undefined) ? Number(widget.listingcats) : undefined,custom_dtnids : []},// computed allows the passing of computed and method properties, in cases where they may need to be unique to the templatecomputed : {custom_selectedSubcatItems : function() {return this.filter_subcats_numberArray.map(function(val) { return { site : site.site, subcatid : val } });},custom_dtnFilterTagItems : function() {// if we have not chosen subcats in the widget, then we need to load via the category id// if we have chosen subcats then we utilize whatever the state of the if (this.custom_selectedSubcatItems.length > 0) {// if we have items selected in the UI, use themreturn this.custom_selectedSubcatItems;} else if (subcatsChosen) {// if we have items chosen in the widget, use thosereturn allFilterTagItems;} else {// otherwise fall back to the chosen catidreturn [{ site : site.site, catid : this.custom_catid }];}}},methods : {},watch : {docs: function() {// place logic in here that needs to happen after render of itemsthis.$nextTick(function() {if (hasDtn) {gamClient.renderAds();}lazyload.lazy($(this.$el).find('.content .item').toArray());});// tripadvisorconst taBeacons = Array.from(this.$el.querySelectorAll('[data-tripadvisor-beacon]'));taBeacons.forEach(ta => {const item = ta.closest('.item');const recid = ta.closest('[data-recid]').getAttribute('data-recid');const taParams = `?service=tripadvisor&recid=${recid}`;fetch(`/includes/plugins/listings/getreviews/${taParams}`).then(res => {if (res.ok) {return res.json();}else {throw new Error(`${res.status}: ${res.statusText}`);}}).then(d => {const markup = goatee.fill(taTemplate, d);item.classList.add('has-tripadvisor');ta.innerHTML = markup;}).catch(err => console.error(err));})}},query : function(cb) {var self = this;var filter = self.getFilter("query");var options = {limit : self.limit,skip : self.skip,count : true,castDocs : false,fields : {primary_category : 1,recid : 1,title : 1,address1 : 1,url : 1,isDTN : 1,latitude : 1,longitude : 1,primary_image_url : 1,qualityScore : 1,weburl : 1,hasTripAdvisor: 1,"dtn.rank" : 1,"yelp.rating" : 1,"yelp.url" : 1,"yelp.review_count" : 1,"yelp.price" : 1,booking_price_avg: 1,booking_price_total: 1,booking_full: 1,'listingudfs_object.277' : 1,rankorder : 1},hooks : defaultHooks};if (self.sort === "pan") {options.sort = { qualityScore : -1, sortcompany : 1 };filter["loc.coordinates"] = {"$geoWithin": {"$geometry": {type: "Polygon",coordinates: [[[parseFloat(self.bounds.W),parseFloat(self.bounds.N)],[parseFloat(self.bounds.E),parseFloat(self.bounds.N)],[parseFloat(self.bounds.E),parseFloat(self.bounds.S)],[parseFloat(self.bounds.W),parseFloat(self.bounds.S)],[parseFloat(self.bounds.W),parseFloat(self.bounds.N)]]]}}}} else if (self.sort === "qualityScore") {options.sort = { rankorder : 1, qualityScore : -1, sortcompany : 1 };} else if (self.sort === "distance") {filter.solrOptions = filter.solrOptions || {};filter.solrOptions.sort = "distance";filter.solrOptions.point = [self.georesult.latitude, self.georesult.longitude].join(",");filter.solrOptions.radius = self.args.maxRangeMiles.toString();}if (options.skip === 0) {// whenever the skip is 0, we reset the custom_dtnids back to scratchself.custom_dtnids = [];}var flow = new asyncLib.Flow();flow.series({dtn : function(cb) {if (hasDtn === false || options.skip > 0 || self.sort === "distance" || self.custom_catid === undefined || self.sort === "pan") {return cb(null, []);}var dtnFilter = self.getFilter("query");dtnFilter.$and.push({filter_tags : {$in : crmLib.getListingFilterTags({ items : self.custom_dtnFilterTagItems, 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 UTCvar today2359 = clientMoment().endOf("day"); // send date as 23:59:59 in the client timezone in UTCdtnFilter.$and.push({$or : [{ "dtn.sdate" : { $lte : { $date : today0000.toISOString() } } },{ "dtn.sdate" : { $exists : false } }]},{$or : [{ "dtn.edate" : { $gte : { $date : today2359.toISOString() } } },{ "dtn.edate" : { $exists : false } }]});var dtnOptions = utils.extend({}, options, {// we allow DTN to oversell the first page by a factor of 2// we will pull from this set a max of the limitlimit : self.limit * 2,count : false,hooks : defaultHooks.concat("afterFind_dtn")});if (abortController) {abortController.abort();}abortController = new AbortController();const xhr = new URL(`${window.location.protocol}//${window.location.host}/includes/rest_v2/plugins_listings_listings/find/`);xhr.searchParams.append('json', JSON.stringify({ filter : dtnFilter, options : dtnOptions }));xhr.searchParams.append('token', core.simpleToken );const fetchOptions = {method: 'GET',mode: 'no-cors',signal: abortController.signal,};if (showBookingFilters) {// First issue, start and enddate can't be the sameif(filter.bookingOptions.start_date == filter.bookingOptions.end_date) {filter.bookingOptions.end_date = clientMoment(filter.bookingOptions.end_date).add(3, "days").format('YYYY-MM-DD');}// Second issue, at 7pm the booking has to use the next day.if(clientMoment().hours() >= 19) {filter.bookingOptions.start_date = clientMoment(filter.bookingOptions.start_date).add(1, "days").format('YYYY-MM-DD');filter.bookingOptions.end_date = clientMoment(filter.bookingOptions.end_date).add(3, "days").format('YYYY-MM-DD');}}fetch(xhr, fetchOptions).then(function(res) { return res.json() }).then(function(res) {// randomize the result set, then trim it down to our desired limitres.docs = arrayLib.randomize(res.docs);res.docs = res.docs.splice(0, dtnargs.limit);res.docs.forEach(function(val) {self.custom_dtnids.push(val.recid);val.dtnAuid = dtnargs.auid;val.isDTN = true;});return cb(null, res.docs);}).catch(function(err) {if (err.name === "AbortError") {return flow.halt({ total : 0, docs : [] });}return cb(new Error(err));});},data : function(cb) {if (flow.data.dtn.length > 0) {// has DTN listings, need to adjust page 1 limit and store dtnids for exclusion from main query on all pagesoptions.limit -= self.custom_dtnids.length;} else {options.skip = Math.max(0, (options.skip - self.custom_dtnids.length));}if (self.custom_dtnids.length > 0) {filter.recid = { $nin : self.custom_dtnids }}if (self.custom_dtnids.length === self.limit && options.limit <= 0) {options.limit = 1;}if (abortController) {abortController.abort();}abortController = new AbortController();const xhr = new URL(`${window.location.protocol}//${window.location.host}/includes/rest_v2/plugins_listings_listings/find/`);xhr.searchParams.append('json', JSON.stringify({ filter : filter, options : options }));xhr.searchParams.append('token', core.simpleToken );const fetchOptions = {method: 'GET',mode: 'no-cors',signal: abortController.signal,};fetch(xhr, fetchOptions).then(function(res) { return res.json() }).then(function(res) {var returnData = {total : res.docs.count + self.custom_dtnids.length,docs : flow.data.dtn.concat(res.docs.docs).slice(0, self.limit)};const params = urlLib.parse(window.location.toString()).getconst hasBooking = params['filter_daterange'] !== undefined;let bookingquery = {};let bookingParams = '';if (hasBooking) {bookingquery = {filter_daterange: params['filter_daterange'],};bookingParams = urlLib.build({ get: bookingquery });}returnData.docs = returnData.docs.map(function(val) {return {recid : val.recid,title : val.title,crmc : val.primary_category.catname,crmsc : val.primary_category.subcatname,image_url : val.primary_image_url,url : val.url,dtn : val.isDTN ? {auid : dtnargs.auid,rank : val.dtn.rank} : undefined,yelp : val.yelp,locations: [{title : val.address1}], // sets listing locationlatitude : val.latitude,longitude : val.longitude,qualityScore : val.qualityScore,booking_full: val.booking_full,booking_price_avg: val.booking_price_avg,booking_price_total: val.booking_price_total,button : {title : translations.leo.read_more,url : val.url,weburl : val.weburl,weburl_title : translations.leo.visit_website}, // call to action buttonhasTripAdvisor: val.hasTripAdvisor,checkRates : val.listingudfs_object && val.listingudfs_object[277] ? val.listingudfs_object[277].value_string : undefined,}});return cb(null, returnData);}).catch(function(err) {if (err.name === "AbortError") {return flow.halt({ total : 0, docs : [] });}return cb(new Error(err));});}}, flow.cbLast(cb));}});/* register available UI events */var watcher = new UIWatcher(vue, $, document);var uid = clientLib.uuid().toString();var widgetEvents = ["change-page", "view-change", "value-change", "sort-change", "toggle-show-more","scroll-into-view", "item-click", "title-click", "map-pin-click", "tripbuilder"];for (var i=0; i

Sign up for our E-Newsletter

Things to Do in Syracuse | Attractions, Activities & Shopping (2024)
Top Articles
Latest Posts
Article information

Author: Roderick King

Last Updated:

Views: 6447

Rating: 4 / 5 (51 voted)

Reviews: 82% of readers found this page helpful

Author information

Name: Roderick King

Birthday: 1997-10-09

Address: 3782 Madge Knoll, East Dudley, MA 63913

Phone: +2521695290067

Job: Customer Sales Coordinator

Hobby: Gunsmithing, Embroidery, Parkour, Kitesurfing, Rock climbing, Sand art, Beekeeping

Introduction: My name is Roderick King, I am a cute, splendid, excited, perfect, gentle, funny, vivacious person who loves writing and wants to share my knowledge and understanding with you.