{"id":3838,"date":"2024-10-18T11:07:14","date_gmt":"2024-10-18T11:07:14","guid":{"rendered":"https:\/\/www.kassiopeia.fi\/hotel-matts\/?page_id=3838"},"modified":"2026-03-24T12:03:05","modified_gmt":"2026-03-24T12:03:05","slug":"golf-in-espoo","status":"publish","type":"page","link":"https:\/\/www.kassiopeia.fi\/hotel-matts\/en\/golf-in-espoo\/","title":{"rendered":"Golf"},"content":{"rendered":"\n<div class=\"wp-block-cover alignfull is-light cover-hero wp-duotone-unset-1\" style=\"margin-top:0px;margin-bottom:0px;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;min-height:30vw;aspect-ratio:unset;\"><img loading=\"lazy\" decoding=\"async\" width=\"2000\" height=\"1332\" class=\"wp-block-cover__image-background wp-image-2805\" alt=\"Hirsala Golf Course in Espoo.\" src=\"https:\/\/www.kassiopeia.fi\/hotel-matts\/wp-content\/uploads\/sites\/2\/2024\/10\/Hirsala-golf.jpg\" style=\"object-position:55% 38%\" data-object-fit=\"cover\" data-object-position=\"55% 38%\" srcset=\"https:\/\/www.kassiopeia.fi\/hotel-matts\/wp-content\/uploads\/sites\/2\/2024\/10\/Hirsala-golf.jpg 2000w, https:\/\/www.kassiopeia.fi\/hotel-matts\/wp-content\/uploads\/sites\/2\/2024\/10\/Hirsala-golf-300x200.jpg 300w, https:\/\/www.kassiopeia.fi\/hotel-matts\/wp-content\/uploads\/sites\/2\/2024\/10\/Hirsala-golf-1024x682.jpg 1024w, https:\/\/www.kassiopeia.fi\/hotel-matts\/wp-content\/uploads\/sites\/2\/2024\/10\/Hirsala-golf-768x511.jpg 768w, https:\/\/www.kassiopeia.fi\/hotel-matts\/wp-content\/uploads\/sites\/2\/2024\/10\/Hirsala-golf-1536x1023.jpg 1536w\" sizes=\"auto, (max-width: 2000px) 100vw, 2000px\" \/><span aria-hidden=\"true\" class=\"wp-block-cover__background has-black-background-color has-background-dim-0 has-background-dim\"><\/span><div class=\"wp-block-cover__inner-container is-layout-flow wp-container-core-cover-is-layout-6e17fc20 wp-block-cover-is-layout-flow\">\n<h1 class=\"wp-block-heading has-text-align-center\" id=\"h-\" style=\"font-size:70px\"><\/h1>\n\n\n\n<p><\/p>\n<\/div><\/div>\n\n\n\n<div class=\"wp-block-group hiddenx is-layout-constrained wp-container-core-group-is-layout-72190d31 wp-block-group-is-layout-constrained\" style=\"margin-top:0;margin-bottom:0;padding-top:0;padding-right:0;padding-bottom:0;padding-left:0\">\n<div class=\"mews-booking-engine2-bg\" onclick=\"mewsCalendar.clickMewsCloseCalendar()\"><\/div>\n\n<div class=\"mews-booking-engine2-hero\" style=\"background-image: url('https:\/\/www.kassiopeia.fi\/hotel-matts\/wp-content\/uploads\/sites\/2\/2024\/09\/lahjakortti_tausta.jpg');\">\n\t<div class=\"mews-booking-panel\">\n        <div class=\"mews-calendar-item\">\n            <div class=\"mews-calendar-label\">\n                <img decoding=\"async\" src=\"https:\/\/www.kassiopeia.fi\/hotel-matts\/wp-content\/uploads\/sites\/2\/2025\/11\/varauskalenteri_matts.svg\">\n                <div>Book accommodation:<\/div>            <\/div>\n            <div class=\"mews-calendar-input\">\n                <!--<input type=\"text\" id=\"mews-calendar-start\" disabled value=\"21.10.2025\"\/>-->\n                <div class=\"mews-calendar-input-field\" id=\"mews-calendar-start\" onclick=\"mewsCalendar.clickMewsOpenCalendar()\">\n                    <div class=\"mews-date-label\"><span id=\"mews-date-label-start\"><\/span> &#8211; <span id=\"mews-date-label-end\"><\/span><\/div>\n                    <div class=\"grid\">\n                        <div class=\"cell\"><\/div><div class=\"cell\"><\/div><div class=\"cell\"><\/div>\n                        <div class=\"cell\"><\/div><div class=\"cell\"><\/div><div class=\"cell\"><\/div>\n                        <div class=\"cell\"><\/div><div class=\"cell\"><\/div><div class=\"cell\"><\/div>\n                    <\/div>\n                <\/div>\n                <div class=\"mews-calendar-widget-container\">\n    <div id=\"mews-calendar-widget\">\n        <div class=\"mews-calendar-widget-close\" id=\"mews-calendar-close\" onclick=\"mewsCalendar.clickMewsCloseCalendar()\">\n            <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 24 24\" width=\"65\" height=\"65\" role=\"img\" aria-label=\"Close\">\n                <circle cx=\"12\" cy=\"12\" r=\"11\" fill=\"none\"\/>\n                <path d=\"M8.5 8.5L15.5 15.5M15.5 8.5L8.5 15.5\" stroke=\"currentColor\" stroke-width=\"1.0\" stroke-linecap=\"round\" stroke-linejoin=\"round\" fill=\"none\"\/>\n            <\/svg>\n        <\/div>\n        <div class=\"mcw-inner\">\n            <div class=\"mcw-table-container\">\n                <div class=\"mcw-table mcw-table-l\">\n                    <div class=\"calendar-arrow calendar-arrow-l\" onclick=\"mewsCalendar.clickArrow(1)\">\n                        <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 24 24\" width=\"24\" height=\"24\" aria-hidden=\"true\" focusable=\"false\">\n                            <path d=\"M15 5l-7 7 7 7\" fill=\"none\" stroke=\"white\" stroke-width=\"3\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/>\n                        <\/svg>\n                    <\/div>\n                    <div class=\"calendar-title\" id=\"calendar-title-1\"><\/div>\n                    <div id=\"calendar-weekdays1\"><\/div>\n                    <div class=\"calendar-days\" id=\"calendar-days1\"><\/div>\n                <\/div>\n                <div class=\"mcw-table mcw-table-r\">\n                    <div class=\"calendar-arrow calendar-arrow-r\" onclick=\"mewsCalendar.clickArrow(2)\">\n                        <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 24 24\" width=\"24\" height=\"24\" aria-hidden=\"true\" focusable=\"false\">\n                            <path d=\"M9 5l7 7-7 7\" fill=\"none\" stroke=\"white\" stroke-width=\"3\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/>\n                        <\/svg>\n                    <\/div>\n                    <div class=\"calendar-title\" id=\"calendar-title-2\"><\/div>\n                    <div id=\"calendar-weekdays2\"><\/div>\n                    <div class=\"calendar-days\" id=\"calendar-days2\"><\/div>\n                <\/div>\n            <\/div>\n            <div class=\"mcw-button\">\n                <button class=\"btn-secondary\" id=\"mews-submit-button-calendar-desktop\" onclick=\"mewsCalendar.clickMewsCloseCalendar()\">\n                    Select dates                <\/button>\n            <\/div>\n        <\/div>\n    <\/div>\n<\/div>                <div class=\"mews-calendar-widget-container-mobile\">\n    <div id=\"mews-calendar-widget-mobile\">\n        <div class=\"mcw-top\">\n            <div>\n                Date            <\/div>\n            <div class=\"mews-calendar-widget-close\" onclick=\"mewsCalendar.clickMewsCloseCalendar()\">\n                <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 24 24\" width=\"50\" height=\"50\" role=\"img\" aria-label=\"Close\">\n                    <circle cx=\"12\" cy=\"12\" r=\"11\" fill=\"none\"\/>\n                    <path d=\"M8.5 8.5L15.5 15.5M15.5 8.5L8.5 15.5\" stroke=\"currentColor\" stroke-width=\"1.0\" stroke-linecap=\"round\" stroke-linejoin=\"round\" fill=\"none\"\/>\n                <\/svg>\n            <\/div>\n        <\/div>\n        <div class=\"mcw-content\" id=\"mcw-content-mobile\"><\/div>\n        <div class=\"mcw-bottom\">\n            <button class=\"btn-secondary\" id=\"mews-submit-button-calendar-mobile\" onclick=\"mewsCalendar.clickMewsCloseCalendar()\">\n                Select dates            <\/button>\n        <\/div>\n    <\/div>\n<\/div>            <\/div>\n        <\/div>\n        <input type=\"hidden\" id=\"mews-selected-start-year\" value=\"\">\n        <input type=\"hidden\" id=\"mews-selected-start-month\" value=\"\">\n        <input type=\"hidden\" id=\"mews-selected-start-day\" value=\"\">\n        <input type=\"hidden\" id=\"mews-selected-end-year\" value=\"\">\n        <input type=\"hidden\" id=\"mews-selected-end-month\" value=\"\">\n        <input type=\"hidden\" id=\"mews-selected-end-day\" value=\"\">\n        <button class=\"distributor-open\" id=\"mews-submit-button\">&#8230;<\/button>\n        <div id=\"mews-test\"><\/div>\n    <\/div>\n    <div>\n        \n<p class=\"has-small-font-size\">Why book directly from us? <a href=\"https:\/\/www.kassiopeia.fi\/hotel-matts\/en\/why-book-directly\/\">See all benefits \u2192<\/a><\/p>\n    <\/div>\n<\/div>\n\n<script>\n\n    class MewsCalendar {\n        constructor() {\n            this.now = new Date(); \/\/Production\n            \/\/this.now = new Date('2027-12-28T10:00:00'); \/\/Testing\n            this.dayNow = this.now.getDate();\n            this.monthNow = this.now.getMonth() + 1;\n            this.yearNow = this.now.getFullYear();\n            this.monthNext = this.now.getMonth() + 2;\n            this.yearNext = this.now.getFullYear();\n            if (this.monthNow == 12) this.yearNext++;\n            this.monthNowSelected = this.monthNow;\n            this.yearNowSelected = this.yearNow;\n            this.monthNextSelected = this.monthNext;\n            this.yearNextSelected = this.yearNext;\n            if (this.monthNextSelected <= 0) this.monthNextSelected = 12;\n            if (this.monthNextSelected > 12) this.monthNextSelected = 1;\n            this.weekdayNames = ['mon', 'tue', 'wed', 'thu', 'fri', 'sat', 'sun'];this.monthNames = ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'];            this.generateCalendar(1);\n            this.generateCalendar(2);\n            this.generateMonthDays(1, this.monthNowSelected, this.yearNowSelected);\n            this.generateMonthDays(2, this.monthNextSelected, this.yearNextSelected);\n            let tomorrow = new Date();\n            tomorrow.setDate(tomorrow.getDate() + 1);\n            this.setDateLabels(this.dateToString(this.now), this.dateToString(tomorrow));\n            this.arrayDates = [];\n            this.arrayDatesSorted = [];\n            this.clickDayCount = 0;\n        }\n\n        setDateLabels(start, end) {\n            jQuery('#mews-date-label-start').html(start);\n            jQuery('#mews-date-label-end').html(end);\n        }\n\n        clickMewsOpenCalendar() {\n            jQuery('.mews-booking-engine2-bg').fadeIn(50);\n            jQuery('#mews-calendar-widget').fadeIn(50);\n            jQuery('#mews-calendar-widget-mobile').fadeIn(50);\n        }\n\n        clickMewsCloseCalendar() {\n\t\t\tjQuery('.mews-booking-engine2-bg').fadeOut(50);\n            jQuery('#mews-calendar-widget').fadeOut(50);\n            jQuery('#mews-calendar-widget-mobile').fadeOut(50);\n        }\n\n        generateCalendar(id) {\n            this.generateWeekdays(id);\n            let html = '';\n            for (let y=0; y<6; y++) {\n                html += '<div class=\"row\">';\n                    for (let x=0; x<7; x++) {\n                        let day = y*7+x+1;\n                        html += '<div class=\"day-square day-square-' + id + '\" id=\"' + id + '-day-' + day + '\" data-day=\"0\" onclick=\"mewsCalendar.clickDay(this)\">';\n                        html += '<div class=\"day-square-inner\">';\n                        html += '<div class=\"day-square-circle\"><\/div>';\n                        html += '<\/div>';\n                        html += '<\/div>';\n                    }\n                html += '<\/div>';\n            }\n            jQuery('#calendar-days' + id).html(html);\n        }\n\n        generateWeekdays(id) {\n            let html = '<div class=\"calendar-weekdays\">';\n            html += '<div>' + this.weekdayNames[0] + '<\/div>';\n            html += '<div>' + this.weekdayNames[1] + '<\/div>';\n            html += '<div>' + this.weekdayNames[2] + '<\/div>';\n            html += '<div>' + this.weekdayNames[3] + '<\/div>';\n            html += '<div>' + this.weekdayNames[4] + '<\/div>';\n            html += '<div>' + this.weekdayNames[5] + '<\/div>';\n            html += '<div>' + this.weekdayNames[6] + '<\/div>';\n            html += '<\/div>';\n            jQuery('#calendar-weekdays' + id).html(html);\n        }\n\n        clickArrow(dir) {\n            if (dir == 1) {\n                if (this.monthNow == this.monthNowSelected && this.yearNow == this.yearNowSelected) {\n                    \/\/Do nothing\n                } else {\n                    this.monthNowSelected--;\n                    if (this.monthNowSelected <= 0) {\n                        this.monthNowSelected = 12;\n                        this.yearNowSelected--;\n                    }\n                    this.monthNextSelected--;\n                    if (this.monthNextSelected <= 0) {\n                        this.monthNextSelected = 12;\n                        this.yearNextSelected--;\n                    }\n                }\n            }\n            if (dir == 2) {\n                this.monthNowSelected++;\n                if (this.monthNowSelected > 12) {\n                    this.monthNowSelected = 1;\n                    this.yearNowSelected++;\n                }\n                this.monthNextSelected++;\n                if (this.monthNextSelected > 12) {\n                    this.monthNextSelected = 1;\n                    this.yearNextSelected++;\n                }\n            }\n            this.generateCalendar(1);\n            this.generateCalendar(2);\n            this.generateMonthDays(1, this.monthNowSelected, this.yearNowSelected);\n            this.generateMonthDays(2, this.monthNextSelected, this.yearNextSelected);\n            this.markSelectedDates();\n        }\n\n        generateMonthDays(id, month, year) {\n            \/\/console.log('generateMonthDays', id, month, year);\n            const firstDay = new Date(year, month-1, 1);\n            const firstDayId = (firstDay.getDay() + 6) % 7 + 1;\n            const daysInMonth = new Date(year, month, 0).getDate();\n            let html = '';\n            \/\/jQuery('.day-square-' + id).html('');\n            jQuery('.day-square-' + id).data('day', 0);\n            jQuery('.day-square-' + id).removeClass('disabled');\n            jQuery('.day-square-' + id).removeClass('current');\n            for (let i=firstDayId; i<daysInMonth+firstDayId; i++) {\n                const day = i-firstDayId+1;\n                const dateStr = day + '.' + month + '.' + year;\n                \/\/console.log(dateStr);\n                \/\/jQuery('#' + id + '-day-' + i).html(day);\n                jQuery('#' + id + '-day-' + i + ' .day-square-circle').html(day);\n                jQuery('#' + id + '-day-' + i).data('day', day + '.' + month + '.' + year);\n                if (this.stringToDate(dateStr) < this.now) {\n                    jQuery('#' + id + '-day-' + i).addClass('disabled');\n                    \/\/console.log('disabled', this.now);\n                }\n                if (dateStr == this.dateToString(this.now)) jQuery('#' + id + '-day-' + i).addClass('current');\n            }\n            const monthName = this.monthNames[month-1];\n            jQuery('#calendar-title-' + id).html(monthName + ' ' + year);\n            this.removeEmptyRows(id);\n        }\n\n        removeEmptyRows(id) {\n            let count = 0;\n            let rowCount = 0;\n            let html = '';\n            jQuery('.day-square-' + id).each(function() {\n                count++;\n                html += jQuery(this).html();\n                if (count % 7 == 0) {\n                    rowCount++;\n                    if (html == '') {\n                        const first = (rowCount-1)*7+1;\n                        for (let i=first; i<first+7; i++) {\n                            jQuery('#' + id + '-day-' + i).remove();\n                        }\n                    }\n                    html = '';\n                }\n            });\n        }\n\n        clickDay = (event) => {\n            const id = jQuery(event).attr('id');\n            const str = jQuery(event).data('day');\n            \/\/console.log(id, str);\n            if (this.arrayDates[0] != undefined && this.arrayDates[1] != undefined) {\n                this.arrayDates = [];\n                this.arrayDatesSorted = [...this.arrayDates].sort((a, b) => a - b);\n                this.markSelectedDates();\n            }\n            if (this.arrayDates[0] != undefined && this.arrayDates[1] == undefined) {\n                this.arrayDates[1] = this.stringToDate(str);\n                this.arrayDatesSorted = [...this.arrayDates].sort((a, b) => a - b);\n                this.markSelectedDates();\n            }\n            if (this.arrayDates[0] == undefined && this.arrayDates[1] == undefined) {\n                this.arrayDates[0] = this.stringToDate(str);\n                this.arrayDatesSorted = [...this.arrayDates].sort((a, b) => a - b);\n                this.markSelectedDates();\n            }\n        }\n\n        markSelectedDates() {\n            const date1 = this.arrayDatesSorted[0];\n            const date2 = this.arrayDatesSorted[1];\n            const str1 = this.dateToString(date1);\n            const str2 = this.dateToString(date2);\n            jQuery('.day-square-1').removeClass('selected');\n            jQuery('.day-square-1').removeClass('selected-strong1');\n            jQuery('.day-square-1').removeClass('selected-strong2');\n            jQuery('.day-square-2').removeClass('selected');\n            jQuery('.day-square-2').removeClass('selected-strong1');\n            jQuery('.day-square-2').removeClass('selected-strong2');\n            if (str1.length > 1) {\n                this.setDateLabels(str1, str2);\n                jQuery('.day-square-1').each(function() {\n                    const dataDay = jQuery(this).data('day');\n                    if (dataDay.length > 1) {\n                        const [day, month, year] = dataDay.split('.').map(Number);\n                        const dataDayDate = new Date(year, month - 1, day);\n                        if (dataDayDate > date1 && dataDayDate < date2) {\n                            jQuery(this).addClass('selected');\n                        }\n                        if (dataDay == str1) jQuery(this).addClass('selected-strong1');\n                        if (dataDay == str2) jQuery(this).addClass('selected-strong2');\n                    }\n                });\n                jQuery('.day-square-2').each(function() {\n                    const dataDay = jQuery(this).data('day');\n                    if (dataDay.length > 1) {\n                        const [day, month, year] = dataDay.split('.').map(Number);\n                        const dataDayDate = new Date(year, month - 1, day);\n                        if (dataDayDate > date1 && dataDayDate < date2) {\n                            jQuery(this).addClass('selected');\n                        }\n                        if (dataDay == str1) jQuery(this).addClass('selected-strong1');\n                        if (dataDay == str2) jQuery(this).addClass('selected-strong2');\n                    }\n                });\n            } else {\n                jQuery('.day-square-1').removeClass('selected');\n                jQuery('.day-square-2').removeClass('selected');\n            }\n            if (str1.length > 1 && str2.length > 1) {\n                jQuery('#mews-selected-start-year').val(date1.getFullYear());\n                jQuery('#mews-selected-start-month').val(date1.getMonth());\n                jQuery('#mews-selected-start-day').val(date1.getDate());\n                jQuery('#mews-selected-end-year').val(date2.getFullYear());\n                jQuery('#mews-selected-end-month').val(date2.getMonth());\n                jQuery('#mews-selected-end-day').val(date2.getDate());\n            }\n            \/* Testing:\n            let startYear = jQuery('#mews-selected-start-year').val();\n            let startMonth = jQuery('#mews-selected-start-month').val(); \/\/0-11\n            let startDay = jQuery('#mews-selected-start-day').val();\n            let endYear = jQuery('#mews-selected-end-year').val();\n            let endMonth = jQuery('#mews-selected-end-month').val(); \/\/0-11\n            let endDay = jQuery('#mews-selected-end-day').val();\n            console.log('mews start1', startYear, startMonth, startDay);\n            console.log('mews end1', endYear, endMonth, endDay);*\/\n        }\n\n        stringToDate(str) {\n            if (str.length > 1) {\n                const [day, month, year] = str.split('.').map(Number);\n                return new Date(year, month - 1, day);\n            }\n            return '';\n        }\n\n        dateToString(date) {\n            if (!date) return ''; \/\/ null\/undefined -> empty string\n            \/\/ If input is a string in dd.mm.yyyy (or d.m.yyyy) format, parse manually\n            if (typeof date === 'string' && \/^\\d{1,2}\\.\\d{1,2}\\.\\d{4}$\/.test(date.trim())) {\n                const [d, m, y] = date.trim().split('.').map(Number);\n                \/\/ basic validation\n                if (!d || !m || !y) return '';\n                const dt = new Date(y, m - 1, d);\n                if (Number.isNaN(dt.getTime())) return '';\n                date = dt;\n            } else {\n                \/\/ try to coerce other inputs (Date object, ISO string, timestamp)\n                date = new Date(date);\n                if (Number.isNaN(date.getTime())) return '';\n            }\n            \/\/const day = String(date.getDate()).padStart(2, '0');\n            const day = String(date.getDate());\n            const month = String(date.getMonth() + 1);\n            const year = date.getFullYear();\n            return `${day}.${month}.${year}`;\n        }\n    }\n    const mewsCalendar = new MewsCalendar();\n<\/script><script>\n    class MewsCalendarMobile {\n        constructor() {\n            this.now = new Date();\n            this.dayNow = this.now.getDate();\n            this.monthNow = this.now.getMonth() + 1;\n            this.yearNow = this.now.getFullYear();\n            this.monthNext = this.now.getMonth() + 2;\n            this.yearNext = this.now.getFullYear();\n            this.weekdayNames = ['mon', 'tue', 'wed', 'thu', 'fri', 'sat', 'sun'];this.monthNames = ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'];            this.arrayDates = [];\n            this.arrayDatesSorted = [];\n            this.generateAllCalendars();\n        }\n\n        generateAllCalendars() {\n            const date = new Date();\n            for (let i = 0; i < 13; i++) {\n                const year = date.getFullYear();\n                const month = date.getMonth() + 1; \/\/ getMonth() is 0-based\n                \/\/console.log(`${year}, ${month}`);\n                if (i < 12) {\n                    this.generateCalendar(i+1, year, month, false);\n                } else {\n                    this.generateCalendar(i+1, year, month, true);\n                }\n                this.generateMonthDays(i+1, year, month);\n                this.removeEmptyRows(i+1);\n                \/\/ Move to next month\n                date.setMonth(date.getMonth() + 1);\n            }\n        }\n\n        generateCalendar(id, year, month, addSpacer) {\n            let html = '';\n            html += '<div class=\"mcw-content-monthname\">' + this.monthNames[month-1] + ' ' + year + '<\/div>';\n            html += '<div class=\"m-calendar-weekdays\">';\n            html += '<div>' + this.weekdayNames[0] + '<\/div>';\n            html += '<div>' + this.weekdayNames[1] + '<\/div>';\n            html += '<div>' + this.weekdayNames[2] + '<\/div>';\n            html += '<div>' + this.weekdayNames[3] + '<\/div>';\n            html += '<div>' + this.weekdayNames[4] + '<\/div>';\n            html += '<div>' + this.weekdayNames[5] + '<\/div>';\n            html += '<div>' + this.weekdayNames[6] + '<\/div>';\n            html += '<\/div>';\n            html += '<div style=\"height: 10px;\"><\/div>';\n            for (let y=0; y<6; y++) {\n                html += '<div class=\"m-row\">';\n                    for (let x=0; x<7; x++) {\n                        let day = y*7+x+1;\n                        \/\/html += '<div class=\"m-day-square m-day-square-' + id + '\" id=\"' + id + '-m-day-' + day + '\" data-day=\"0\" onclick=\"mewsCalendarMobile.clickDay(this)\">' + day + '<\/div>';\n                        html += '<div class=\"m-day-square m-day-square-' + id + '\" id=\"' + id + '-m-day-' + day + '\" data-day=\"0\" onclick=\"mewsCalendarMobile.clickDay(this)\">';\n                        html += '<div class=\"m-day-square-inner\">';\n                        html += '<div class=\"m-day-square-circle\"><\/div>';\n                        html += '<\/div>';\n                        html += '<\/div>';\n                    }\n                html += '<\/div>';\n            }\n            html += '<div style=\"height: 30px;\"><\/div>';\n            if (addSpacer) html += '<div style=\"height: 150px;\"><\/div>';\n            jQuery('#mcw-content-mobile').append(html);\n        }\n\n        generateMonthDays(id, year, month) {\n            \/\/console.log('generateMonthDays', id, month, year);\n            const firstDay = new Date(year, month-1, 1);\n            const firstDayId = (firstDay.getDay() + 6) % 7 + 1;\n            const daysInMonth = new Date(year, month, 0).getDate();\n            let html = '';\n            \/\/jQuery('.m-day-square-' + id).html('');\n            jQuery('.m-day-square-' + id).data('day', 0);\n            jQuery('.m-day-square-' + id).removeClass('disabled');\n            jQuery('.m-day-square-' + id).removeClass('current');\n            for (let i=firstDayId; i<daysInMonth+firstDayId; i++) {\n                const day = i-firstDayId+1;\n                const dateStr = day + '.' + month + '.' + year;\n                \/\/jQuery('#' + id + '-m-day-' + i).html(day);\n                jQuery('#' + id + '-m-day-' + i + ' .m-day-square-circle').html(day);\n                jQuery('#' + id + '-m-day-' + i).data('day', day + '.' + month + '.' + year);\n                if (this.stringToDate(dateStr) < this.now) jQuery('#' + id + '-m-day-' + i).addClass('disabled');\n                if (dateStr == this.dateToString(this.now)) jQuery('#' + id + '-m-day-' + i).addClass('current');\n            }\n        }\n\n        removeEmptyRows(id) {\n            let count = 0;\n            let rowCount = 0;\n            let html = '';\n            jQuery('.m-day-square-' + id).each(function() {\n                count++;\n                html += jQuery(this).html();\n                if (count % 7 == 0) {\n                    rowCount++;\n                    if (html == '') {\n                        const first = (rowCount-1)*7+1;\n                        for (let i=first; i<first+7; i++) {\n                            jQuery('#' + id + '-m-day-' + i).remove();\n                        }\n                    }\n                    html = '';\n                }\n            });\n        }\n\n        clickDay = (event) => {\n            const id = jQuery(event).attr('id');\n            const str = jQuery(event).data('day');\n            if (this.arrayDates[0] != undefined && this.arrayDates[1] != undefined) {\n                this.arrayDates = [];\n                this.arrayDatesSorted = [...this.arrayDates].sort((a, b) => a - b);\n                this.markAllSelectedDates();\n            }\n            if (this.arrayDates[0] != undefined && this.arrayDates[1] == undefined) {\n                this.arrayDates[1] = this.stringToDate(str);\n                this.arrayDatesSorted = [...this.arrayDates].sort((a, b) => a - b);\n                this.markAllSelectedDates();\n            }\n            if (this.arrayDates[0] == undefined && this.arrayDates[1] == undefined) {\n                this.arrayDates[0] = this.stringToDate(str);\n                this.arrayDatesSorted = [...this.arrayDates].sort((a, b) => a - b);\n                this.markAllSelectedDates();\n            }\n        }\n\n        markAllSelectedDates() {\n            for (let i=1; i<=13; i++) {\n                this.markSelectedDates(i);\n            }\n        }\n\n        markSelectedDates(id) {\n            const date1 = this.arrayDatesSorted[0];\n            const date2 = this.arrayDatesSorted[1];\n            const str1 = this.dateToString(date1);\n            const str2 = this.dateToString(date2);\n            \/\/console.log(str1, str2);\n            jQuery('.m-day-square-' + id).removeClass('selected');\n            jQuery('.m-day-square-' + id).removeClass('selected-strong1');\n            jQuery('.m-day-square-' + id).removeClass('selected-strong2');\n            if (str1.length > 1) {\n                this.setDateLabels(str1, str2);\n                jQuery('.m-day-square-' + id).each(function() {\n                    const dataDay = jQuery(this).data('day');\n                    if (dataDay.length > 1) {\n                        const [day, month, year] = dataDay.split('.').map(Number);\n                        const dataDayDate = new Date(year, month - 1, day);\n                        if (dataDayDate > date1 && dataDayDate < date2) {\n                            jQuery(this).addClass('selected');\n                        }\n                        if (dataDay == str1) jQuery(this).addClass('selected-strong1');\n                        if (dataDay == str2) jQuery(this).addClass('selected-strong2');\n                    }\n                });\n            } else {\n                jQuery('.m-day-square-' + id).removeClass('selected');\n            }\n            if (str1.length > 1 && str2.length > 1) {\n                jQuery('#mews-selected-start-year').val(date1.getFullYear());\n                jQuery('#mews-selected-start-month').val(date1.getMonth());\n                jQuery('#mews-selected-start-day').val(date1.getDate());\n                jQuery('#mews-selected-end-year').val(date2.getFullYear());\n                jQuery('#mews-selected-end-month').val(date2.getMonth());\n                jQuery('#mews-selected-end-day').val(date2.getDate());\n            }\n            \/* Testing:\n            let startYear = jQuery('#mews-selected-start-year').val();\n            let startMonth = jQuery('#mews-selected-start-month').val(); \/\/0-11\n            let startDay = jQuery('#mews-selected-start-day').val();\n            let endYear = jQuery('#mews-selected-end-year').val();\n            let endMonth = jQuery('#mews-selected-end-month').val(); \/\/0-11\n            let endDay = jQuery('#mews-selected-end-day').val();\n            console.log('mews start1', startYear, startMonth, startDay);\n            console.log('mews end1', endYear, endMonth, endDay);*\/\n        }\n\n        setDateLabels(start, end) {\n            jQuery('#mews-date-label-start').html(start);\n            jQuery('#mews-date-label-end').html(end);\n        }\n\n        stringToDate(str) {\n            if (str.length > 1) {\n                const [day, month, year] = str.split('.').map(Number);\n                return new Date(year, month - 1, day);\n            }\n            return '';\n        }\n\n        dateToString(date) {\n            if (!date) return ''; \/\/ null\/undefined -> empty string\n            \/\/ If input is a string in dd.mm.yyyy (or d.m.yyyy) format, parse manually\n            if (typeof date === 'string' && \/^\\d{1,2}\\.\\d{1,2}\\.\\d{4}$\/.test(date.trim())) {\n                const [d, m, y] = date.trim().split('.').map(Number);\n                \/\/ basic validation\n                if (!d || !m || !y) return '';\n                const dt = new Date(y, m - 1, d);\n                if (Number.isNaN(dt.getTime())) return '';\n                date = dt;\n            } else {\n                \/\/ try to coerce other inputs (Date object, ISO string, timestamp)\n                date = new Date(date);\n                if (Number.isNaN(date.getTime())) return '';\n            }\n            \/\/const day = String(date.getDate()).padStart(2, '0');\n            const day = String(date.getDate());\n            const month = String(date.getMonth() + 1);\n            const year = date.getFullYear();\n            return `${day}.${month}.${year}`;\n        }\n    }\n    const mewsCalendarMobile = new MewsCalendarMobile();\n<\/script><script>\n    window.addEventListener('DOMContentLoaded', function() {\n        if (typeof Mews !== 'undefined') {\n            Mews.Distributor(\n                {\n                    configurationIds: ['02b1f998-a56e-41b7-a09c-b35d00b06c19'],\n                    \/\/openElements: '.distributor-open',\n                },\n                \n                function(api) {\n                    \/\/ you can call API functions on a booking engine instance here\n                    \/\/ set different start and end date\n\n                    const mewsSubmit = () => {\n                        const startYear = jQuery('#mews-selected-start-year').val();\n                        const startMonth = jQuery('#mews-selected-start-month').val(); \/\/0-11\n                        const startDay = jQuery('#mews-selected-start-day').val();\n                        const endYear = jQuery('#mews-selected-end-year').val();\n                        const endMonth = jQuery('#mews-selected-end-month').val(); \/\/0-11\n                        const endDay = jQuery('#mews-selected-end-day').val();\n                        \/\/console.log('mews start2', startYear, startMonth, startDay);\n                        \/\/console.log('mews end2', endYear, endMonth, endDay);\n                        api.setStartDate(new Date(startYear, startMonth, startDay));\n                        api.setEndDate(new Date(endYear, endMonth, endDay));\n                        api.open();\n                    }\n\n                    const enableSubmit = () => {\n                        \/\/console.log('enableSubmit');\n                        const submitButton = document.getElementById('mews-submit-button');\n                        const submitButtonCalendarDesktop = document.getElementById('mews-submit-button-calendar-desktop');\n                        const submitButtonCalendarMobile = document.getElementById('mews-submit-button-calendar-mobile');\n                        submitButton.innerHTML = 'Check availability';\n                        \/\/submitButton.disabled = false;\n                        submitButton.addEventListener('click', function() {\n                            mewsSubmit();\n                        });\n                        submitButtonCalendarDesktop.addEventListener('click', function() {\n                            mewsSubmit();\n                        });\n                        submitButtonCalendarMobile.addEventListener('click', function() {\n                            mewsSubmit();\n                        });\n                    };\n                    enableSubmit();\n                }\n            );\n        }\n    });\n<\/script><\/div>\n\n\n\n<div class=\"breadcrumb-container\"><ul id=\"breadcrumbs\" class=\"breadcrumbs\"><li class=\"item-home\"><a class=\"bread-link bread-home\" href=\"https:\/\/www.kassiopeia.fi\/hotel-matts\" title=\"Hotel Matts\">Hotel Matts<\/a><\/li><li class=\"separator separator-home\"> \/ <\/li><\/ul><\/div>\n<style>\n    \n<\/style>\n\n\n<div class=\"wp-block-group alignfull is-layout-constrained wp-container-core-group-is-layout-244a2f0a wp-block-group-is-layout-constrained\" style=\"padding-top:var(--wp--preset--spacing--50);padding-right:var(--wp--preset--spacing--40);padding-bottom:var(--wp--preset--spacing--70);padding-left:var(--wp--preset--spacing--40)\">\n<div class=\"wp-block-group alignwide is-layout-constrained wp-container-core-group-is-layout-9517baca wp-block-group-is-layout-constrained\">\n<h1 class=\"wp-block-heading has-text-align-center\" id=\"h-golf-in-espoo-area\" style=\"margin-bottom:var(--wp--preset--spacing--60)\">Golf in Espoo Area<\/h1>\n\n\n\n<p class=\"has-text-align-center has-large-font-size\">Is your heart beating for golf? Great, as our hotel is centrally located, near golf courses, and with excellent transport connections! Explore golf opportunities while staying at Hotel Matts in summer 2026!<\/p>\n<\/div>\n<\/div>\n\n\n\n<div class=\"wp-block-group alignfull is-layout-constrained wp-container-core-group-is-layout-0c9c989a wp-block-group-is-layout-constrained\" style=\"margin-top:0;margin-bottom:0;padding-top:var(--wp--preset--spacing--70);padding-right:var(--wp--preset--spacing--40);padding-bottom:var(--wp--preset--spacing--70);padding-left:var(--wp--preset--spacing--40)\">\n<div class=\"wp-block-media-text is-stacked-on-mobile\" style=\"padding-top:0;padding-bottom:0;grid-template-columns:60% auto\"><figure class=\"wp-block-media-text__media\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"726\" src=\"https:\/\/www.kassiopeia.fi\/hotel-matts\/wp-content\/uploads\/sites\/2\/2024\/10\/golfkenttakartta-pk-seutu_hotel-matts-yhteistyo-1024x726.jpg\" alt=\"Espoo Golf courses near Hotel Matts.\" class=\"wp-image-2811 size-full\" srcset=\"https:\/\/www.kassiopeia.fi\/hotel-matts\/wp-content\/uploads\/sites\/2\/2024\/10\/golfkenttakartta-pk-seutu_hotel-matts-yhteistyo-1024x726.jpg 1024w, https:\/\/www.kassiopeia.fi\/hotel-matts\/wp-content\/uploads\/sites\/2\/2024\/10\/golfkenttakartta-pk-seutu_hotel-matts-yhteistyo-300x213.jpg 300w, https:\/\/www.kassiopeia.fi\/hotel-matts\/wp-content\/uploads\/sites\/2\/2024\/10\/golfkenttakartta-pk-seutu_hotel-matts-yhteistyo-768x545.jpg 768w, https:\/\/www.kassiopeia.fi\/hotel-matts\/wp-content\/uploads\/sites\/2\/2024\/10\/golfkenttakartta-pk-seutu_hotel-matts-yhteistyo-1536x1090.jpg 1536w, https:\/\/www.kassiopeia.fi\/hotel-matts\/wp-content\/uploads\/sites\/2\/2024\/10\/golfkenttakartta-pk-seutu_hotel-matts-yhteistyo.jpg 1858w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure><div class=\"wp-block-media-text__content\">\n<div class=\"wp-block-group is-layout-constrained wp-block-group-is-layout-constrained\" style=\"padding-top:var(--wp--preset--spacing--60);padding-bottom:var(--wp--preset--spacing--80)\">\n<p>Espoo, Kirkkonummi, and Siuntio offer plenty of greens for golf enthusiasts. At Hotel Matts, you can stay close to several golf courses and enjoy our comprehensive services with easy access to the fairways.<\/p>\n<\/div>\n<\/div><\/div>\n<\/div>\n\n\n\n<div class=\"wp-block-group alignfull has-hotel-matts-12-background-color has-background is-layout-constrained wp-container-core-group-is-layout-0c9c989a wp-block-group-is-layout-constrained\" style=\"margin-top:0;margin-bottom:0;padding-top:var(--wp--preset--spacing--70);padding-right:var(--wp--preset--spacing--40);padding-bottom:var(--wp--preset--spacing--70);padding-left:var(--wp--preset--spacing--40)\">\n<h2 class=\"wp-block-heading\" id=\"h-summer-2026-golf-opportunities\">Summer 2026 Golf Opportunities<\/h2>\n\n\n\n<div class=\"wp-block-media-text has-media-on-the-right is-stacked-on-mobile is-image-fill-element has-general-1-background-color has-background\" style=\"padding-top:0;padding-bottom:0\"><div class=\"wp-block-media-text__content\">\n<div class=\"wp-block-group is-layout-constrained wp-block-group-is-layout-constrained\" style=\"padding-top:var(--wp--preset--spacing--60);padding-bottom:var(--wp--preset--spacing--80)\">\n<h3 class=\"wp-block-heading\" id=\"h-hirsala-golf\">Hirsala Golf<\/h3>\n\n\n\n<p>Hotel Matts is the official accommodation partner of Hirsala Golf, and we offer a great accommodation benefit for Hirsala members and visiting players traveling to Hirsala. Welcome to enjoy a high-quality golfing experience and a comfortable stay at Matts.<\/p>\n\n\n\n<p><strong><a href=\"https:\/\/hirsalagolf.fi\/fi-fi\/palvelut\/majoituskumppanimme-hotel-matts\/201\" target=\"_blank\" rel=\"noreferrer noopener\">See the accommodation offers for the 2026 learn more about the Hirsala Golf course (in Finnish).<\/a><\/strong><\/p>\n<\/div>\n<\/div><figure class=\"wp-block-media-text__media\"><img loading=\"lazy\" decoding=\"async\" width=\"899\" height=\"1024\" src=\"https:\/\/www.kassiopeia.fi\/hotel-matts\/wp-content\/uploads\/sites\/2\/2024\/10\/Hirsala-golf-1-e1728392076580-899x1024.jpg\" alt=\"Hirsala Golf Course in Espoo.\" class=\"wp-image-2820 size-full\" style=\"object-position:55% 29%\" srcset=\"https:\/\/www.kassiopeia.fi\/hotel-matts\/wp-content\/uploads\/sites\/2\/2024\/10\/Hirsala-golf-1-e1728392076580-899x1024.jpg 899w, https:\/\/www.kassiopeia.fi\/hotel-matts\/wp-content\/uploads\/sites\/2\/2024\/10\/Hirsala-golf-1-e1728392076580-264x300.jpg 264w, https:\/\/www.kassiopeia.fi\/hotel-matts\/wp-content\/uploads\/sites\/2\/2024\/10\/Hirsala-golf-1-e1728392076580-768x874.jpg 768w, https:\/\/www.kassiopeia.fi\/hotel-matts\/wp-content\/uploads\/sites\/2\/2024\/10\/Hirsala-golf-1-e1728392076580.jpg 1170w\" sizes=\"auto, (max-width: 899px) 100vw, 899px\" \/><\/figure><\/div>\n\n\n\n<div class=\"wp-block-media-text is-stacked-on-mobile is-image-fill-element has-general-1-background-color has-background\" style=\"padding-top:0;padding-bottom:0\"><figure class=\"wp-block-media-text__media\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"768\" src=\"https:\/\/www.kassiopeia.fi\/hotel-matts\/wp-content\/uploads\/sites\/2\/2024\/10\/espoo-golf.jpg\" alt=\"Espoo Golf Course in Espoo.\" class=\"wp-image-2817 size-full\" style=\"object-position:51% 0%\" srcset=\"https:\/\/www.kassiopeia.fi\/hotel-matts\/wp-content\/uploads\/sites\/2\/2024\/10\/espoo-golf.jpg 1024w, https:\/\/www.kassiopeia.fi\/hotel-matts\/wp-content\/uploads\/sites\/2\/2024\/10\/espoo-golf-300x225.jpg 300w, https:\/\/www.kassiopeia.fi\/hotel-matts\/wp-content\/uploads\/sites\/2\/2024\/10\/espoo-golf-768x576.jpg 768w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure><div class=\"wp-block-media-text__content\">\n<div class=\"wp-block-group is-layout-constrained wp-block-group-is-layout-constrained\" style=\"padding-top:var(--wp--preset--spacing--60);padding-bottom:var(--wp--preset--spacing--80)\">\n<h3 class=\"wp-block-heading\" id=\"h-espoo-golf-amp-gumbole-golf\">Espoo Golf &amp; Gumb\u00f6le Golf<\/h3>\n\n\n\n<p>The partnership between Hotel Matts and Espoo Golf is the perfect choice for golf travelers who appreciate both high-quality accommodation and excellent golfing experiences. The courses at Gumb\u00f6le Golf and EGS offer challenges for beginners and seasoned golfers alike, while the peaceful atmosphere of Hotel Matts, cozy rooms, and delicious offerings at Restaurant Freja ensure a relaxing and enjoyable golf vacation.<\/p>\n\n\n\n<p class=\"hidden\">Standard room (1\u20132 persons) \u20ac95 \/ night, including buffet breakfast and one-night parking in the hotel&#8217;s parking garage. Available for stays from May 20 to September 30, 2024, subject to hotel availability.<\/p>\n\n\n\n<p class=\"hidden\">Book your accommodation by emailing <a href=\"mailto:matts@kassiopeia.fi\">matts@kassiopeia.fi<\/a> or calling +358 29 308 0440. Please mention ESPOO GOLF24 when making the reservation.<\/p>\n\n\n\n<p><a href=\"https:\/\/espoogolf.fi\/\" target=\"_blank\" rel=\"noreferrer noopener\">Learn more about the Espoo Golf courses. (in Finnish)<\/a><\/p>\n<\/div>\n<\/div><\/div>\n<\/div>\n\n\n\n<div class=\"wp-block-group alignfull hidden is-layout-constrained wp-container-core-group-is-layout-bdbbb34e wp-block-group-is-layout-constrained\" style=\"padding-top:var(--wp--preset--spacing--60);padding-right:var(--wp--preset--spacing--40);padding-bottom:var(--wp--preset--spacing--70);padding-left:var(--wp--preset--spacing--40)\">\n<h1 class=\"wp-block-heading\" id=\"h-subscribe-to-our-newsletter\">Subscribe to our newsletter<\/h1>\n\n\n\n<p>Golf packages for the 2025 season will be available for purchase later. Subscribe to our newsletter and be the first to hear about golf packages!<\/p>\n\n\n\n\n    <!-- Begin Mailchimp Signup Form -->\n    <style type=\"text\/css\">\n        #mc_embed_signup {\n            clear: left;\n            font: 14px Helvetica,Arial,sans-serif;\n        }\n        input {\n            margin-bottom: 20px;\n            padding: 8px;\n            min-width: 300px;\n        }\n        \/* Add your own Mailchimp form style overrides in your site stylesheet or in this style block.<br \/>       We recommend moving this block and the preceding CSS link to the HEAD of your HTML file. *\/\n    <\/style>\n\n    <div id=\"mc_embed_signup\" style=\":background: #ddd;\">\n        <form id=\"mc-embedded-subscribe-form\" class=\"validate\" action=\"https:\/\/kassiopeia.us19.list-manage.com\/subscribe\/post?u=33850eb1e7c31da1ea014e051&amp;id=2942877fad\" method=\"post\" name=\"mc-embedded-subscribe-form\" novalidate=\"\" target=\"_blank\">\n            <div id=\"mc_embed_signup_scroll\">\n                <div class=\"mc-field-group\">\n                    <label style=\"font-size: 17px;\" for=\"mce-EMAIL\"><\/label>\n                    <input id=\"mce-MMERGE1\" class=\"\" name=\"MMERGE1\" type=\"hidden\" value=\"golf\" \/>\n                    <input id=\"mce-EMAIL\" class=\"required email\" name=\"EMAIL\" type=\"email\" value=\"\" placeholder=\"Email address\" \/>\n                <\/div>\n                <div id=\"mce-responses\" class=\"clear\">\n                    <div id=\"mce-error-response\" class=\"response\" style=\"display: none;\"><\/div>\n                    <div id=\"mce-success-response\" class=\"response\" style=\"display: none; background-color: rgb(130, 240, 100) !important; padding: 10px; margin-bottom: 20px;\"><\/div>\n                <\/div>\n                <!-- real people should not fill this in and expect good things - do not remove this or risk form bot signups-->\n                <div style=\"position: absolute; left: -5000px;\" aria-hidden=\"true\"><input tabindex=\"-1\" name=\"b_33850eb1e7c31da1ea014e051_2942877fad\" type=\"text\" value=\"\" \/><\/div>\n                <div class=\"clear\"><input id=\"mc-embedded-subscribe\" class=\"button wp-element-button btn-primary\" name=\"subscribe\" type=\"submit\" value=\"Subscribe\" \/><\/div>\n            <\/div>\n        <\/form>\n    <\/div>\n\n    <script type='text\/javascript' src='\/\/s3.amazonaws.com\/downloads.mailchimp.com\/js\/mc-validate.js'><\/script>\n    \n            <script type='text\/javascript'>(function($) {window.fnames = new Array(); window.ftypes = new Array();fnames[0]='EMAIL';ftypes[0]='email';fnames[1]='MMERGE1';ftypes[1]='text'; \n        \/*\n        * Translated default messages for the $ validation plugin.\n        * Locale: EN\n        *\/\n            $.extend($.validator.messages, {\n                required: \"This field is required.\",\n                maxlength: $.validator.format(\"You can enter up to {0} characters.\"),\n                minlength: $.validator.format(\"At least {0} characters.\"),\n                rangelength: $.validator.format(\"Please enter at least {0} and at most {1} characters.\"),\n                email: \"Please enter a valid email address.\",\n                url: \"Please enter a valid URL address.\",\n                date: \"Please enter a valid date.\",\n                dateISO: \"Please enter a valid date (YYYY-MM-DD).\",\n                number: \"Please enter a number.\",\n                digits: \"Please enter only numbers.\",\n                equalTo: \"Please re-enter the same value.\",\n                range: $.validator.format(\"Please enter a value between {0} and {1}.\"),\n                max: $.validator.format(\"Please enter a value that is equal to or greater than {0}.\"),\n                min: $.validator.format(\"Please enter a value that is less than or equal to {0}.\"),\n            });}(jQuery));var $mcj = jQuery.noConflict(true);\n        <\/script>\n    \n    <!--End mc_embed_signup-->\n\n<\/div>\n\n\n\n<div class=\"wp-block-group alignfull is-layout-constrained wp-container-core-group-is-layout-4955f4ca wp-block-group-is-layout-constrained\" style=\"margin-top:0;margin-bottom:0;padding-top:var(--wp--preset--spacing--70);padding-right:var(--wp--preset--spacing--40);padding-bottom:var(--wp--preset--spacing--70);padding-left:var(--wp--preset--spacing--40)\">\n<div class=\"wp-block-columns has-border-color has-hotel-matts-4-border-color is-layout-flex wp-container-core-columns-is-layout-07b7b7eb wp-block-columns-is-layout-flex\" style=\"border-width:1px;padding-top:0;padding-right:0;padding-bottom:0;padding-left:0\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"padding-top:var(--wp--preset--spacing--60);padding-right:var(--wp--preset--spacing--60);padding-bottom:var(--wp--preset--spacing--60);padding-left:var(--wp--preset--spacing--60);flex-basis:100%\">\n<h3 class=\"wp-block-heading has-text-align-left\" id=\"h-hotel-services\">Hotel Services<\/h3>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-9503679e wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-container-core-column-is-layout-92c44e9e wp-block-column-is-layout-flow\" style=\"padding-top:0;padding-bottom:0\">\n<ul style=\"margin-top:0;margin-bottom:0;padding-top:0;padding-bottom:0\" class=\"wp-block-list styled\">\n<li>Hotel rooms<\/li>\n\n\n\n<li>Suites with private saunas<\/li>\n\n\n\n<li>Apartments for short and long-term stays<\/li>\n\n\n\n<li>Pets are welcome<\/li>\n\n\n\n<li>Accessible rooms available<\/li>\n<\/ul>\n<\/div>\n\n\n\n<div class=\"wp-block-column styled is-layout-flow wp-container-core-column-is-layout-63d9dbad wp-block-column-is-layout-flow\" style=\"padding-top:0;padding-bottom:0\">\n<ul class=\"wp-block-list styled\">\n<li>Breakfast included<\/li>\n\n\n\n<li>Restaurant Freja<\/li>\n\n\n\n<li>Meeting facilities<\/li>\n\n\n\n<li>Rooftop saunas daily from 7 PM to 10 PM<\/li>\n<\/ul>\n<\/div>\n\n\n\n<div class=\"wp-block-column styled is-layout-flow wp-container-core-column-is-layout-63d9dbad wp-block-column-is-layout-flow\" style=\"padding-top:0;padding-bottom:0\">\n<ul class=\"wp-block-list styled\">\n<li>Parking garage<\/li>\n\n\n\n<li>Excellent transport connections<\/li>\n\n\n\n<li>Free Wi-Fi in all areas<\/li>\n\n\n\n<li>24\/7 reception<\/li>\n<\/ul>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Golf in Espoo Area Is your heart beating for golf? Great, as our hotel is centrally located, near golf courses, and with excellent transport connections! Explore golf opportunities while staying at Hotel Matts in summer 2026! Espoo, Kirkkonummi, and Siuntio offer plenty of greens for golf enthusiasts. At Hotel Matts, you can stay close to [&hellip;]<\/p>\n","protected":false},"author":7,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"wp-custom-template-pages-hotel-matts","meta":{"_acf_changed":false,"footnotes":""},"class_list":["post-3838","page","type-page","status-publish","hentry"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v27.2 (Yoast SEO v27.2) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>Golf Opportunities - Hotel Matts | Espoo, Matinkyl\u00e4<\/title>\n<meta name=\"description\" content=\"Hotel Matts is a golfer\u2019s dream hotel! The hotel is centrally located, near golf courses, and with excellent transport connections.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.kassiopeia.fi\/hotel-matts\/en\/golf-in-espoo\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Golf\" \/>\n<meta property=\"og:description\" content=\"Hotel Matts is a golfer\u2019s dream hotel! The hotel is centrally located, near golf courses, and with excellent transport connections.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.kassiopeia.fi\/hotel-matts\/en\/golf-in-espoo\/\" \/>\n<meta property=\"og:site_name\" content=\"Hotel Matts\" \/>\n<meta property=\"article:modified_time\" content=\"2026-03-24T12:03:05+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.kassiopeia.fi\/hotel-matts\/wp-content\/uploads\/sites\/2\/2024\/10\/Hirsala-golf.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"2000\" \/>\n\t<meta property=\"og:image:height\" content=\"1332\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data1\" content=\"3 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.kassiopeia.fi\/hotel-matts\/en\/golf-in-espoo\/\",\"url\":\"https:\/\/www.kassiopeia.fi\/hotel-matts\/en\/golf-in-espoo\/\",\"name\":\"Golf Opportunities - Hotel Matts | Espoo, Matinkyl\u00e4\",\"isPartOf\":{\"@id\":\"https:\/\/www.kassiopeia.fi\/hotel-matts\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.kassiopeia.fi\/hotel-matts\/en\/golf-in-espoo\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.kassiopeia.fi\/hotel-matts\/en\/golf-in-espoo\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.kassiopeia.fi\/hotel-matts\/wp-content\/uploads\/sites\/2\/2024\/10\/Hirsala-golf.jpg\",\"datePublished\":\"2024-10-18T11:07:14+00:00\",\"dateModified\":\"2026-03-24T12:03:05+00:00\",\"description\":\"Hotel Matts is a golfer\u2019s dream hotel! The hotel is centrally located, near golf courses, and with excellent transport connections.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.kassiopeia.fi\/hotel-matts\/en\/golf-in-espoo\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.kassiopeia.fi\/hotel-matts\/en\/golf-in-espoo\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.kassiopeia.fi\/hotel-matts\/en\/golf-in-espoo\/#primaryimage\",\"url\":\"https:\/\/www.kassiopeia.fi\/hotel-matts\/wp-content\/uploads\/sites\/2\/2024\/10\/Hirsala-golf.jpg\",\"contentUrl\":\"https:\/\/www.kassiopeia.fi\/hotel-matts\/wp-content\/uploads\/sites\/2\/2024\/10\/Hirsala-golf.jpg\",\"width\":2000,\"height\":1332,\"caption\":\"Hirsala-golfin golfrata, Espoo.\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.kassiopeia.fi\/hotel-matts\/en\/golf-in-espoo\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.kassiopeia.fi\/hotel-matts\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Golf\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.kassiopeia.fi\/hotel-matts\/#website\",\"url\":\"https:\/\/www.kassiopeia.fi\/hotel-matts\/\",\"name\":\"Hotel Matts\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.kassiopeia.fi\/hotel-matts\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Golf Opportunities - Hotel Matts | Espoo, Matinkyl\u00e4","description":"Hotel Matts is a golfer\u2019s dream hotel! The hotel is centrally located, near golf courses, and with excellent transport connections.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.kassiopeia.fi\/hotel-matts\/en\/golf-in-espoo\/","og_locale":"en_US","og_type":"article","og_title":"Golf","og_description":"Hotel Matts is a golfer\u2019s dream hotel! The hotel is centrally located, near golf courses, and with excellent transport connections.","og_url":"https:\/\/www.kassiopeia.fi\/hotel-matts\/en\/golf-in-espoo\/","og_site_name":"Hotel Matts","article_modified_time":"2026-03-24T12:03:05+00:00","og_image":[{"width":2000,"height":1332,"url":"https:\/\/www.kassiopeia.fi\/hotel-matts\/wp-content\/uploads\/sites\/2\/2024\/10\/Hirsala-golf.jpg","type":"image\/jpeg"}],"twitter_card":"summary_large_image","twitter_misc":{"Est. reading time":"3 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.kassiopeia.fi\/hotel-matts\/en\/golf-in-espoo\/","url":"https:\/\/www.kassiopeia.fi\/hotel-matts\/en\/golf-in-espoo\/","name":"Golf Opportunities - Hotel Matts | Espoo, Matinkyl\u00e4","isPartOf":{"@id":"https:\/\/www.kassiopeia.fi\/hotel-matts\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.kassiopeia.fi\/hotel-matts\/en\/golf-in-espoo\/#primaryimage"},"image":{"@id":"https:\/\/www.kassiopeia.fi\/hotel-matts\/en\/golf-in-espoo\/#primaryimage"},"thumbnailUrl":"https:\/\/www.kassiopeia.fi\/hotel-matts\/wp-content\/uploads\/sites\/2\/2024\/10\/Hirsala-golf.jpg","datePublished":"2024-10-18T11:07:14+00:00","dateModified":"2026-03-24T12:03:05+00:00","description":"Hotel Matts is a golfer\u2019s dream hotel! The hotel is centrally located, near golf courses, and with excellent transport connections.","breadcrumb":{"@id":"https:\/\/www.kassiopeia.fi\/hotel-matts\/en\/golf-in-espoo\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.kassiopeia.fi\/hotel-matts\/en\/golf-in-espoo\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.kassiopeia.fi\/hotel-matts\/en\/golf-in-espoo\/#primaryimage","url":"https:\/\/www.kassiopeia.fi\/hotel-matts\/wp-content\/uploads\/sites\/2\/2024\/10\/Hirsala-golf.jpg","contentUrl":"https:\/\/www.kassiopeia.fi\/hotel-matts\/wp-content\/uploads\/sites\/2\/2024\/10\/Hirsala-golf.jpg","width":2000,"height":1332,"caption":"Hirsala-golfin golfrata, Espoo."},{"@type":"BreadcrumbList","@id":"https:\/\/www.kassiopeia.fi\/hotel-matts\/en\/golf-in-espoo\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.kassiopeia.fi\/hotel-matts\/"},{"@type":"ListItem","position":2,"name":"Golf"}]},{"@type":"WebSite","@id":"https:\/\/www.kassiopeia.fi\/hotel-matts\/#website","url":"https:\/\/www.kassiopeia.fi\/hotel-matts\/","name":"Hotel Matts","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.kassiopeia.fi\/hotel-matts\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"}]}},"lang":"en","translations":{"en":3838,"fi":2648},"pll_sync_post":[],"_links":{"self":[{"href":"https:\/\/www.kassiopeia.fi\/hotel-matts\/wp-json\/wp\/v2\/pages\/3838","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.kassiopeia.fi\/hotel-matts\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.kassiopeia.fi\/hotel-matts\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.kassiopeia.fi\/hotel-matts\/wp-json\/wp\/v2\/users\/7"}],"replies":[{"embeddable":true,"href":"https:\/\/www.kassiopeia.fi\/hotel-matts\/wp-json\/wp\/v2\/comments?post=3838"}],"version-history":[{"count":27,"href":"https:\/\/www.kassiopeia.fi\/hotel-matts\/wp-json\/wp\/v2\/pages\/3838\/revisions"}],"predecessor-version":[{"id":7591,"href":"https:\/\/www.kassiopeia.fi\/hotel-matts\/wp-json\/wp\/v2\/pages\/3838\/revisions\/7591"}],"wp:attachment":[{"href":"https:\/\/www.kassiopeia.fi\/hotel-matts\/wp-json\/wp\/v2\/media?parent=3838"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}