{"id":4079,"date":"2025-10-30T20:37:21","date_gmt":"2025-10-30T20:37:21","guid":{"rendered":"https:\/\/potter.multisitetexas.kinsta.cloud\/?page_id=4079"},"modified":"2025-12-11T16:37:02","modified_gmt":"2025-12-11T16:37:02","slug":"local-events","status":"publish","type":"page","link":"https:\/\/patriotsinactiontx.com\/midland\/local-events\/","title":{"rendered":"Local Events"},"content":{"rendered":"<p><div class=\"fusion-fullwidth fullwidth-box fusion-builder-row-1 fusion-flex-container has-pattern-background has-mask-background nonhundred-percent-fullwidth non-hundred-percent-height-scrolling\" style=\"--awb-border-radius-top-left:0px;--awb-border-radius-top-right:0px;--awb-border-radius-bottom-right:0px;--awb-border-radius-bottom-left:0px;--awb-padding-top:100px;--awb-padding-bottom:100px;--awb-background-color:var(--awb-color1);--awb-flex-wrap:wrap;\" ><div class=\"fusion-builder-row fusion-row fusion-flex-align-items-flex-start fusion-flex-content-wrap\" style=\"max-width:1248px;margin-left: calc(-4% \/ 2 );margin-right: calc(-4% \/ 2 );\"><div class=\"fusion-layout-column fusion_builder_column fusion-builder-column-0 fusion_builder_column_1_1 1_1 fusion-flex-column\" style=\"--awb-padding-bottom-small:80px;--awb-bg-size:cover;--awb-width-large:100%;--awb-margin-top-large:0px;--awb-spacing-right-large:1.92%;--awb-margin-bottom-large:0px;--awb-spacing-left-large:1.92%;--awb-width-medium:100%;--awb-order-medium:0;--awb-spacing-right-medium:1.92%;--awb-spacing-left-medium:1.92%;--awb-width-small:100%;--awb-order-small:0;--awb-spacing-right-small:1.92%;--awb-spacing-left-small:1.92%;\" data-scroll-devices=\"small-visibility,medium-visibility,large-visibility\"><div class=\"fusion-column-wrapper fusion-column-has-shadow fusion-flex-justify-content-flex-start fusion-content-layout-column\"><div class=\"fusion-text fusion-text-1 line\" style=\"--awb-font-size:var(--awb-typography5-font-size);--awb-line-height:var(--awb-typography5-line-height);--awb-letter-spacing:var(--awb-typography5-letter-spacing);--awb-text-transform:var(--awb-typography5-text-transform);--awb-text-font-family:var(--awb-typography5-font-family);--awb-text-font-weight:var(--awb-typography5-font-weight);--awb-text-font-style:var(--awb-typography5-font-style);\"><p><span style=\"color: var(--awb-color4);\">GET INVOLVED: <\/span>UPCOMING EVENTS<\/p>\n<\/div><div class=\"fusion-title title fusion-title-1 fusion-sep-none fusion-title-text fusion-title-size-two fusion-animated\" style=\"--awb-text-color:var(--awb-custom_color_1);--awb-margin-top:0px;--awb-margin-bottom:25px;--awb-margin-bottom-small:20px;--awb-animation-color:var(--awb-color3);\" data-animationType=\"revealInLeft\" data-animationDuration=\"1.0\" data-animationDelay=\"1.0\" data-animationOffset=\"top-into-view\"><h2 class=\"fusion-title-heading title-heading-left\" style=\"margin:0;\"><p style=\"text-align: left;\">Step off the Sidelines<\/p>\n<p style=\"text-align: left;\">&amp; into the Action!<\/p><\/h2><\/div><div class=\"fusion-text fusion-text-2 fusion-text-no-margin\" style=\"--awb-margin-bottom:30px;\"><p data-pm-slice=\"1 1 &#091;&#093;\">Whether you\u2019re passionate about protecting our values, shaping policy, or want your voice heard, getting involved starts with <strong>showing up<\/strong> at precinct meetings, city council sessions, school boards, and with like-minded conservatives who are ready to make a difference. Real change begins with <strong><em>Patriots in Action,<\/em><\/strong> and that includes you. <strong>Join a local group, attend a public meeting, and let your presence speak louder than your posts.<\/strong><\/p>\n<\/div><div style=\"text-align:center;\"><a class=\"fusion-button button-flat fusion-button-default-size button-custom fusion-button-default button-1 fusion-button-default-span fusion-button-default-type fusion-no-large-visibility\" style=\"--button_accent_color:var(--awb-color1);--button_accent_hover_color:var(--awb-custom_color_1);--button_border_hover_color:var(--awb-custom_color_1);--button_gradient_top_color:var(--awb-color5);--button_gradient_bottom_color:var(--awb-color5);--button_gradient_top_color_hover:var(--awb-color3);--button_gradient_bottom_color_hover:var(--awb-color3);--button_margin-right:20px;--button_margin-bottom:15px;\" target=\"_self\" data-hover=\"bg_slide_right\" href=\"https:\/\/patriotsinactiontx.com\/midland\/submit-event\/\"><span class=\"fusion-button-text awb-button__text awb-button__text--default\">Submit an Event<\/span><\/a><\/div><div style=\"text-align:center;\"><a class=\"fusion-button button-flat fusion-button-default-size button-custom fusion-button-default button-2 fusion-button-default-span fusion-button-default-type fusion-no-small-visibility fusion-no-medium-visibility\" style=\"--button_accent_color:var(--awb-color1);--button_accent_hover_color:var(--awb-custom_color_1);--button_border_hover_color:var(--awb-custom_color_1);--button_gradient_top_color:var(--awb-color5);--button_gradient_bottom_color:var(--awb-color5);--button_gradient_top_color_hover:var(--awb-color3);--button_gradient_bottom_color_hover:var(--awb-color3);--button_margin-right:20px;--button_margin-bottom:15px;\" target=\"lightbox\" rel=\"iLightbox\" data-hover=\"bg_slide_right\" href=\"https:\/\/api.leadconnectorhq.com\/widget\/form\/QszbS1XBH4o7vf8ldQr4\"><span class=\"fusion-button-text awb-button__text awb-button__text--default\">Submit an Event<\/span><\/a><\/div><\/div><\/div><div class=\"fusion-layout-column fusion_builder_column fusion-builder-column-1 fusion_builder_column_1_1 1_1 fusion-flex-column fusion-flex-align-self-center\" style=\"--awb-padding-top:-50px;--awb-padding-bottom:-50px;--awb-padding-top-small:60vw;--awb-bg-size:cover;--awb-width-large:100%;--awb-margin-top-large:0px;--awb-spacing-right-large:1.92%;--awb-margin-bottom-large:0px;--awb-spacing-left-large:1.92%;--awb-width-medium:100%;--awb-order-medium:0;--awb-spacing-right-medium:1.92%;--awb-spacing-left-medium:1.92%;--awb-width-small:100%;--awb-order-small:0;--awb-spacing-right-small:1.92%;--awb-spacing-left-small:1.92%;\" data-scroll-devices=\"small-visibility,medium-visibility,large-visibility\"><div class=\"fusion-column-wrapper fusion-column-has-shadow fusion-flex-justify-content-flex-start fusion-content-layout-column\"><style>\n    \/* Event Card Styling *\/\n    .mn-event {\n        padding: 0px;\n        margin-bottom: 20px;\n        border: 1px solid #ddd;\n        border-radius: 12px;\n        background: #fff;\n        box-shadow: 0 2px 8px rgba(0,0,0,0.08);\n        transition: transform 0.15s ease, box-shadow 0.15s ease;\n    }\n\/* Force title + date\/time to stack vertically *\/\n.mn-event {\n    display: flex;\n    flex-direction: column !important;\n}\n\n.mn-title,\n.mn-datetime {\n    display: block !important;\n    width: 100% !important;\n}\n\n    .mn-event:hover {\n        transform: translateY(-2px);\n        box-shadow: 0 4px 14px rgba(0,0,0,0.12);\n    }\n\n    \/* Event Title *\/\n    .mn-title {\n        font-size: 22px;\n        font-weight: 700;\n        margin-bottom: 12px;\n        line-height: 1.3;\n    }\n\n    \/* Event Date\/Time below title *\/\n    .mn-datetime {\n        color: #555;\n        font-size: 15px;\n        font-weight: 600;\n        margin-bottom: 12px;\n        line-height: 1.5;\n        white-space: normal;\n    }\n\n    \/* Event Link *\/\n    .mn-link a {\n        display: inline-block;\n        padding: 8px 16px;\n        background: #005bb5;\n        color: white !important;\n        text-decoration: none;\n        border-radius: 6px;\n        font-weight: 600;\n        transition: background 0.2s ease;\n    }\n    .mn-link a:hover {\n        background: #156b3e;\n    }\n\n    \/* Month Divider *\/\n    .mn-month-divider {\n        font-size: 18px;\n        font-weight: 700;\n        margin: 30px 0 15px;\n        border-bottom: 2px solid #ccc;\n        padding-bottom: 6px;\n        color: #333;\n    }\n\n    \/* Pagination Buttons *\/\n    .mn-pagination {\n        text-align: center;\n        margin-top: 30px;\n    }\n    .mn-pagination button {\n        padding: 10px 18px;\n        margin: 0 6px;\n        border: none;\n        background: #0073e6;\n        color: #fff;\n        font-size: 15px;\n        border-radius: 6px;\n        cursor: pointer;\n        font-weight: 600;\n        transition: background 0.2s ease;\n    }\n    .mn-pagination button:hover:not(:disabled) {\n        background: #005bb5;\n    }\n    .mn-pagination button:disabled {\n        background: #cccccc;\n        cursor: not-allowed;\n    }\n<\/style>\n\n<div id=\"mn-events\"><\/div>\n<div class=\"mn-pagination\">\n    <button id=\"mn-prev\" disabled>Previous<\/button>\n    <button id=\"mn-next\" disabled>Next<\/button>\n<\/div>\n\n<script src=\"https:\/\/cdnjs.cloudflare.com\/ajax\/libs\/ical.js\/1.4.0\/ical.min.js\"><\/script>\n<script>\n(async () => {\n    const url = \"?mn_calendar_feed=1\";\n    const response = await fetch(url);\n    const icsText = await response.text();\n\n    const jcalData = ICAL.parse(icsText);\n    const vcalendar = new ICAL.Component(jcalData);\n    const vevents = vcalendar.getAllSubcomponents(\"vevent\");\n\n    const container = document.getElementById(\"mn-events\");\n\n    let events = [];\n\n    vevents.forEach(eventComp => {\n        const event = new ICAL.Event(eventComp);\n\n        const title = event.summary;\n\n        \/\/ Extract Mighty Networks event link\n        const descRaw = event.description || \"\";\n        const linkMatch = descRaw.match(\/https:\\\/\\\/community\\.patriotsinaction\\.com\\\/[^\\s<]+\/);\n        const eventLink = linkMatch ? linkMatch[0] : \"\";\n\n        const dtstart = event.startDate.toJSDate();\n        const dtend = event.endDate.toJSDate();\n\n        \/\/ Recurring events\n        const iterator = event.iterator();\n        const now = new Date();\n        const maxFuture = new Date();\n        maxFuture.setFullYear(maxFuture.getFullYear() + 2);\n\n        if (dtend >= now) {\n            events.push({ title, start: dtstart, end: dtend, eventLink });\n        }\n\n        let next;\n        while ((next = iterator.next())) {\n            const occStart = next.toJSDate();\n            const duration = dtend - dtstart;\n            const occEnd = new Date(occStart.getTime() + duration);\n\n            if (occEnd >= now && occStart <= maxFuture) {\n                events.push({ title, start: occStart, end: occEnd, eventLink });\n            }\n            if (occStart > maxFuture) break;\n        }\n    });\n\n    \/* --------------------------------------------------\n       REMOVE DUPLICATE EVENTS (same title + same datetime)\n    -----------------------------------------------------*\/\n    const seen = new Set();\n    events = events.filter(e => {\n        const key = e.title + \"|\" + e.start.getTime();\n        if (seen.has(key)) return false;\n        seen.add(key);\n        return true;\n    });\n\n    \/\/ Sort events\n    events.sort((a, b) => a.start - b.start);\n\n    \/\/ PAGINATION\n    const perPage = 5;\n    let currentPage = 0;\n\n    const prevBtn = document.getElementById(\"mn-prev\");\n    const nextBtn = document.getElementById(\"mn-next\");\n\n    function renderPage() {\n        container.innerHTML = \"\";\n\n        const startIndex = currentPage * perPage;\n        const endIndex = startIndex + perPage;\n        const pageEvents = events.slice(startIndex, endIndex);\n\n        let lastMonth = \"\";\n\n        pageEvents.forEach(e => {\n            const eventMonth = e.start.toLocaleDateString([], { month: 'long', year: 'numeric' });\n            if (eventMonth !== lastMonth) {\n                const divider = document.createElement(\"div\");\n                divider.className = \"mn-month-divider\";\n                divider.textContent = eventMonth;\n                container.appendChild(divider);\n                lastMonth = eventMonth;\n            }\n\n            const div = document.createElement(\"div\");\n            div.className = \"mn-event\";\n\n            div.innerHTML = `\n                <div class=\"mn-title\">${e.title}<\/div>\n                <div class=\"mn-datetime\">\n                    ${e.start.toLocaleDateString([], { weekday: 'long', year: 'numeric', month: 'long', day: 'numeric' })}\n                    <br>\n                    ${e.start.toLocaleTimeString([], { hour: '2-digit', minute: '2-digit' })}\n                <\/div>\n                ${e.eventLink ? `<div class=\"mn-link\"><a href=\"${e.eventLink}\" target=\"_blank\">View Event \u2192<\/a><\/div>` : \"\"}\n            `;\n\n            container.appendChild(div);\n        });\n\n        prevBtn.disabled = currentPage === 0;\n        nextBtn.disabled = endIndex >= events.length;\n    }\n\n    prevBtn.addEventListener(\"click\", () => {\n        if (currentPage > 0) {\n            currentPage--;\n            renderPage();\n        }\n    });\n\n    nextBtn.addEventListener(\"click\", () => {\n        if ((currentPage + 1) * perPage < events.length) {\n            currentPage++;\n            renderPage();\n        }\n    });\n\n    renderPage();\n})();\n<\/script><\/div><\/div><\/div><\/div><div class=\"fusion-fullwidth fullwidth-box fusion-builder-row-2 fusion-flex-container has-pattern-background has-mask-background hundred-percent-fullwidth non-hundred-percent-height-scrolling fusion-no-small-visibility\" style=\"--awb-border-radius-top-left:0px;--awb-border-radius-top-right:0px;--awb-border-radius-bottom-right:0px;--awb-border-radius-bottom-left:0px;--awb-flex-wrap:wrap;\" ><div class=\"fusion-builder-row fusion-row fusion-flex-align-items-flex-start fusion-flex-content-wrap\" style=\"width:104% !important;max-width:104% !important;margin-left: calc(-4% \/ 2 );margin-right: calc(-4% \/ 2 );\"><div class=\"fusion-layout-column fusion_builder_column fusion-builder-column-2 fusion_builder_column_1_1 1_1 fusion-flex-column\" style=\"--awb-bg-size:cover;--awb-width-large:100%;--awb-margin-top-large:0px;--awb-spacing-right-large:1.92%;--awb-margin-bottom-large:0px;--awb-spacing-left-large:1.92%;--awb-width-medium:100%;--awb-order-medium:0;--awb-spacing-right-medium:1.92%;--awb-spacing-left-medium:1.92%;--awb-width-small:100%;--awb-order-small:0;--awb-spacing-right-small:1.92%;--awb-spacing-left-small:1.92%;\"><div class=\"fusion-column-wrapper fusion-column-has-shadow fusion-flex-justify-content-flex-start fusion-content-layout-column\"><div id=\"c1700b8f954407fc3e31938f7ebf56fd0\"><\/div><\/div><\/div><\/div><\/div><div class=\"fusion-fullwidth fullwidth-box fusion-builder-row-3 fusion-flex-container has-pattern-background has-mask-background nonhundred-percent-fullwidth non-hundred-percent-height-scrolling\" style=\"--awb-border-radius-top-left:0px;--awb-border-radius-top-right:0px;--awb-border-radius-bottom-right:0px;--awb-border-radius-bottom-left:0px;--awb-flex-wrap:wrap;\" ><div class=\"fusion-builder-row fusion-row fusion-flex-align-items-flex-start fusion-flex-content-wrap\" style=\"max-width:1248px;margin-left: calc(-4% \/ 2 );margin-right: calc(-4% \/ 2 );\"><div class=\"fusion-layout-column fusion_builder_column fusion-builder-column-3 fusion_builder_column_1_1 1_1 fusion-flex-column\" style=\"--awb-bg-size:cover;--awb-width-large:100%;--awb-margin-top-large:0px;--awb-spacing-right-large:1.92%;--awb-margin-bottom-large:0px;--awb-spacing-left-large:1.92%;--awb-width-medium:100%;--awb-order-medium:0;--awb-spacing-right-medium:1.92%;--awb-spacing-left-medium:1.92%;--awb-width-small:100%;--awb-order-small:0;--awb-spacing-right-small:1.92%;--awb-spacing-left-small:1.92%;\"><div class=\"fusion-column-wrapper fusion-column-has-shadow fusion-flex-justify-content-flex-start fusion-content-layout-column\"><div id=\"c1a1b374b09d534244d4c2026f2479e42\"><\/div><\/div><\/div><\/div><\/div><\/p>\n","protected":false},"excerpt":{"rendered":"","protected":false},"author":2,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"100-width.php","meta":{"footnotes":""},"class_list":["post-4079","page","type-page","status-publish","hentry"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.8 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Local Events - Midland<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/patriotsinactiontx.com\/midland\/local-events\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Local Events - Midland\" \/>\n<meta property=\"og:url\" content=\"https:\/\/patriotsinactiontx.com\/midland\/local-events\/\" \/>\n<meta property=\"og:site_name\" content=\"Midland\" \/>\n<meta property=\"article:modified_time\" content=\"2025-12-11T16:37:02+00:00\" \/>\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=\"1 minute\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/patriotsinactiontx.com\/midland\/local-events\/\",\"url\":\"https:\/\/patriotsinactiontx.com\/midland\/local-events\/\",\"name\":\"Local Events - Midland\",\"isPartOf\":{\"@id\":\"https:\/\/patriotsinactiontx.com\/midland\/#website\"},\"datePublished\":\"2025-10-30T20:37:21+00:00\",\"dateModified\":\"2025-12-11T16:37:02+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/patriotsinactiontx.com\/midland\/local-events\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/patriotsinactiontx.com\/midland\/local-events\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/patriotsinactiontx.com\/midland\/local-events\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/patriotsinactiontx.com\/midland\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Local Events\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/patriotsinactiontx.com\/midland\/#website\",\"url\":\"https:\/\/patriotsinactiontx.com\/midland\/\",\"name\":\"Midland\",\"description\":\"Making Our Founders Proud.\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/patriotsinactiontx.com\/midland\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Local Events - Midland","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:\/\/patriotsinactiontx.com\/midland\/local-events\/","og_locale":"en_US","og_type":"article","og_title":"Local Events - Midland","og_url":"https:\/\/patriotsinactiontx.com\/midland\/local-events\/","og_site_name":"Midland","article_modified_time":"2025-12-11T16:37:02+00:00","twitter_card":"summary_large_image","twitter_misc":{"Est. reading time":"1 minute"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/patriotsinactiontx.com\/midland\/local-events\/","url":"https:\/\/patriotsinactiontx.com\/midland\/local-events\/","name":"Local Events - Midland","isPartOf":{"@id":"https:\/\/patriotsinactiontx.com\/midland\/#website"},"datePublished":"2025-10-30T20:37:21+00:00","dateModified":"2025-12-11T16:37:02+00:00","breadcrumb":{"@id":"https:\/\/patriotsinactiontx.com\/midland\/local-events\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/patriotsinactiontx.com\/midland\/local-events\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/patriotsinactiontx.com\/midland\/local-events\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/patriotsinactiontx.com\/midland\/"},{"@type":"ListItem","position":2,"name":"Local Events"}]},{"@type":"WebSite","@id":"https:\/\/patriotsinactiontx.com\/midland\/#website","url":"https:\/\/patriotsinactiontx.com\/midland\/","name":"Midland","description":"Making Our Founders Proud.","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/patriotsinactiontx.com\/midland\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"}]}},"_links":{"self":[{"href":"https:\/\/patriotsinactiontx.com\/midland\/wp-json\/wp\/v2\/pages\/4079","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/patriotsinactiontx.com\/midland\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/patriotsinactiontx.com\/midland\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/patriotsinactiontx.com\/midland\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/patriotsinactiontx.com\/midland\/wp-json\/wp\/v2\/comments?post=4079"}],"version-history":[{"count":26,"href":"https:\/\/patriotsinactiontx.com\/midland\/wp-json\/wp\/v2\/pages\/4079\/revisions"}],"predecessor-version":[{"id":5521,"href":"https:\/\/patriotsinactiontx.com\/midland\/wp-json\/wp\/v2\/pages\/4079\/revisions\/5521"}],"wp:attachment":[{"href":"https:\/\/patriotsinactiontx.com\/midland\/wp-json\/wp\/v2\/media?parent=4079"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}