{"id":6154,"date":"2025-03-13T08:48:24","date_gmt":"2025-03-13T08:48:24","guid":{"rendered":"https:\/\/www.kassiopeia.fi\/hotel-matts\/?page_id=6154"},"modified":"2026-01-16T06:16:13","modified_gmt":"2026-01-16T06:16:13","slug":"offers","status":"publish","type":"page","link":"https:\/\/www.kassiopeia.fi\/hotel-matts\/en\/offers\/","title":{"rendered":"Offers"},"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=\"1920\" height=\"1281\" class=\"wp-block-cover__image-background wp-image-2878\" alt=\"Couple in Hotel Matts' room with sparkling wine.\" src=\"https:\/\/www.kassiopeia.fi\/hotel-matts\/wp-content\/uploads\/sites\/2\/2024\/10\/hote-matts-pariskunta.jpeg\" style=\"object-position:52% 51%\" data-object-fit=\"cover\" data-object-position=\"52% 51%\" srcset=\"https:\/\/www.kassiopeia.fi\/hotel-matts\/wp-content\/uploads\/sites\/2\/2024\/10\/hote-matts-pariskunta.jpeg 1920w, https:\/\/www.kassiopeia.fi\/hotel-matts\/wp-content\/uploads\/sites\/2\/2024\/10\/hote-matts-pariskunta-300x200.jpeg 300w, https:\/\/www.kassiopeia.fi\/hotel-matts\/wp-content\/uploads\/sites\/2\/2024\/10\/hote-matts-pariskunta-1024x683.jpeg 1024w, https:\/\/www.kassiopeia.fi\/hotel-matts\/wp-content\/uploads\/sites\/2\/2024\/10\/hote-matts-pariskunta-768x512.jpeg 768w, https:\/\/www.kassiopeia.fi\/hotel-matts\/wp-content\/uploads\/sites\/2\/2024\/10\/hote-matts-pariskunta-1536x1025.jpeg 1536w\" sizes=\"auto, (max-width: 1920px) 100vw, 1920px\" \/><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-8e3b0982 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--20);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\" style=\"margin-bottom:var(--wp--preset--spacing--60)\">Offers<\/h1>\n<\/div>\n<\/div>\n\n\n\n<div class=\"wp-block-group alignfull is-layout-constrained wp-container-core-group-is-layout-ccf6ddda wp-block-group-is-layout-constrained\" style=\"padding-top:var(--wp--preset--spacing--30);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 is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-vertically-aligned-bottom is-layout-flow wp-block-column-is-layout-flow\"><\/div>\n\n\n\n<div class=\"wp-block-column is-vertically-aligned-bottom is-layout-flow wp-block-column-is-layout-flow\"><\/div>\n<\/div>\n\n\n<script>\n\/\/---------------------------------\n\/\/ Initialize the OffersImagesScroller if not present\n\/\/---------------------------------\nif (typeof offers_images_scroller === 'undefined') {\n    var offers_images_scroller = new OffersImagesScroller();\n    offers_images_scroller.init();\n}\n\n\/\/---------------------------------\n\/\/ Show more button on mobile\n\/\/---------------------------------\ndocument.addEventListener('DOMContentLoaded', function() {\n    if (typeof offers_images_scroller === 'undefined') {\n        var offers_images_scroller = new OffersImagesScroller();\n        offers_images_scroller.init();\n    }\n    document.querySelectorAll('.mobile-show-all-button').forEach(function(button) {\n        button.addEventListener('click', function(e) {\n            e.preventDefault();\n            const parent = button.closest('.kassiopeia-offer-items');\n            if (parent) parent.classList.add('show-all-on-mobile');\n        });\n    });\n});\n<\/script>\n<\/div>\n\n\n\n<div class=\"wp-block-group alignfull is-layout-constrained wp-container-core-group-is-layout-0f068800 wp-block-group-is-layout-constrained\" style=\"margin-top:0;margin-bottom:0;padding-top:var(--wp--preset--spacing--40);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 has-media-on-the-right is-stacked-on-mobile is-image-fill-element has-hotel-matts-10-background-color has-background\" style=\"margin-bottom:var(--wp--preset--spacing--70);padding-top:0;padding-bottom:0\" id=\"room-kids\"><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=\"huonelapsille\"><strong>A Room for Kids<\/strong><\/h3>\n\n\n\n<p>Our connecting <strong>Standard rooms<\/strong> are ideal for family accommodations.<\/p>\n\n\n\n<ul class=\"wp-block-list styled\">\n<li><strong>A separate room for children (ages 7-16) connected to the parents\u2019 room from \u20ac65 \/ night<\/strong><\/li>\n<\/ul>\n\n\n\n<p>Two Standard rooms can be connected, providing separate spaces for parents and children, each with its own bathroom and hallway entrance. When the connecting door is open, you can enjoy the spaciousness of two rooms together, or close it to create distinct spaces.<\/p>\n\n\n\n<p>Book connecting Standard rooms: <strong>Tel. +358 29 308 0440&nbsp;|&nbsp;&nbsp;<\/strong><a href=\"mailto:matts@kassiopeia.fi\">matts@kassiopeia.fi<\/a><\/p>\n<\/div>\n<\/div><figure class=\"wp-block-media-text__media\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"683\" src=\"https:\/\/www.kassiopeia.fi\/hotel-matts\/wp-content\/uploads\/sites\/2\/2024\/10\/hotel-matts-lapset-1024x683.jpg\" alt=\"Two kids on a bed in Hotel Matts' room.\" class=\"wp-image-2869 size-full\" style=\"object-position:49% 71%\" srcset=\"https:\/\/www.kassiopeia.fi\/hotel-matts\/wp-content\/uploads\/sites\/2\/2024\/10\/hotel-matts-lapset-1024x683.jpg 1024w, https:\/\/www.kassiopeia.fi\/hotel-matts\/wp-content\/uploads\/sites\/2\/2024\/10\/hotel-matts-lapset-300x200.jpg 300w, https:\/\/www.kassiopeia.fi\/hotel-matts\/wp-content\/uploads\/sites\/2\/2024\/10\/hotel-matts-lapset-768x512.jpg 768w, https:\/\/www.kassiopeia.fi\/hotel-matts\/wp-content\/uploads\/sites\/2\/2024\/10\/hotel-matts-lapset.jpg 1500w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure><\/div>\n\n\n\n<div class=\"wp-block-media-text is-stacked-on-mobile is-image-fill-element has-hotel-matts-10-background-color has-background\" style=\"padding-top:0;padding-bottom:0\" id=\"senior-discount\"><figure class=\"wp-block-media-text__media\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"682\" src=\"https:\/\/www.kassiopeia.fi\/hotel-matts\/wp-content\/uploads\/sites\/2\/2024\/09\/seniorit-hotellissa-matts-1024x682.jpg\" alt=\"Seniors staying in Hotel Matts.\" class=\"wp-image-996 size-full\" style=\"object-position:50% 50%\" srcset=\"https:\/\/www.kassiopeia.fi\/hotel-matts\/wp-content\/uploads\/sites\/2\/2024\/09\/seniorit-hotellissa-matts-1024x682.jpg 1024w, https:\/\/www.kassiopeia.fi\/hotel-matts\/wp-content\/uploads\/sites\/2\/2024\/09\/seniorit-hotellissa-matts-300x200.jpg 300w, https:\/\/www.kassiopeia.fi\/hotel-matts\/wp-content\/uploads\/sites\/2\/2024\/09\/seniorit-hotellissa-matts-768x512.jpg 768w, https:\/\/www.kassiopeia.fi\/hotel-matts\/wp-content\/uploads\/sites\/2\/2024\/09\/seniorit-hotellissa-matts-1536x1024.jpg 1536w, https:\/\/www.kassiopeia.fi\/hotel-matts\/wp-content\/uploads\/sites\/2\/2024\/09\/seniorit-hotellissa-matts.jpg 2000w\" 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=\"seniorialennus\"><strong>Senior Discount<\/strong> on Hotel Rooms<\/h3>\n\n\n\n<p>Spend a day in a stylish hotel while exploring Espoo or Helsinki! The West Metro brings you directly to the hotel, making it easy to reach Helsinki\u2019s attractions.<\/p>\n\n\n\n<ul class=\"wp-block-list styled\">\n<li><strong>Accommodations in hotel rooms at a senior rate -20% off the daily rate<\/strong><\/li>\n<\/ul>\n\n\n\n<p>The discount is available for guests 65 and older or with a pensioner\u2019s card. Use the promotional code <strong>PROSEN<\/strong> to get the senior rate.<\/p>\n\n\n\n<div class=\"wp-block-buttons is-layout-flex wp-block-buttons-is-layout-flex\">\n<div class=\"wp-block-button\"><a class=\"wp-block-button__link wp-element-button\" href=\"https:\/\/app.mews.com\/distributor\/02b1f998-a56e-41b7-a09c-b35d00b06c19?mewsRoute=rates&amp;language=en-GB\" target=\"_blank\" rel=\"noreferrer noopener\">Book now!<\/a><\/div>\n<\/div>\n<\/div>\n<\/div><\/div>\n<\/div>\n\n\n\n<div class=\"wp-block-group alignfull has-hotel-matts-9-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-are-you-already-a-kassiopeia-star-member\">Are you already a Kassiopeia Star Member?<\/h2>\n\n\n\n<p><br><br>As a Kassiopeia Star Member, you can access both permanent and seasonal benefits in Hotel Matts and Restaurant Freja.<\/p>\n\n\n\n<h2 class=\"wp-block-heading has-medium-font-size\" id=\"h-star-member-hotel-offers\" style=\"padding-top:var(--wp--preset--spacing--60);padding-bottom:var(--wp--preset--spacing--40)\">Star Member Hotel Offers<\/h2>\n\n\n<script>\n\/\/---------------------------------\n\/\/ Initialize the OffersImagesScroller if not present\n\/\/---------------------------------\nif (typeof offers_images_scroller === 'undefined') {\n    var offers_images_scroller = new OffersImagesScroller();\n    offers_images_scroller.init();\n}\n\n\/\/---------------------------------\n\/\/ Show more button on mobile\n\/\/---------------------------------\ndocument.addEventListener('DOMContentLoaded', function() {\n    if (typeof offers_images_scroller === 'undefined') {\n        var offers_images_scroller = new OffersImagesScroller();\n        offers_images_scroller.init();\n    }\n    document.querySelectorAll('.mobile-show-all-button').forEach(function(button) {\n        button.addEventListener('click', function(e) {\n            e.preventDefault();\n            const parent = button.closest('.kassiopeia-offer-items');\n            if (parent) parent.classList.add('show-all-on-mobile');\n        });\n    });\n});\n<\/script>\n\n\n\n<h2 class=\"wp-block-heading has-medium-font-size\" id=\"h-star-member-restaurant-offers\" style=\"padding-top:var(--wp--preset--spacing--60);padding-bottom:var(--wp--preset--spacing--40)\">Star Member Restaurant Offers<\/h2>\n\n\n<script>\n\/\/---------------------------------\n\/\/ Initialize the OffersImagesScroller if not present\n\/\/---------------------------------\nif (typeof offers_images_scroller === 'undefined') {\n    var offers_images_scroller = new OffersImagesScroller();\n    offers_images_scroller.init();\n}\n\n\/\/---------------------------------\n\/\/ Show more button on mobile\n\/\/---------------------------------\ndocument.addEventListener('DOMContentLoaded', function() {\n    if (typeof offers_images_scroller === 'undefined') {\n        var offers_images_scroller = new OffersImagesScroller();\n        offers_images_scroller.init();\n    }\n    document.querySelectorAll('.mobile-show-all-button').forEach(function(button) {\n        button.addEventListener('click', function(e) {\n            e.preventDefault();\n            const parent = button.closest('.kassiopeia-offer-items');\n            if (parent) parent.classList.add('show-all-on-mobile');\n        });\n    });\n});\n<\/script>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Offers A Room for Kids Our connecting Standard rooms are ideal for family accommodations. Two Standard rooms can be connected, providing separate spaces for parents and children, each with its own bathroom and hallway entrance. When the connecting door is open, you can enjoy the spaciousness of two rooms together, or close it to create [&hellip;]<\/p>\n","protected":false},"author":7,"featured_media":0,"parent":0,"menu_order":3,"comment_status":"closed","ping_status":"closed","template":"wp-custom-template-pages-hotel-matts","meta":{"_acf_changed":false,"footnotes":""},"class_list":["post-6154","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>Hotel Matts | Espoo, Finnland<\/title>\n<meta name=\"description\" content=\"See our hotel, apartment hotel and restaurant offers in Hotel Matts, Espoo and book a room or an apartment online!\" \/>\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\/offers\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Offers\" \/>\n<meta property=\"og:description\" content=\"See our hotel, apartment hotel and restaurant offers in Hotel Matts, Espoo and book a room or an apartment online!\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.kassiopeia.fi\/hotel-matts\/en\/offers\/\" \/>\n<meta property=\"og:site_name\" content=\"Hotel Matts\" \/>\n<meta property=\"article:modified_time\" content=\"2026-01-16T06:16:13+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.kassiopeia.fi\/hotel-matts\/wp-content\/uploads\/sites\/2\/2024\/10\/hote-matts-pariskunta.jpeg\" \/>\n\t<meta property=\"og:image:width\" content=\"1920\" \/>\n\t<meta property=\"og:image:height\" content=\"1281\" \/>\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=\"2 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\/offers\/\",\"url\":\"https:\/\/www.kassiopeia.fi\/hotel-matts\/en\/offers\/\",\"name\":\"Hotel Matts | Espoo, Finnland\",\"isPartOf\":{\"@id\":\"https:\/\/www.kassiopeia.fi\/hotel-matts\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.kassiopeia.fi\/hotel-matts\/en\/offers\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.kassiopeia.fi\/hotel-matts\/en\/offers\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.kassiopeia.fi\/hotel-matts\/wp-content\/uploads\/sites\/2\/2024\/10\/hote-matts-pariskunta.jpeg\",\"datePublished\":\"2025-03-13T08:48:24+00:00\",\"dateModified\":\"2026-01-16T06:16:13+00:00\",\"description\":\"See our hotel, apartment hotel and restaurant offers in Hotel Matts, Espoo and book a room or an apartment online!\",\"breadcrumb\":{\"@id\":\"https:\/\/www.kassiopeia.fi\/hotel-matts\/en\/offers\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.kassiopeia.fi\/hotel-matts\/en\/offers\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.kassiopeia.fi\/hotel-matts\/en\/offers\/#primaryimage\",\"url\":\"https:\/\/www.kassiopeia.fi\/hotel-matts\/wp-content\/uploads\/sites\/2\/2024\/10\/hote-matts-pariskunta.jpeg\",\"contentUrl\":\"https:\/\/www.kassiopeia.fi\/hotel-matts\/wp-content\/uploads\/sites\/2\/2024\/10\/hote-matts-pariskunta.jpeg\",\"width\":1920,\"height\":1281,\"caption\":\"Pariskunta Hotel Mattsin huoneessa ja kilistelee kuohuvaa.\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.kassiopeia.fi\/hotel-matts\/en\/offers\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.kassiopeia.fi\/hotel-matts\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Offers\"}]},{\"@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":"Hotel Matts | Espoo, Finnland","description":"See our hotel, apartment hotel and restaurant offers in Hotel Matts, Espoo and book a room or an apartment online!","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\/offers\/","og_locale":"en_US","og_type":"article","og_title":"Offers","og_description":"See our hotel, apartment hotel and restaurant offers in Hotel Matts, Espoo and book a room or an apartment online!","og_url":"https:\/\/www.kassiopeia.fi\/hotel-matts\/en\/offers\/","og_site_name":"Hotel Matts","article_modified_time":"2026-01-16T06:16:13+00:00","og_image":[{"width":1920,"height":1281,"url":"https:\/\/www.kassiopeia.fi\/hotel-matts\/wp-content\/uploads\/sites\/2\/2024\/10\/hote-matts-pariskunta.jpeg","type":"image\/jpeg"}],"twitter_card":"summary_large_image","twitter_misc":{"Est. reading time":"2 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.kassiopeia.fi\/hotel-matts\/en\/offers\/","url":"https:\/\/www.kassiopeia.fi\/hotel-matts\/en\/offers\/","name":"Hotel Matts | Espoo, Finnland","isPartOf":{"@id":"https:\/\/www.kassiopeia.fi\/hotel-matts\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.kassiopeia.fi\/hotel-matts\/en\/offers\/#primaryimage"},"image":{"@id":"https:\/\/www.kassiopeia.fi\/hotel-matts\/en\/offers\/#primaryimage"},"thumbnailUrl":"https:\/\/www.kassiopeia.fi\/hotel-matts\/wp-content\/uploads\/sites\/2\/2024\/10\/hote-matts-pariskunta.jpeg","datePublished":"2025-03-13T08:48:24+00:00","dateModified":"2026-01-16T06:16:13+00:00","description":"See our hotel, apartment hotel and restaurant offers in Hotel Matts, Espoo and book a room or an apartment online!","breadcrumb":{"@id":"https:\/\/www.kassiopeia.fi\/hotel-matts\/en\/offers\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.kassiopeia.fi\/hotel-matts\/en\/offers\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.kassiopeia.fi\/hotel-matts\/en\/offers\/#primaryimage","url":"https:\/\/www.kassiopeia.fi\/hotel-matts\/wp-content\/uploads\/sites\/2\/2024\/10\/hote-matts-pariskunta.jpeg","contentUrl":"https:\/\/www.kassiopeia.fi\/hotel-matts\/wp-content\/uploads\/sites\/2\/2024\/10\/hote-matts-pariskunta.jpeg","width":1920,"height":1281,"caption":"Pariskunta Hotel Mattsin huoneessa ja kilistelee kuohuvaa."},{"@type":"BreadcrumbList","@id":"https:\/\/www.kassiopeia.fi\/hotel-matts\/en\/offers\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.kassiopeia.fi\/hotel-matts\/"},{"@type":"ListItem","position":2,"name":"Offers"}]},{"@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":6154,"fi":2856},"pll_sync_post":[],"_links":{"self":[{"href":"https:\/\/www.kassiopeia.fi\/hotel-matts\/wp-json\/wp\/v2\/pages\/6154","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=6154"}],"version-history":[{"count":32,"href":"https:\/\/www.kassiopeia.fi\/hotel-matts\/wp-json\/wp\/v2\/pages\/6154\/revisions"}],"predecessor-version":[{"id":7391,"href":"https:\/\/www.kassiopeia.fi\/hotel-matts\/wp-json\/wp\/v2\/pages\/6154\/revisions\/7391"}],"wp:attachment":[{"href":"https:\/\/www.kassiopeia.fi\/hotel-matts\/wp-json\/wp\/v2\/media?parent=6154"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}