{"id":17647,"date":"2021-12-23T16:30:02","date_gmt":"2021-12-23T15:30:02","guid":{"rendered":"https:\/\/beachin.ch\/events-at-the-beach\/event-calendar\/"},"modified":"2025-08-12T15:50:44","modified_gmt":"2025-08-12T13:50:44","slug":"event-calendar","status":"publish","type":"page","link":"https:\/\/staging.beachin.ch\/en\/events-at-the-beach\/event-calendar\/","title":{"rendered":"Event calendar"},"content":{"rendered":"<div class=\"wpb-content-wrapper\"><h1>Events at BeachIN<\/h1>\n<p>All information about events, tournaments and private use of the hall is entered in our event calendar. The BeachIN is open for regular play on all free dates.<\/p>\n<div class=\"vc_row\">\r\n    <div class=\"vc_col-md-9 mb-3\">\r\n        <div id=\"calendar\" data-prod-link=\"https:\/\/staging.beachin.ch\/produkt\/reservation\/\"><\/div>\r\n        <div id=\"calendar-spinner\" class=\"spinner\" style=\"display: none;\">\r\n            <img decoding=\"async\" class=\"img-spinner\" src=\"\/wp-content\/uploads\/Webcams\/Resources\/Public\/images\/balls.svg\" alt=\"Loading\">\r\n        <\/div>\r\n    <\/div>\r\n    <div class=\"vc_column_container vc_col-md-3 mb-3\">\r\n        <div class=\"vc_column-inner\">\r\n            <div style=\"padding: 20px !important; border: 5px solid #ffffff !important; border-radius: 5px !important;\" class=\"sfForm\">\r\n                <form id=\"reservationForm\">\r\n                    <h3>Your selection<\/h3>\r\n                    <div id=\"beachin-reservation-selection\" class=\"mb-3 reservation-selection\"><\/div>\r\n                    <div id=\"submit-reservation\" class=\"mb-3 vc_btn3-container\">\r\n                        <button id=\"submit-beachin-reservation-btn\" class=\"vc_general vc_btn3\" data-redirect=\"https:\/\/staging.beachin.ch\/en\/cart\/\" disabled=\"disabled\">Add to cart \u00bb<\/button>\r\n                    <\/div>\r\n                <\/form>\r\n            <\/div>\r\n        <\/div>\r\n    <\/div>\r\n<\/div>\r\n<script>\r\n    var calendar;\r\n    var fetched_resources = [{\"id\":21942,\"title\":\"Field 2\",\"default_length\":\"90\",\"variable_length\":false,\"min_length\":null,\"max_length\":null,\"prices\":[{\"id\":22319,\"title\":\"Beachvolley Tag p.P.\",\"price\":\"15\",\"price_per_option\":[22332],\"date-from\":\"01.01\",\"date-to\":\"31.12\",\"time-from\":\"00:00\",\"time-to\":\"23:59\"},{\"id\":22320,\"title\":\"Beachvolley Abend p.P.\",\"price\":\"20\",\"price_per_option\":[22332],\"date-from\":\"01.01\",\"date-to\":\"31.12\",\"time-from\":\"17:00\",\"time-to\":\"23:59\"},{\"id\":22327,\"title\":\"Beachvolley Tag p.P. (Sommertarif)\",\"price\":\"12\",\"price_per_option\":[22332],\"date-from\":\"01.06\",\"date-to\":\"31.08\",\"time-from\":\"00:00\",\"time-to\":\"23:59\"},{\"id\":22328,\"title\":\"Beachvolley Abend p.P. (Sommertarif)\",\"price\":\"16\",\"price_per_option\":[22332],\"date-from\":\"01.06\",\"date-to\":\"31.08\",\"time-from\":\"17:00\",\"time-to\":\"23:59\"}]},{\"id\":21941,\"title\":\"Field 1\",\"default_length\":\"90\",\"variable_length\":false,\"min_length\":null,\"max_length\":null,\"prices\":[{\"id\":22319,\"title\":\"Beachvolley Tag p.P.\",\"price\":\"15\",\"price_per_option\":[22332],\"date-from\":\"01.01\",\"date-to\":\"31.12\",\"time-from\":\"00:00\",\"time-to\":\"23:59\"},{\"id\":22320,\"title\":\"Beachvolley Abend p.P.\",\"price\":\"20\",\"price_per_option\":[22332],\"date-from\":\"01.01\",\"date-to\":\"31.12\",\"time-from\":\"17:00\",\"time-to\":\"23:59\"},{\"id\":22327,\"title\":\"Beachvolley Tag p.P. (Sommertarif)\",\"price\":\"12\",\"price_per_option\":[22332],\"date-from\":\"01.06\",\"date-to\":\"31.08\",\"time-from\":\"00:00\",\"time-to\":\"23:59\"},{\"id\":22328,\"title\":\"Beachvolley Abend p.P. (Sommertarif)\",\"price\":\"16\",\"price_per_option\":[22332],\"date-from\":\"01.06\",\"date-to\":\"31.08\",\"time-from\":\"17:00\",\"time-to\":\"23:59\"}]}];\r\n    var viewPickerWrapperShow = false;\r\n    var current_lang = 'en';\r\n    (function( $ ) {\r\n        $( document ).ready(function() {\r\n\r\n            \r\n\r\n            function load_calendar(){\r\n\r\n                var width = window.innerWidth;\r\n\r\n                if (width < 768) {\r\n                    var initialView = 'resourceTimeGridTwoDay';\r\n                } else if (width < 991)  {\r\n                    var initialView = 'resourceTimeGridFourDay';\r\n                }else {\r\n                    var initialView = 'resourceTimeGridWeek';\r\n                }\r\n\r\n                var c=$('#calendar');\r\n\r\n\r\n                if (!c.length) return;\r\n\r\n                var calendarEl = c[0];\r\n            \r\n                calendar = new FullCalendar.Calendar(calendarEl, {\r\n                    initialView: initialView,\r\n                    \r\n                    timeZone: 'Europe\/Zurich',\r\n                    locale: 'en',\r\n                    firstDay: 1,\r\n                    slotMinTime: \"08:00\",\r\n                    slotMaxTime: '25:00:00',\r\n                    nextDayThreshold: '01:00:00',\r\n                    themeSystem: 'bootstrap',\r\n                    headerToolbar: {\r\n                        left: 'title',\r\n                        right: 'prev today next datePickerButton viewPickerButton',\r\n                    },\r\n                    customButtons: {\r\n                        datePickerButton: {\r\n                            bootstrapFontAwesome: 'fa-calendar',\r\n                            click: function () {\r\n                                var $btnCustom = $('.fc-datePickerButton-button'); \/\/ name of custom  button in the generated code\r\n                                $btnCustom.after('<input type=\"text\" id=\"hiddenDate\" class=\"datepicker\"\/>');\r\n\r\n                                $(\"#hiddenDate\").datepicker({\r\n                                    showOn: \"button\",\r\n\r\n                                    dateFormat:\"yy-mm-dd\",\r\n                                    onSelect: function (dateText, inst) {\r\n                                        calendar.gotoDate(dateText);\r\n                                    },\r\n                                });\r\n                                $('#ui-datepicker-div').wrap('<div class=\"smartFormsSlider\"\/>');\r\n\r\n                                var $btnDatepicker = $(\".ui-datepicker-trigger\"); \/\/ name of the generated datepicker UI \r\n                                \/\/Below are required for manipulating dynamically created datepicker on custom button click\r\n                                $(\"#hiddenDate\").show().hide();\r\n                                $btnDatepicker.trigger(\"click\"); \/\/dynamically generated button for datepicker when clicked on input textbox\r\n                                $btnDatepicker.hide();\r\n                                $btnDatepicker.remove();\r\n                                $(\"input.datepicker\").not(\":first\").remove();\/\/dynamically appended every time on custom button click\r\n\r\n                            }\r\n                        },\r\n                        viewPickerButton: {\r\n                            bootstrapFontAwesome: 'fa-th',\r\n                            click: function () {\r\n                                if(viewPickerWrapperShow){\r\n                                    $(\"#viewPickerWrapper\").remove();\r\n                                    viewPickerWrapperShow = false;\r\n                                }else{\r\n                                    var $btnCustom2 = $('.fc-viewPickerButton-button'); \/\/ name of custom  button in the generated code\r\n                                    $btnCustom2.append('<div id=\"viewPickerWrapper\" class=\"clean-journal-nav-menu\"><div class=\"menu-item\"><ul class=\"sub-menu\"><li ><a data-view=\"resourceTimeGridOneDay\">1<\/a><\/li><li><a data-view=\"resourceTimeGridTwoDay\">2<\/a><\/li><li><a data-view=\"resourceTimeGridFourDay\">4<\/a><\/li><li><a data-view=\"resourceTimeGridWeek\">7<\/a><\/li><\/ul><\/div><\/div>');\r\n\r\n                                    $(\"#viewPickerWrapper a\").click(function(e){\r\n                                        if($(this).data('view') != '')\r\n                                            calendar.changeView($(this).data('view'));\r\n                                    });\r\n                                    viewPickerWrapperShow = true;\r\n                                }\r\n                                \r\n\r\n                            }\r\n                        }\r\n                    },\r\n                    views:{\r\n                        resourceTimeGridWeek:{\r\n                            buttonText: 'Week',\r\n                        },\r\n                        resourceTimeGridOneDay:{\r\n                            type: 'resourceTimeGrid',\r\n                            titleFormat: { month: 'long' },\r\n                            buttonText: 'Day',\r\n                            duration: { days: 1 },\r\n                            resourceLabelContent: (info) => {\r\n                                return {html : info.date.toLocaleDateString(\"de-CH\", { weekday: 'long', year: 'numeric', month: '2-digit', day: '2-digit', omitCommas: true }) + \"<br \/>\"+info.resource.title};\r\n                            },\r\n                        },\r\n                        timeGrid:{ \r\n                            titleFormat: { month: 'long' }\r\n                        },\r\n                        resourceTimeGridTwoDay: {\r\n                            type: 'resourceTimeGrid',\r\n                            duration: { days: 2 },\r\n                            buttonText: '2 days',\r\n                            titleFormat: { month: 'long' }\r\n                        },\r\n                        resourceTimeGridFourDay: {\r\n                            type: 'resourceTimeGrid',\r\n                            duration: { days: 4 },\r\n                            buttonText: '4 days',\r\n                            titleFormat: { month: 'long' }\r\n                        },\r\n                    },\r\n                    buttonText:{\r\n                        today: \"Today\",\r\n                    },\r\n                    height: \"auto\",\r\n                    \/\/selectable: true,\r\n                    \/\/selectMirror: true,\r\n                    dateClick: (info) => {\r\n\r\n                        var nowDate = moment();\r\n                        var newEvent = new Object();\r\n                        newEvent.title = \"\";\r\n                        newEvent.start = info.date;\r\n                        newEvent.end = moment(info.date).add(parseInt(info.resource.extendedProps.default_length), 'minutes').toDate();\r\n                        newEvent.resourceId = info.resource.id;\r\n                        newEvent.id = info.resource.id + info.date.getTime();\r\n                        \r\n                        var isOverlapEvent = isAnOverlapEvent(calendar, moment(info.date), moment(info.date).add(parseInt(info.resource.extendedProps.default_length), 'minutes'), info.resource.id);\r\n                        var isBusinessHours = inBusinessHours(moment(info.dateStr), moment(info.dateStr).add(parseInt(info.resource.extendedProps.default_length), 'minutes'), calendar.getOption('businessHours'));\r\n                        var isPastEvent = moment(info.dateStr) < nowDate ? true : false;\r\n                        if(!isOverlapEvent && isBusinessHours && !isPastEvent){\r\n                            newEvent.default_length = info.resource.extendedProps.default_length;\r\n                            newEvent.variable_length = info.resource.extendedProps.variable_length;\r\n                            \/\/newEvent.editable = false;\r\n                            if(info.resource.extendedProps.variable_length){\r\n                                newEvent.min_length = info.resource.extendedProps.min_length;\r\n                                newEvent.max_length = info.resource.extendedProps.max_length;\r\n                                \r\n                            }else{\r\n                                newEvent.editable = false;\r\n                            }\r\n                            newEvent.resource_id = info.resource.id;\r\n                            newEvent.color = '#000';\r\n                            newEvent.className = \"fc-event-new-event\";\r\n                            var reservationEvent = calendar.addEvent(newEvent);\r\n                            addReservation(reservationEvent);\r\n                            \/\/$('.fc-event-new-event').addClass('fc-event-selected');\r\n                        }else{\r\n                            newEvent.end = moment(info.date).add(30, 'minutes').toDate();\r\n                            newEvent.color = '#f00';\r\n                            var eventError = calendar.addEvent(newEvent);\r\n                            setTimeout(() => {\r\n                                eventError.remove();\r\n                            }, 1000);\r\n                        }\r\n                    },\r\n                    eventContent: function (arg) {\r\n                        var event = arg.event;\r\n                        var customTime = moment(event.startStr).format('HH:mm')+\" - \"+moment(event.endStr).format('HH:mm');            \r\n                        var customHtml = '<div id=\"'+event.id+'\" class=\"fc-event-main-frame\"><div class=\"fc-event-time\">'+customTime+'<\/div>';\r\n                        customHtml += '<div class=\"fc-event-title-container\"><div class=\"fc-event-title fc-sticky\" style=\"font-size: 0.7em;line-height: 140%;\">';\r\n                        customHtml += event.title;\r\n                        customHtml += '<\/div><\/div><\/div>';\r\n                        return { html: customHtml }\r\n                    },\r\n                    slotEventOverlap: false,\r\n                    eventOverlap: false,\r\n                    allDaySlot: false,\r\n                    eventColor: 'green',\r\n                    defaultTimedEventDuration: '01:30',\r\n                    events: '\/?rest_route=\/beachin-reservation\/v1\/events',\r\n                    lazyFetching: false,\r\n                    dayHeaderFormat: { weekday: 'long', year: 'numeric', month: '2-digit', day: '2-digit', omitCommas: true },\r\n                    titleFormat: { month: 'long' },\r\n                    nowIndicator: true,\r\n                    schedulerLicenseKey: 'CC-Attribution-NonCommercial-NoDerivatives',\r\n                    datesAboveResources: true,\r\n                    resources: fetched_resources,\r\n                    businessHours: [ \/\/ specify an array instead\r\n                        { daysOfWeek: [ 1, 2, 3, 4 ], startTime: '08:00', endTime: '23:00' },\r\n                        { daysOfWeek: [ 5 ], startTime: '08:00', endTime: '24:30' },\r\n                        { daysOfWeek: [ 6 ], startTime: '08:00', endTime: '24:30' },\r\n                        { daysOfWeek: [ 0 ], startTime: '11:00', endTime: '19:00' }\r\n                    ],\r\n                    selectConstraint: \"businessHours\", \r\n                    eventConstraint: \"businessHours\",\r\n                    eventDurationEditable: true, \r\n                    eventResize: function(info) {\r\n                        \/\/alert(info.event.title + \" end is now \" + info.event.end.toISOString());\r\n\r\n                        \/\/if (!confirm(\"is this okay?\")) {\r\n                        \/\/info.revert();\r\n                        \/\/ }\r\n                        if(info.event.extendedProps.min_length && info.event.extendedProps.max_length){\r\n                            var eventLength = moment(info.event.end).diff(moment(info.event.start), 'minutes');\r\n                            if(eventLength < info.event.extendedProps.min_length || eventLength > info.event.extendedProps.max_length){\r\n\r\n                                \/\/setTimeout(() => {\r\n                                \/\/   info.revert();\r\n                                \/\/}, 1000)\r\n\r\n                                info.revert();\r\n                            }else{\r\n                                editReservation(info.event);\r\n                            }\r\n                        }else{\r\n                            editReservation(info.event);\r\n                        }\r\n                    },\r\n                    eventChange: function(info) {\r\n                        \r\n                        var isOverlapEvent = isAnOverlapEvent(calendar, moment(info.event.start), moment(info.event.end), info.event.extendedProps.resource_id, info.event.id);\r\n                        var isBusinessHours = inBusinessHours(moment(info.event.startStr), moment(info.event.endStr), calendar.getOption('businessHours'));\r\n                        \r\n                        if(!isOverlapEvent && isBusinessHours){\r\n                            if(info.event.extendedProps.min_length && info.event.extendedProps.max_length){\r\n                                var eventLength = moment(info.event.end).diff(moment(info.event.start), 'minutes');\r\n                                if(eventLength < info.event.extendedProps.min_length || eventLength > info.event.extendedProps.max_length){\r\n                                    info.revert();\r\n                                    notifiyWrongUserInput(info.event);\r\n                                }else{\r\n                                    editReservation(info.event);\r\n                                }\r\n                            }else{\r\n                                editReservation(info.event);\r\n                            }\r\n                        }else{\r\n                            var substrMin = 0;\r\n                            while(isOverlapEvent || !isBusinessHours){\r\n                                substrMin += 30;\r\n                                \/\/info.event.setEnd( moment(info.event.end) );\r\n                                isOverlapEvent = isAnOverlapEvent(calendar, moment(info.event.start), moment(info.event.end).subtract(substrMin, 'minutes'), info.event.extendedProps.resource_id, info.event.id);\r\n                                isBusinessHours = inBusinessHours(moment(info.event.startStr), moment(info.event.endStr).subtract(substrMin, 'minutes'), calendar.getOption('businessHours'));\r\n                                \r\n                            }  \r\n                            \/\/info.revert();\r\n                            info.event.setEnd( moment(info.event.end).subtract(substrMin, 'minutes').toDate() );\r\n                            notifiyWrongUserInput(info.event);\r\n                            \/\/editReservation(info.event);\r\n                            \r\n                        } \r\n                        \r\n                                             \r\n                    },\r\n                    loading : function (isLoading){\r\n                        var $spinner = $('#calendar-spinner');\r\n                        var $calendarTable = $('#calendar .fc-timegrid').first(); \/\/ name of custom  button in the generated code\r\n                        \r\n                        if(isLoading){\r\n                            $spinner.show();\r\n                        }else{\r\n                            $spinner.hide();\r\n                            \r\n                            if ($spinner.hasClass(\"calendarTable\")){\r\n                               \r\n                            }else{\r\n                                $calendarTable.append($('#calendar-spinner'));\r\n                                $spinner.addClass(\"calendarTable\");\r\n                            }\r\n                        }\r\n                    }\r\n                    \/\/eventLongPressDelay : 0,\r\n                    \/\/longPressDelay: 0\r\n                });\r\n            \r\n                calendar.render();\r\n\r\n                return calendar;\r\n            }\r\n\r\n\r\n            var c = load_calendar();\r\n\r\n            \r\n\r\n        });\r\n    })( jQuery );\r\n<\/script>\r\n\r\n\r\n<script id=\"reservation-template\" type=\"text\/x-custom-template\">\r\n    <div class=\"reservation\" data-product_id=\"991\">\r\n        <h3><span class=\"date\"><\/span><\/h3>\r\n        <p><span class=\"time\"><\/span>   <\/p>\r\n        <div class=\"edit\">\r\n            <p class=\"mb-0\">\r\n                <label>Duration:<\/label>\r\n                <span class=\"length\">1<\/span> Hour(s)<br\/>\r\n            <\/p>\r\n            <div class=\"d-flex edit-toolbar\">\r\n                <button class=\"length_less\">-<\/button>\r\n                <input type=\"range\" min=\"1\" max=\"9\" value=\"1\" step=\"0.5\" class=\"input_range\">\r\n                <button class=\"length_more\">+<\/button>\r\n            <\/div>  \r\n        <\/div>\r\n        <p>Location: <span class=\"place\"><\/span><\/p>\r\n                    <div class=\"beachin-option-wrapper\">\r\n                <label>Sport<\/label><br \/>\r\n\r\n                                <select name=\"beachin-option-21957\" class=\"beachin-option beachin-option-21957 active input-text mb-3 form-control\" data-id='21957' data-title='Sport' onchange=\"beachinOptionChanged(this)\">\r\n                                                        <option value=\"Beachvolley\" data-option-value='Beachvolley' data-option-title='Beachvolley'>Beachvolley<\/option>\r\n                                                        <option value=\"Beachsoccer\" data-option-value='Beachsoccer' data-option-title='Beachsoccer'>Beachsoccer<\/option>\r\n                                                        <option value=\"Beachhandball\" data-option-value='Beachhandball' data-option-title='Beachhandball'>Beachhandball<\/option>\r\n                                                        <option value=\"Beachtennis\" data-option-value='Beachtennis' data-option-title='Beachtennis'>Beachtennis<\/option>\r\n                                                        <option value=\"Beachminton\" data-option-value='Beachminton' data-option-title='Beachminton'>Beachminton<\/option>\r\n                                                        <option value=\"Beachfungames\" data-option-value='Beachfungames' data-option-title='Beachfungames'>Beachfungames<\/option>\r\n                                <\/select>\r\n                <\/div>\r\n                    <div class=\"beachin-option-wrapper\">\r\n                <label>Number of persons *<\/label><br \/>\r\n\r\n                                <select name=\"beachin-option-22332\" class=\"beachin-option beachin-option-22332 active input-text mb-3 form-control\" data-id='22332' data-title='Number of persons' onchange=\"beachinOptionChanged(this)\" required>\r\n                                                        <option value=\"\" data-option-value='' data-option-title=''><\/option>\r\n                                                        <option value=\"4\" data-option-value='4' data-option-title='4'>4<\/option>\r\n                                                        <option value=\"5\" data-option-value='5' data-option-title='5'>5<\/option>\r\n                                                        <option value=\"6\" data-option-value='6' data-option-title='6'>6<\/option>\r\n                                                        <option value=\"7\" data-option-value='7' data-option-title='7'>7<\/option>\r\n                                                        <option value=\"8\" data-option-value='8' data-option-title='8'>8<\/option>\r\n                                                        <option value=\"9\" data-option-value='9' data-option-title='9'>9<\/option>\r\n                                                        <option value=\"10\" data-option-value='10' data-option-title='10'>10<\/option>\r\n                                                        <option value=\"11\" data-option-value='11' data-option-title='11'>11<\/option>\r\n                                                        <option value=\"12\" data-option-value='12' data-option-title='12'>12<\/option>\r\n                                                        <option value=\"13\" data-option-value='13' data-option-title='13'>13<\/option>\r\n                                                        <option value=\"14\" data-option-value='14' data-option-title='14'>14<\/option>\r\n                                                        <option value=\"15\" data-option-value='15' data-option-title='15'>15<\/option>\r\n                                                        <option value=\"16\" data-option-value='16' data-option-title='16'>16<\/option>\r\n                                                        <option value=\"17\" data-option-value='17' data-option-title='17'>17<\/option>\r\n                                                        <option value=\"18\" data-option-value='18' data-option-title='18'>18<\/option>\r\n                                                        <option value=\"19\" data-option-value='19' data-option-title='19'>19<\/option>\r\n                                                        <option value=\"20\" data-option-value='20' data-option-title='20'>20<\/option>\r\n                                <\/select>\r\n                <\/div>\r\n                <p><\/p>\r\n        <div class=\"price_wrapper\"><span>Price: <span class=\"price\"><\/span><\/div>\r\n        <div class=\"price_options_wrapper\"><\/div>\r\n        <div class=\"price_total_wrapper\"><span><b>Total: <\/b><\/span><span class=\"price_total\"><\/span><\/div>\r\n    <\/div>\r\n<\/script>\r\n<!-- end of the loop -->\r\n\n<\/div>","protected":false},"excerpt":{"rendered":"<p>Events at BeachIN All information about events, tournaments and private use of the hall is entered in our event calendar. The BeachIN is open for regular play on all free dates.<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":946,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_acf_changed":false,"footnotes":""},"class_list":["post-17647","page","type-page","status-publish","hentry"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.9 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Event calendar &#8211; BeachIN Sport, Bar &amp; Hotel<\/title>\n<meta name=\"robots\" content=\"noindex, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Event calendar &#8211; BeachIN Sport, Bar &amp; Hotel\" \/>\n<meta property=\"og:description\" content=\"Events at BeachIN All information about events, tournaments and private use of the hall is entered in our event calendar. The BeachIN is open for regular play on all free dates.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/staging.beachin.ch\/events-im-sand\/eventkalender\/\" \/>\n<meta property=\"og:site_name\" content=\"BeachIN Sport, Bar &amp; Hotel\" \/>\n<meta property=\"article:modified_time\" content=\"2025-08-12T13:50:44+00:00\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/staging.beachin.ch\\\/events-im-sand\\\/eventkalender\\\/\",\"url\":\"https:\\\/\\\/staging.beachin.ch\\\/events-im-sand\\\/eventkalender\\\/\",\"name\":\"Event calendar &#8211; BeachIN Sport, Bar &amp; Hotel\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/staging.beachin.ch\\\/#website\"},\"datePublished\":\"2021-12-23T15:30:02+00:00\",\"dateModified\":\"2025-08-12T13:50:44+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/staging.beachin.ch\\\/events-im-sand\\\/eventkalender\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/staging.beachin.ch\\\/events-im-sand\\\/eventkalender\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/staging.beachin.ch\\\/events-im-sand\\\/eventkalender\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Startseite\",\"item\":\"https:\\\/\\\/staging.beachin.ch\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Events\",\"item\":\"https:\\\/\\\/staging.beachin.ch\\\/events-im-sand\\\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Event calendar\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/staging.beachin.ch\\\/#website\",\"url\":\"https:\\\/\\\/staging.beachin.ch\\\/\",\"name\":\"BeachIN Sport, Bar &amp; Hotel\",\"description\":\"Strandfeeling das ganze Jahr!\",\"publisher\":{\"@id\":\"https:\\\/\\\/staging.beachin.ch\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/staging.beachin.ch\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/staging.beachin.ch\\\/#organization\",\"name\":\"BeachIN Sport, Bar &amp; Hotel\",\"url\":\"https:\\\/\\\/staging.beachin.ch\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/staging.beachin.ch\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/staging.beachin.ch\\\/wp-content\\\/uploads\\\/2019\\\/07\\\/BeachIN_Logo_cmyk_Claim_Kontur_neu3.png\",\"contentUrl\":\"https:\\\/\\\/staging.beachin.ch\\\/wp-content\\\/uploads\\\/2019\\\/07\\\/BeachIN_Logo_cmyk_Claim_Kontur_neu3.png\",\"width\":311,\"height\":96,\"caption\":\"BeachIN Sport, Bar &amp; Hotel\"},\"image\":{\"@id\":\"https:\\\/\\\/staging.beachin.ch\\\/#\\\/schema\\\/logo\\\/image\\\/\"}}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Event calendar &#8211; BeachIN Sport, Bar &amp; Hotel","robots":{"index":"noindex","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"og_locale":"en_US","og_type":"article","og_title":"Event calendar &#8211; BeachIN Sport, Bar &amp; Hotel","og_description":"Events at BeachIN All information about events, tournaments and private use of the hall is entered in our event calendar. The BeachIN is open for regular play on all free dates.","og_url":"https:\/\/staging.beachin.ch\/events-im-sand\/eventkalender\/","og_site_name":"BeachIN Sport, Bar &amp; Hotel","article_modified_time":"2025-08-12T13:50:44+00:00","twitter_card":"summary_large_image","schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/staging.beachin.ch\/events-im-sand\/eventkalender\/","url":"https:\/\/staging.beachin.ch\/events-im-sand\/eventkalender\/","name":"Event calendar &#8211; BeachIN Sport, Bar &amp; Hotel","isPartOf":{"@id":"https:\/\/staging.beachin.ch\/#website"},"datePublished":"2021-12-23T15:30:02+00:00","dateModified":"2025-08-12T13:50:44+00:00","breadcrumb":{"@id":"https:\/\/staging.beachin.ch\/events-im-sand\/eventkalender\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/staging.beachin.ch\/events-im-sand\/eventkalender\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/staging.beachin.ch\/events-im-sand\/eventkalender\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Startseite","item":"https:\/\/staging.beachin.ch\/"},{"@type":"ListItem","position":2,"name":"Events","item":"https:\/\/staging.beachin.ch\/events-im-sand\/"},{"@type":"ListItem","position":3,"name":"Event calendar"}]},{"@type":"WebSite","@id":"https:\/\/staging.beachin.ch\/#website","url":"https:\/\/staging.beachin.ch\/","name":"BeachIN Sport, Bar &amp; Hotel","description":"Strandfeeling das ganze Jahr!","publisher":{"@id":"https:\/\/staging.beachin.ch\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/staging.beachin.ch\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/staging.beachin.ch\/#organization","name":"BeachIN Sport, Bar &amp; Hotel","url":"https:\/\/staging.beachin.ch\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/staging.beachin.ch\/#\/schema\/logo\/image\/","url":"https:\/\/staging.beachin.ch\/wp-content\/uploads\/2019\/07\/BeachIN_Logo_cmyk_Claim_Kontur_neu3.png","contentUrl":"https:\/\/staging.beachin.ch\/wp-content\/uploads\/2019\/07\/BeachIN_Logo_cmyk_Claim_Kontur_neu3.png","width":311,"height":96,"caption":"BeachIN Sport, Bar &amp; Hotel"},"image":{"@id":"https:\/\/staging.beachin.ch\/#\/schema\/logo\/image\/"}}]}},"_links":{"self":[{"href":"https:\/\/staging.beachin.ch\/en\/wp-json\/wp\/v2\/pages\/17647","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/staging.beachin.ch\/en\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/staging.beachin.ch\/en\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/staging.beachin.ch\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/staging.beachin.ch\/en\/wp-json\/wp\/v2\/comments?post=17647"}],"version-history":[{"count":3,"href":"https:\/\/staging.beachin.ch\/en\/wp-json\/wp\/v2\/pages\/17647\/revisions"}],"predecessor-version":[{"id":30032,"href":"https:\/\/staging.beachin.ch\/en\/wp-json\/wp\/v2\/pages\/17647\/revisions\/30032"}],"up":[{"embeddable":true,"href":"https:\/\/staging.beachin.ch\/en\/wp-json\/wp\/v2\/pages\/946"}],"wp:attachment":[{"href":"https:\/\/staging.beachin.ch\/en\/wp-json\/wp\/v2\/media?parent=17647"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}