<style>
                            [data-view='listMonthWithFeaturedImage'] .fc-list-event-title {
                                display: grid;
                                grid-template-columns: 1fr 1fr 1fr;
                                grid-gap: 32px;

                                &amp; div {
                                    grid-column: span 2;
                                    display: flex;
                                    flex-direction: column;
                                }

                                &amp; div &gt; span {
                                    font-size: 1rem;
                                }
        
                                &amp; a {
                                    font-size: 1.5rem;
                                    font-weight: bold;
                                }
        
                                &amp; img {
                                    aspect-ratio: 1 / 1;
                                    width: 100%;
                                    object-fit: cover;
                                }
                            }

                            [data-view='listMonthWithFeaturedImage'] .fc-day th[scope='colgroup'] {
                                background: none;
                                position: static;
                            }
                                
                            [data-view='listMonthWithFeaturedImage'] .fc-list-event-time {
                                display: none;
                            }

                            [data-view='listMonthWithFeaturedImage'] .fc-list-day-cushion.fc-cell-shaded {
                                background: none;
                                text-align: start;
                                display: flex;
                                align-items: center;
                                white-space: nowrap;
                                gap: 32px;
                                padding: 32px 0;
                            }

                            [data-view='listMonthWithFeaturedImage'] .fc-list-day-cushion::after {
                                width: 100%;
                                height: 1px;
                                background: var(--fc-border-color);
                            }

                            [data-view='listMonthWithFeaturedImage'] :is(.fc-list-event-title, th, .fc-list-event-graphic, .fc-listMonthWithFeaturedImage-view.fc-view){
                                border: none;
                            }

                            [data-view='listMonthWithFeaturedImage'] .fc-list-day-side-text {
                                display: none;
                            }

                            @media (max-width: 768px) {
                                [data-view='listMonthWithFeaturedImage'] .fc-list-event-title {
                                    grid-template-columns:  1fr;
                                }

                                [data-view='listMonthWithFeaturedImage'] .fc-list-event-title img {
                                    grid-row-start: 1;
                                }   
                            }
                        </style>{"id":5432,"date":"2026-05-13T15:13:39","date_gmt":"2026-05-13T21:13:39","guid":{"rendered":"https:\/\/www.arthurmurray.com\/thewoodlands\/calendar\/"},"modified":"2026-05-29T08:01:55","modified_gmt":"2026-05-29T14:01:55","slug":"calendar","status":"publish","type":"page","link":"https:\/\/www.arthurmurray.com\/thewoodlands\/calendar\/","title":{"rendered":"Calendar"},"content":{"rendered":"\n<div class=\"wp-block-group alignfull has-global-padding is-layout-constrained wp-block-group-is-layout-constrained\">\n<div class=\"wp-block-cover alignfull has-parallax dyn\" style=\"margin-top:0;margin-bottom:0;padding-top:80px;padding-right:var(--wp--preset--spacing--medium);padding-bottom:0;padding-left:var(--wp--preset--spacing--medium);min-height:480px;aspect-ratio:unset;\"><div class=\"wp-block-cover__image-background wp-image-274 size-full has-parallax\" style=\"background-position:50% 50%;background-image:url(https:\/\/www.arthurmurray.com\/thewoodlands\/wp-content\/uploads\/sites\/13\/2025\/12\/BG-1024x576-1.webp)\"><\/div><span aria-hidden=\"true\" class=\"wp-block-cover__background has-custom-ami-secondary-500-background-color has-background-dim-60 has-background-dim\"><\/span><div class=\"wp-block-cover__inner-container has-global-padding is-layout-constrained wp-container-core-cover-is-layout-091c9636 wp-block-cover-is-layout-constrained\">\n<div class=\"wp-block-group has-global-padding is-layout-constrained wp-block-group-is-layout-constrained\">\n<div class=\"wp-block-group alignwide is-vertical is-content-justification-center is-layout-flex wp-container-core-group-is-layout-82a6c020 wp-block-group-is-layout-flex\" style=\"min-height:100%;padding-top:var(--wp--preset--spacing--medium);padding-bottom:var(--wp--preset--spacing--medium)\">\n<h2 class=\"wp-block-heading dyn has-primary-color has-text-color has-link-color has-custom-2-font-size wp-elements-4f47823e0a8bd229e174896840f515c5\">Calendar of Events<\/h2>\n\n\n\n<p class=\"dyn\">Arthur Murray <span data-tag=\"site-title\" data-params=\"&quot;&quot;\" class=\"is-tag\">Site title<\/span><\/p>\n\n\n<\/div>\n<\/div>\n<\/div><\/div>\n<\/div>\n\n\n\n<div class=\"wp-block-group alignfull is-style-default has-background-background-color has-background has-global-padding is-layout-constrained wp-block-group-is-layout-constrained\" style=\"margin-top:0;margin-bottom:0\">    <script>\n            let piecalAJAX = {\n            ajaxURL: \"https:\/\/www.arthurmurray.com\/thewoodlands\/wp-admin\/admin-ajax.php\",\n            ajaxNonce: \"ed724a8a7c\"\n            }\n\n            let alreadyExpandedOccurrences = [];\n\n            function piecalPrepareCustomViewsForCalendar( views ) {\n                let supportedEventHandlers = [\n                    'eventDataTransform',\n                    'dateClick',\n                    'eventClick', \n                    'eventDidMount', \n                    'dayCellDidMount', \n                    'viewDidMount', \n                    'viewWillUnmount',\n                    'dayHeaderContent',\n                    'dayHeaderDidMount'\n                ];\n\n                for( let view in views ) {\n                    let viewProps = views[view];\n\n                    for( let prop in viewProps ) {\n                        if( supportedEventHandlers.includes( prop ) ) {\n                            let eventHandlerCode = viewProps[prop];\n\n                            let handlerFunction = new Function( 'info', eventHandlerCode );\n\n                            viewProps[prop] = handlerFunction;\n                        }\n                    }\n\n                    \/\/ Remove customProps since we don't want those output inside the calendar object\n                    delete viewProps.customProps;\n\n                    \/\/ Add in the $atts['duration'] value if the view has a duration property.\n                    if( viewProps.duration ) {\n                        viewProps.duration = {\n                            months: 2                        };\n                    }\n                }\n\n                return views;\n            }\n            \n            document.addEventListener('DOMContentLoaded', function() {\n                var pieCalendarFirstLoad = true;\n                var calendarEl = document.getElementById('calendar');\n                var calendar = new FullCalendar.Calendar(calendarEl, {\n                    headerToolbar: false,\n                    initialView: \"dayGridMonth\",\n                    editable: false,\n                    eventSources: [[{\"title\":\"Studio Summer Showcase\",\"start\":\"2026-06-19T12:00:00\",\"end\":\"2026-06-19T13:00:00\",\"details\":\"The Summer Showcase is an exciting in-studio event where students of all levels take the spotlight to perform dance routines they have been developing over weeks or even months of training. Each perfo...\",\"permalink\":\"https:\\\/\\\/www.arthurmurray.com\\\/thewoodlands\\\/events\\\/studio-summer-showcase\\\/\",\"postType\":\"Event\",\"postId\":4964,\"allDay\":\"1\",\"color\":\"\",\"textColor\":\"\",\"featuredimage\":\"https:\\\/\\\/www.arthurmurray.com\\\/thewoodlands\\\/wp-content\\\/uploads\\\/sites\\\/13\\\/2026\\\/03\\\/Summer-Showcase-2026.webp\",\"featuredimagealt\":\"\"},{\"title\":\"Medal Ball Showcase\",\"start\":\"2026-05-29T19:00:00\",\"end\":\"2026-05-29T21:30:00\",\"details\":\"The Arthur Murray Medal Ball is a special gala dance event that celebrates students as they advance to the next level of their dance program. During the event, students perform the dances they have be...\",\"permalink\":\"https:\\\/\\\/www.arthurmurray.com\\\/thewoodlands\\\/events\\\/medal-ball-showcase\\\/\",\"postType\":\"Event\",\"postId\":4951,\"color\":\"\",\"textColor\":\"\",\"featuredimage\":\"https:\\\/\\\/www.arthurmurray.com\\\/thewoodlands\\\/wp-content\\\/uploads\\\/sites\\\/13\\\/2026\\\/03\\\/arthur-murray-the-woodlands-medal-ball-showcase-2026.webp\",\"featuredimagealt\":\"Medal Ball Showcase event at Arthur Murray Dance Studio in The Woodlands, TX on Friday, May 29, 2026\"},{\"title\":\"Austin Freestyle &amp; Showcase\",\"start\":\"2026-04-18T12:00:00\",\"end\":\"2026-04-18T13:00:00\",\"details\":\"The Austin Freestyles is an exciting and energetic dance event designed for students of all levels to showcase the dances they\\u2019ve been working hard to master. Whether you\\u2019re new to dancing or more adv...\",\"permalink\":\"https:\\\/\\\/www.arthurmurray.com\\\/thewoodlands\\\/events\\\/austin-freestyle-showcase\\\/\",\"postType\":\"Event\",\"postId\":4950,\"allDay\":\"1\",\"color\":\"\",\"textColor\":\"\",\"featuredimage\":\"https:\\\/\\\/www.arthurmurray.com\\\/thewoodlands\\\/wp-content\\\/uploads\\\/sites\\\/13\\\/2026\\\/03\\\/2026-Austin-Freestyles.webp\",\"featuredimagealt\":\"2026 Austin Freestyles\"}]],\n                    direction: \"ltr\",\n                    contentHeight: \"auto\",\n                    locale: \"en-US\",\n                    eventTimeFormat: {\"hour\":\"2-digit\",\"minute\":\"2-digit\"},\n                    dayHeaderFormat: { weekday: 'long' },\n                    views: piecalPrepareCustomViewsForCalendar({\"listUpcoming\":{\"type\":\"listMonth\",\"duration\":{\"months\":2},\"customProps\":{\"niceName\":\"List - Upcoming\"}},\"listMonthWithFeaturedImage\":{\"type\":\"listMonth\",\"duration\":{\"months\":1},\"customProps\":{\"niceName\":\"Month - List with Image\",\"styles\":\"\\n                            [data-view='listMonthWithFeaturedImage'] .fc-list-event-title {\\n                                display: grid;\\n                                grid-template-columns: 1fr 1fr 1fr;\\n                                grid-gap: 32px;\\n\\n                                & div {\\n                                    grid-column: span 2;\\n                                    display: flex;\\n                                    flex-direction: column;\\n                                }\\n\\n                                & div > span {\\n                                    font-size: 1rem;\\n                                }\\n        \\n                                & a {\\n                                    font-size: 1.5rem;\\n                                    font-weight: bold;\\n                                }\\n        \\n                                & img {\\n                                    aspect-ratio: 1 \\\/ 1;\\n                                    width: 100%;\\n                                    object-fit: cover;\\n                                }\\n                            }\\n\\n                            [data-view='listMonthWithFeaturedImage'] .fc-day th[scope='colgroup'] {\\n                                background: none;\\n                                position: static;\\n                            }\\n                                \\n                            [data-view='listMonthWithFeaturedImage'] .fc-list-event-time {\\n                                display: none;\\n                            }\\n\\n                            [data-view='listMonthWithFeaturedImage'] .fc-list-day-cushion.fc-cell-shaded {\\n                                background: none;\\n                                text-align: start;\\n                                display: flex;\\n                                align-items: center;\\n                                white-space: nowrap;\\n                                gap: 32px;\\n                                padding: 32px 0;\\n                            }\\n\\n                            [data-view='listMonthWithFeaturedImage'] .fc-list-day-cushion::after {\\n                                width: 100%;\\n                                height: 1px;\\n                                background: var(--fc-border-color);\\n                            }\\n\\n                            [data-view='listMonthWithFeaturedImage'] :is(.fc-list-event-title, th, .fc-list-event-graphic, .fc-listMonthWithFeaturedImage-view.fc-view){\\n                                border: none;\\n                            }\\n\\n                            [data-view='listMonthWithFeaturedImage'] .fc-list-day-side-text {\\n                                display: none;\\n                            }\\n\\n                            @media (max-width: 768px) {\\n                                [data-view='listMonthWithFeaturedImage'] .fc-list-event-title {\\n                                    grid-template-columns:  1fr;\\n                                }\\n\\n                                [data-view='listMonthWithFeaturedImage'] .fc-list-event-title img {\\n                                    grid-row-start: 1;\\n                                }   \\n                            }\\n                        \"},\"eventDidMount\":\"\\n                        info = piecalJS.eventDidMount( info );\\n\\n                        let row = info.el;\\n                        let titleContainer = info.el.querySelector('.fc-list-event-title');\\n                        let titleLink = titleContainer.querySelector('a');\\n                        let column = document.createElement('div');\\n                        \\n                        let descriptionText = info.event._def.extendedProps.details;\\n                        let decoder = document.createElement('textarea');\\n                        decoder.innerHTML = descriptionText;\\n\\n                        let eventTimeText = document.createElement('span');\\n                        eventTimeText.innerText = info.el.querySelector('.fc-list-event-time').innerText;\\n                        \\n                        let description = document.createElement('p');\\n                        description.innerHTML = decoder.value;\\n                        \\n                        titleContainer.append(column);\\n                        column.append(eventTimeText);\\n                        column.append(titleLink);\\n\\n                        if( description.innerText != '' ) {\\n                            column.append(description);\\n                        }\\n                        \\n                        if( info.event._def.extendedProps.featuredimage ) {\\n                            let image = document.createElement('img');\\n                            image.setAttribute('src', info.event._def.extendedProps.featuredimage);\\n                            image.setAttribute('alt', info.event._def.extendedProps.featuredimagealt);\\n                            titleContainer.append(image);\\n                        }\\n                    \"}}),\n                    eventClick: function( info ) {\n                        info = piecalJS.eventClick( info, {\n                            appendOffset: false                        } );\n\n                            Alpine.store(\"calendarEngine\").featuredImage = info.event._def.extendedProps.featuredimage;\n    Alpine.store(\"calendarEngine\").featuredImageAlt = info.event._def.extendedProps.featuredimagealt;\n                        },\n                    eventDataTransform: function(event) {  \n                        event = piecalJS.eventDataTransform( event );\n\n                        \n                        return event;  \n                    },\n                    dateClick: function( info ) {\n                        info = piecalJS.dateClick( info );\n\n                                            },\n                    eventDidMount: function( info ) {\n                        info = piecalJS.eventDidMount( info );\n\n                                            },\n                    dayCellDidMount: function( info ) {\n                        info = piecalJS.dayCellDidMount( info );\n\n                                            },\n                    dayHeaderContent: function( info ) {\n                        info = piecalJS.dayHeaderContent( info );\n\n                        \n                        return info.text;\n                    },\n                    dayHeaderDidMount: function( info ) {\n                        info = piecalJS.dayHeaderDidMount( info );\n\n                                            },\n                    \n    datesSet: function( dateInfo ) {\n        if( pieCalendarFirstLoad ) {\n            pieCalendarFirstLoad = false;\n            return;\n        }\n\n        let rangeStart = dateInfo.startStr;\n        let rangeEnd = dateInfo.endStr;\n\n        let useExtendedRanges = true;\n        let extendedRangeWidth = 40;\n\n        if( useExtendedRanges ) {\n            let extendedRangeStart = new Date( dateInfo.startStr );\n            let extendedRangeEnd = new Date( dateInfo.endStr );\n\n            extendedRangeStart.setDate( extendedRangeStart.getDate() - extendedRangeWidth );\n            extendedRangeEnd.setDate( extendedRangeEnd.getDate() + extendedRangeWidth );\n\n            rangeStart = extendedRangeStart.toISOString();\n            rangeEnd = extendedRangeEnd.toISOString();\n        }\n        \n        \/\/ Let's narrow events down to only the recurring ones to avoid sending more JSON in our AJAX request\n        \/\/ than is necessary.\n        let recurringEvents = [{\"title\":\"Studio Summer Showcase\",\"start\":\"2026-06-19T12:00:00\",\"end\":\"2026-06-19T13:00:00\",\"details\":\"The Summer Showcase is an exciting in-studio event where students of all levels take the spotlight to perform dance routines they have been developing over weeks or even months of training. Each perfo...\",\"permalink\":\"https:\\\/\\\/www.arthurmurray.com\\\/thewoodlands\\\/events\\\/studio-summer-showcase\\\/\",\"postType\":\"Event\",\"postId\":4964,\"allDay\":\"1\",\"color\":\"\",\"textColor\":\"\",\"featuredimage\":\"https:\\\/\\\/www.arthurmurray.com\\\/thewoodlands\\\/wp-content\\\/uploads\\\/sites\\\/13\\\/2026\\\/03\\\/Summer-Showcase-2026.webp\",\"featuredimagealt\":\"\"},{\"title\":\"Medal Ball Showcase\",\"start\":\"2026-05-29T19:00:00\",\"end\":\"2026-05-29T21:30:00\",\"details\":\"The Arthur Murray Medal Ball is a special gala dance event that celebrates students as they advance to the next level of their dance program. During the event, students perform the dances they have be...\",\"permalink\":\"https:\\\/\\\/www.arthurmurray.com\\\/thewoodlands\\\/events\\\/medal-ball-showcase\\\/\",\"postType\":\"Event\",\"postId\":4951,\"color\":\"\",\"textColor\":\"\",\"featuredimage\":\"https:\\\/\\\/www.arthurmurray.com\\\/thewoodlands\\\/wp-content\\\/uploads\\\/sites\\\/13\\\/2026\\\/03\\\/arthur-murray-the-woodlands-medal-ball-showcase-2026.webp\",\"featuredimagealt\":\"Medal Ball Showcase event at Arthur Murray Dance Studio in The Woodlands, TX on Friday, May 29, 2026\"},{\"title\":\"Austin Freestyle &amp; Showcase\",\"start\":\"2026-04-18T12:00:00\",\"end\":\"2026-04-18T13:00:00\",\"details\":\"The Austin Freestyles is an exciting and energetic dance event designed for students of all levels to showcase the dances they\\u2019ve been working hard to master. Whether you\\u2019re new to dancing or more adv...\",\"permalink\":\"https:\\\/\\\/www.arthurmurray.com\\\/thewoodlands\\\/events\\\/austin-freestyle-showcase\\\/\",\"postType\":\"Event\",\"postId\":4950,\"allDay\":\"1\",\"color\":\"\",\"textColor\":\"\",\"featuredimage\":\"https:\\\/\\\/www.arthurmurray.com\\\/thewoodlands\\\/wp-content\\\/uploads\\\/sites\\\/13\\\/2026\\\/03\\\/2026-Austin-Freestyles.webp\",\"featuredimagealt\":\"2026 Austin Freestyles\"}];\n\n        \/\/ Let's add the original event to our alreadyExpandedOccurrences array to avoid duplication.\n        for( let event of recurringEvents ) {\n            let eventID = encodeURI(event.title.replace(' ', '').toLowerCase())+event.start+event.postId;\n\n            alreadyExpandedOccurrences = [...alreadyExpandedOccurrences, eventID];\n        }\n\n        \/\/ Now we need to submit this range to an AJAX function that does some things and returns some events\n        fetch(piecalAJAX.ajaxURL, {\n            method: 'POST',\n            headers: {\n                'Content-Type': 'application\/x-www-form-urlencoded', \/\/ Sending our data as URL encoded form data\n                'Accept': 'application\/json', \/\/ We expect JSON in return\n            },\n            body: new URLSearchParams({ \/\/ This is a way to easily convert our data into URL encoded form data\n                'action': 'piecal_expand_occurrences_in_view',\n                'nonce': piecalAJAX.ajaxNonce,\n                'rangeStart': rangeStart,\n                'rangeEnd': rangeEnd,\n                'appendOffset': false,\n                'events': JSON.stringify( recurringEvents )\n            })\n        })\n        .then(response => response.json()) \/\/ Parsing the returned JSON\n        .then(data => {\n            if (data.success) {\n                occurrencesInRange = data.events;\n\n                for( let occurrence of data.events ) {\n                    let occurrenceID = encodeURI(occurrence.title.replace(' ', '').toLowerCase())+occurrence.start+occurrence.postId;\n\n                    if( !alreadyExpandedOccurrences.includes( occurrenceID ) ) {\n                        let scrubber = document.createElement('textarea');\n                        scrubber.innerHTML = occurrence.title;\n                        occurrence.title = scrubber.value;\n\n                        if(occurrence.allDay && occurrence.end) {\n                            \/\/ Extend end date for all day events that span multiple days\n                            let { actualEnd, end } = piecalUtils.getAlldayMultidayEventEnd( occurrence ) ?? {};\n\n                            if( actualEnd && end ) {    \n                                occurrence.actualEnd = actualEnd;\n                                occurrence.end = end;\n                            }\n                        }\n                        \n                        this.addEvent( occurrence );\n                        alreadyExpandedOccurrences = [...alreadyExpandedOccurrences, occurrenceID];\n                    } else {\n                        continue;\n                    }\n                }\n            } else {\n                console.error('Recurring occurrences were not expanded due to an AJAX error.');\n            }\n        })\n        .catch(error => {\n            console.error('Error:', error);\n        });\n    },\n                    });\n                    calendar.render();\n                    window.calendar = calendar;\n            });\n\n            function piecalChangeView( view ) {\n                piecalCleanView( document.querySelector('.piecal-wrapper').getAttribute('data-view'), view );\n                document.querySelector('.piecal-wrapper').setAttribute('data-view', view);\n                window.calendar.changeView(view);\n                Alpine.store('calendarEngine').calendarView = view;\n                Alpine.store('calendarEngine').viewTitle = window.calendar.currentData.viewTitle;\n                Alpine.store('calendarEngine').viewSpec = window.calendar.currentData.viewSpec.buttonTextDefault;\n            }\n\n            \/\/ This function forces the calendar to re-render events when the view is changed, but only\n            \/\/ when necessary. This prevents artifacts from custom views from persisting between view changes\n            \/\/ when those views have the same or similar types, e.g. listMonth and listUpcoming.\n            function piecalCleanView( oldView, newView ) {\n                if( oldView.toLowerCase().includes( 'list' ) && newView.toLowerCase().includes( 'grid' ) ) {\n                    return false;\n                }\n\n                if( oldView.toLowerCase().includes( 'list' ) && newView.toLowerCase().includes( 'list' ) ) {\n                    window.calendar.changeView('dayGridMonth');\n                }\n\n                if( oldView.toLowerCase().includes( 'grid' ) && newView.toLowerCase().includes( 'grid' ) ) {\n                    window.calendar.changeView('listMonth');\n                }\n            }\n\n            function piecalGotoToday() {\n                console.log('today');\n            }\n\n            function piecalNextInView() {\n                window.calendar.next();\n            }\n\n            function piecalPreviousInView() {\n                console.log('prev');\n            }\n\n            function piecalSkipCalendar() {\n                let focusedCalendar = document.querySelector('.piecal-wrapper:focus-within');\n                let focusablesInCalendar = focusedCalendar.querySelectorAll('button, [href], input, select, textarea, [tabindex]:not([tabindex=\"-1\"]');\n                let lastFocusable = focusablesInCalendar[focusablesInCalendar.length - 1];\n\n                let focusablesInDocument = document.querySelectorAll('button, [href], input, select, textarea, [tabindex]:not([tabindex=\"-1\"]');\n                let targetFocusable = Array.prototype.indexOf.call(focusablesInDocument, lastFocusable) + 1;\n\n                focusablesInDocument[targetFocusable].focus();\n            }\n\n            document.addEventListener('alpine:init', () => {\n                Alpine.store('calendarEngine', {\n                    viewTitle: \"Loading\",\n                    viewSpec: \"Loading\",\n                    buttonText: {},\n                    showPopover: false,\n                    locale: \"en-US\",\n                    localeDateStringFormat: {\"hour\":\"2-digit\",\"minute\":\"2-digit\"},\n                    allDayLocaleDateStringFormat: [],\n                    calendarView: \"dayGridMonth\",\n                    eventTitle: \"Loading...\",\n                    eventDetails: \"Loading...\",\n                    eventType: \"Loading...\",\n                    eventStart: \"Loading...\",\n                    eventAllDay: false,\n                    eventActualEnd: null,\n                    eventEnd: \"Loading...\",\n                    eventUrl: \"\/\",\n                    safeOutput( input ) {\n                        let scrubber = document.createElement('textarea');\n                        scrubber.innerHTML = input;\n                        return scrubber.value;\n                    }\n                })\n            })\n\n            window.addEventListener('DOMContentLoaded', () => {\n                Alpine.store('calendarEngine').viewTitle = window.calendar.currentData.viewTitle;\n                Alpine.store('calendarEngine').viewSpec = window.calendar.currentData.viewSpec.buttonTextDefault;\n                Alpine.store('calendarEngine').buttonText = window.calendar.currentData.localeDefaults.buttonText;\n            })\n\n            window.addEventListener('keydown', (e) => {\n                if( e.keyCode == 27 || e.key == 'Escape' ) Alpine.store('calendarEngine').showPopover = false;\n\n            })\n        <\/script>\n        <div\n        class=\"piecal-wrapper\"\n        data-view=\"dayGridMonth\";\n        x-data\n        >\n            <div class=\"piecal-controls fc\">\n                <button\n                    class=\"piecal-controls__skip-calendar fc-button fc-button-primary\"\n                    onClick=\"piecalSkipCalendar()\">\n                        Skip Calendar                <\/button>\n                <div\n                class=\"piecal-controls__view-title\" \n                aria-live=\"polite\"\n                role=\"status\"\n                >\n                  <span class=\"visually-hidden\" x-text=\"$store.calendarEngine.viewTitle + ' - current view is ' + $store.calendarEngine.calendarView\"><\/span>\n                  <span aria-hidden=\"true\" x-text=\"$store.calendarEngine.viewTitle\"><\/span>\n                <\/div>\n                <button \n                    class=\"piecal-controls__back-to-month fc-button fc-button-primary\"\n                    aria-label=\"Back to full month view.\"\n                    onClick=\"piecalChangeView('dayGridMonth')\">\n                        Back To Full Month                <\/button>\n                <label class=\"piecal-controls__view-chooser\">\n                    Choose View                    <select x-model=\"$store.calendarEngine.calendarView\" @change=\"piecalChangeView($store.calendarEngine.calendarView)\">\n                                                    <option value=\"dayGridMonth\">\n                                Month - Classic                            <\/option>\n                                                    <option value=\"listMonth\">\n                                Month - List                            <\/option>\n                                                    <option value=\"timeGridWeek\">\n                                Week - Time Grid                            <\/option>\n                                                    <option value=\"listWeek\">\n                                Week - List                            <\/option>\n                                                    <option value=\"dayGridWeek\">\n                                Week - Day Grid                            <\/option>\n                                                    <option value=\"listDay\">\n                                Day - List                            <\/option>\n                                                    <option value=\"listUpcoming\">\n                                List - Upcoming                            <\/option>\n                                                    <option value=\"listMonthWithFeaturedImage\">\n                                Month - List with Image                            <\/option>\n                                            <\/select>\n                <\/label>\n                <div class=\"piecal-controls__navigation-button-group\">\n                    <button \n                    class=\"fc-button fc-button-primary piecal-controls__today-button\"\n                    @click=\"window.calendar.today(); $store.calendarEngine.viewTitle = window.calendar.currentData.viewTitle\"\n                    x-text=\"$store.calendarEngine.buttonText.today ?? 'Today'\">\n                    <\/button>\n                    <button \n                    class=\"fc-button fc-button-primary piecal-controls__prev-button\"\n                    @click=\"window.calendar.prev(); $store.calendarEngine.viewTitle = window.calendar.currentData.viewTitle\"\n                    :aria-label=\"$store.calendarEngine.buttonText.prev + ' ' + $store.calendarEngine.viewSpec\"><<\/button>\n                    <button \n                    class=\"fc-button fc-button-primary piecal-controls__next-button\"\n                    @click=\"window.calendar.next(); $store.calendarEngine.viewTitle = window.calendar.currentData.viewTitle\" \n                    :aria-label=\"$store.calendarEngine.buttonText.next + ' ' + $store.calendarEngine.viewSpec\">><\/button>\n                <\/div>\n            <\/div>\n            <div id=\"calendar\"><\/div>\n            <div \n                class=\"piecal-popover\" \n                x-show=\"$store.calendarEngine.showPopover\"\n                style=\"display: none;\">\n                    <div \n                    class=\"piecal-popover__inner\" \n                    role=\"dialog\"\n                    aria-labelledby=\"piecal-popover__title--01\"\n                    aria-describedby=\"piecal-popover__details--01\"\n                    @click.outside=\"$store.calendarEngine.showPopover = false\"\n                    x-trap.noscroll=\"$store.calendarEngine.showPopover\">\n                        <button \n                        class=\"piecal-popover__close-button\" \n                        title=\"Close event details\"\n                        @click=\"$store.calendarEngine.showPopover = false\">\n                        <\/button>\n                            <img :class=\"$store.calendarEngine.featuredImage ? 'piecal-popover__featured-image' : 'piecal-popover__featured-image--hidden'\" :src=\"$store.calendarEngine.featuredImage\" :alt=\"$store.calendarEngine.featuredImageAlt != '' ? $store.calendarEngine.featuredImageAlt : $store.calendarEngine.eventTitle + ' Featured Image'\">\n                            <p class=\"piecal-popover__title\" id=\"piecal-popover__title--01\" x-text=\"$store.calendarEngine.safeOutput( $store.calendarEngine.eventTitle )\">Event Title<\/p>\n                                                <hr>\n                        <div class=\"piecal-popover__meta\">\n                                                        <p>\n                            Starts                            <\/p>\n                            <p \n                            aria-labelledby=\"piecal-event-start-date\" \n                            x-text=\"!$store.calendarEngine.eventAllDay ? new Date($store.calendarEngine.eventStart).toLocaleDateString( $store.calendarEngine.locale, $store.calendarEngine.localeDateStringFormat ) : new Date($store.calendarEngine.eventStart).toLocaleDateString( $store.calendarEngine.locale, $store.calendarEngine.allDayLocaleDateStringFormat )\"><\/p>\n                            <p x-show=\"$store.calendarEngine.eventEnd\">\n                            Ends                            <\/p>\n                            <p \n                            x-show=\"$store.calendarEngine.eventEnd\" \n                            x-text=\"!$store.calendarEngine.eventAllDay ? new Date($store.calendarEngine.eventEnd).toLocaleDateString( $store.calendarEngine.locale, $store.calendarEngine.localeDateStringFormat ) : new Date($store.calendarEngine.eventActualEnd).toLocaleDateString( $store.calendarEngine.locale, $store.calendarEngine.allDayLocaleDateStringFormat )\"><\/p>\n                                                    <\/div>\n                        <hr>\n                                                <p x-show=\"$store.calendarEngine.eventDetails\" class=\"piecal-popover__details\" id=\"piecal-popover__details--01\" x-text=\"$store.calendarEngine.safeOutput( $store.calendarEngine.eventDetails )\"><\/p>                                                                        <a x-show=\"$store.calendarEngine.eventUrl\" class=\"piecal-popover__view-link\" :href=\"$store.calendarEngine.eventUrl\">\n                        View                             <span x-text=\"$store.calendarEngine.eventType\"><\/span>\n                                                    <\/a>\n                                            <\/div>\n            <\/div>\n        <\/div>\n        <div class=\"piecal-footer\">\n                    <\/div>\n        \n<\/div>\n","protected":false},"excerpt":{"rendered":"","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_piecal_is_recurring":false,"_piecal_recurring_interval":1,"_piecal_recurring_frequency":"","_piecal_recurring_exact_position":false,"_piecal_recurring_end":"","_piecal_color":"","_piecal_text_color":"","_piecal_global_color_master":false,"_piecal_rsets":"[]","_piecal_is_event":false,"_piecal_start_date":"","_piecal_end_date":"","_piecal_is_allday":false,"greyd_block_editor_preview":[],"slim_seo":{"title":"Austin Freestyle &amp; Showcase - The Woodlands","description":"The Austin Freestyles is an exciting and energetic dance event designed for students of all levels to showcase the dances they\u2019ve been working hard to master. W"},"iawp_total_views":2,"footnotes":""},"page_global":[18],"class_list":["post-5432","page","type-page","status-publish","hentry","page_global-synched"],"_links":{"self":[{"href":"https:\/\/www.arthurmurray.com\/thewoodlands\/wp-json\/wp\/v2\/pages\/5432","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.arthurmurray.com\/thewoodlands\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.arthurmurray.com\/thewoodlands\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.arthurmurray.com\/thewoodlands\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.arthurmurray.com\/thewoodlands\/wp-json\/wp\/v2\/comments?post=5432"}],"version-history":[{"count":1,"href":"https:\/\/www.arthurmurray.com\/thewoodlands\/wp-json\/wp\/v2\/pages\/5432\/revisions"}],"predecessor-version":[{"id":5439,"href":"https:\/\/www.arthurmurray.com\/thewoodlands\/wp-json\/wp\/v2\/pages\/5432\/revisions\/5439"}],"wp:attachment":[{"href":"https:\/\/www.arthurmurray.com\/thewoodlands\/wp-json\/wp\/v2\/media?parent=5432"}],"wp:term":[{"taxonomy":"page_global","embeddable":true,"href":"https:\/\/www.arthurmurray.com\/thewoodlands\/wp-json\/wp\/v2\/page_global?post=5432"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}