{"id":100,"date":"2026-02-02T23:41:28","date_gmt":"2026-02-02T14:41:28","guid":{"rendered":"https:\/\/www.twistedcalendar.top\/?page_id=100"},"modified":"2026-03-21T01:09:51","modified_gmt":"2026-03-20T16:09:51","slug":"100-2","status":"publish","type":"page","link":"https:\/\/www.twistedcalendar.top\/","title":{"rendered":"HOME"},"content":{"rendered":"\n<div class=\"wp-block-columns js--scr-animation is-layout-flex wp-container-core-columns-is-layout-8f761849 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:100%\">\n<div class=\"wp-block-jinr-blocks-tab b--jinr-block b--jinr-tab block-ec29f324-5e41-4234-8126-10f5db2268fb d--tab-design1 d--tab-number1\"><div class=\"o--tab-wrapper\"><div class=\"o--tab-titles\"><div class=\"c--tab-title active\">\u4eca\u65e5\u306e\u4e88\u5b9a<\/div><div class=\"c--tab-title \">\u660e\u65e5<\/div><\/div><\/div><div class=\"o--tab-contents\">\n<div class=\"wp-block-jinr-blocks-tabchild c--tab-contents\">\n<!DOCTYPE html>\n<html lang=\"ja\">\n<head>\n    \n    \n    <title>Today&#8217;s Events<\/title>\n    <script src=\"https:\/\/cdn.jsdelivr.net\/npm\/fullcalendar@6.1.10\/index.global.min.js\"><\/script>\n    <script src=\"https:\/\/cdn.jsdelivr.net\/npm\/@fullcalendar\/google-calendar@6.1.10\/index.global.min.js\"><\/script>\n    <style>\n        :root { --text-main: #3c4043; --bg-body: #ffffff; }\n        body { margin: 0; font-family: sans-serif; color: var(--text-main); background-color: var(--bg-body); }\n        .fc-header-toolbar { display: none !important; }\n        .fc-list { border: none !important; }\n        .fc-list-day { display: none !important; }\n        .fc-list-event { pointer-events: none !important; cursor: default !important; }\n        .fc-list-event-title a { text-decoration: none !important; color: inherit !important; pointer-events: none !important; }\n        .fc-list-event-title { font-size: 0.85rem; padding: 12px 5px !important; font-weight: 500; }\n        .fc-list-event-time { display: none !important; }\n        .fc-list-event-dot { border: none !important; width: 5px !important; height: 15px !important; border-radius: 0 !important; margin-right: 10px; }\n        .status-label { margin-left: 8px; display: inline-block; padding: 1px 6px; font-size: 0.75rem; font-weight: bold; color: inherit; background-color: rgba(0, 0, 0, 0.05); border: 1px solid rgba(0, 0, 0, 0.1); border-radius: 4px; line-height: 1.2; vertical-align: middle; }\n        .event-meta-info { margin-left: 6px; color: #888888; font-size: 0.8rem; font-weight: normal; vertical-align: middle; }\n        .event-yokoku-row .fc-list-event-title { color: #aaaaaa; }\n        .fc-scroller { overflow: hidden !important; }\n    <\/style>\n<\/head>\n<body>\n\n<div id=\"calendar_today\"><\/div>\n\n<script>\n    document.addEventListener('DOMContentLoaded', function() {\n        const getDateOnly = (date) => new Date(date.getFullYear(), date.getMonth(), date.getDate());\n        \n        \/\/ \u300c\u4eca\u65e5\u300d\u306e\u65e5\u4ed8\u8a2d\u5b9a\n        const targetDate = getDateOnly(new Date()); \n        const nextDay = new Date(targetDate); \n        nextDay.setDate(targetDate.getDate() + 1);\n\n        const calendar = new FullCalendar.Calendar(document.getElementById('calendar_today'), {\n            initialView: 'listDay',\n            locale: 'ja',\n            height: 'auto',\n            headerToolbar: false,\n            \/\/ \u4eca\u65e5\u306e00:00\u304b\u3089\u660e\u65e5\u306e00:00\u307e\u3067\u3092\u8868\u793a\n            validRange: { start: targetDate, end: nextDay },\n            googleCalendarApiKey: 'AIzaSyCJF5OfysToxGE1p6fFP27kVCT6Gv2_jMo',\n            events: '85050d2e25e21842f72a318c7d22bb1065a5e3a50cb0d46977169bc1afc8d465@group.calendar.google.com',\n            eventClick: (info) => info.jsEvent.preventDefault(),\n            eventDidMount: function(info) {\n                const title = info.event.title;\n                const el = info.el;\n                const startDateOnly = getDateOnly(info.event.start);\n                let endDateAdj = new Date(info.event.end || info.event.start);\n                if (info.event.allDay) endDateAdj.setDate(endDateAdj.getDate() - 1);\n                const finalDateOnly = getDateOnly(endDateAdj);\n\n                \/\/ \u8272\u5206\u3051\u8a2d\u5b9a\n                let color = '#70757a';\n                if (title.includes('\u30a4\u30d9\u30f3\u30c8')) color = '#d2691e';\n                else if (title.match(\/\u30e1\u30f3\u30c6\u30ca\u30f3\u30b9|\uff92\uff9d\uff83\uff85\u30f3\u30b9\/)) color = '#888888';\n                else if (title.includes('\u30ad\u30e3\u30f3\u30da\u30fc\u30f3')) color = '#b8860b';\n                else if (title.includes('\u53ec\u559a')) color = '#483d8b';\n                else if (title.includes('<\u4e88\u544a>')) { color = '#dddddd'; el.classList.add('event-yokoku-row'); }\n                \n                const dot = el.querySelector('.fc-list-event-dot');\n                if (dot) dot.style.backgroundColor = color;\n\n                const titleCell = el.querySelector('.fc-list-event-title');\n                const isMultipleDays = finalDateOnly.getTime() > startDateOnly.getTime();\n\n                \/\/ \u958b\u59cb\u30fb\u6700\u7d42\u65e5\u30bf\u30b0\n                if (isMultipleDays) {\n                    const span = document.createElement('span');\n                    span.className = 'status-label';\n                    if (targetDate.getTime() === startDateOnly.getTime()) {\n                        span.innerText = '\u958b\u59cb';\n                        titleCell.appendChild(span);\n                    } else if (targetDate.getTime() === finalDateOnly.getTime()) {\n                        span.innerText = '\u6700\u7d42\u65e5';\n                        titleCell.appendChild(span);\n                    }\n                }\n\n                \/\/ \u30ab\u30a6\u30f3\u30c8\u8868\u793a\uff08\u25cb\u65e5\u76ee \/ \u3042\u3068\u25cb\u65e5\uff09\n                const oneDayMs = 24 * 60 * 60 * 1000;\n                if (title.includes('\u30a4\u30d9\u30f3\u30c8')) {\n                    const totalDays = Math.round((finalDateOnly.getTime() - startDateOnly.getTime()) \/ oneDayMs) + 1;\n                    const currentDay = Math.round((targetDate.getTime() - startDateOnly.getTime()) \/ oneDayMs) + 1;\n                    if (currentDay > 0 && currentDay <= totalDays) {\n                        const m = document.createElement('span'); m.className = 'event-meta-info'; m.innerText = `\uff08${currentDay}\/${totalDays}\u65e5\u76ee\uff09`; titleCell.appendChild(m);\n                    }\n                } else if (title.includes('\u30ad\u30e3\u30f3\u30da\u30fc\u30f3')) {\n                    if (targetDate.getTime() > startDateOnly.getTime() && targetDate.getTime() <= finalDateOnly.getTime()) {\n                        const diffDays = Math.round((finalDateOnly.getTime() - targetDate.getTime()) \/ oneDayMs);\n                        if (diffDays > 0) {\n                            const m = document.createElement('span'); m.className = 'event-meta-info'; m.innerText = `\uff08\u7d42\u4e86\u307e\u3067\u3042\u3068${diffDays}\u65e5\uff09`; titleCell.appendChild(m);\n                        }\n                    }\n                }\n            }\n        });\n        calendar.render();\n    });\n<\/script>\n<\/body>\n<\/html>\n<\/div>\n\n\n\n<div class=\"wp-block-jinr-blocks-tabchild c--tab-contents\">\n<!DOCTYPE html>\n<html lang=\"ja\">\n<head>\n    \n    \n    <title>Tomorrow&#8217;s Events<\/title>\n    <script src=\"https:\/\/cdn.jsdelivr.net\/npm\/fullcalendar@6.1.10\/index.global.min.js\"><\/script>\n    <script src=\"https:\/\/cdn.jsdelivr.net\/npm\/@fullcalendar\/google-calendar@6.1.10\/index.global.min.js\"><\/script>\n    <style>\n        :root { --text-main: #3c4043; --bg-body: #ffffff; }\n        body { margin: 0; font-family: sans-serif; color: var(--text-main); background-color: var(--bg-body); }\n        .fc-header-toolbar { display: none !important; }\n        .fc-list { border: none !important; }\n        .fc-list-day { display: none !important; }\n        .fc-list-event { pointer-events: none !important; cursor: default !important; }\n        .fc-list-event-title a { text-decoration: none !important; color: inherit !important; pointer-events: none !important; }\n        .fc-list-event-title { font-size: 0.85rem; padding: 12px 5px !important; font-weight: 500; }\n        .fc-list-event-time { display: none !important; }\n        .fc-list-event-dot { border: none !important; width: 5px !important; height: 15px !important; border-radius: 0 !important; margin-right: 10px; }\n        .status-label { margin-left: 8px; display: inline-block; padding: 1px 6px; font-size: 0.75rem; font-weight: bold; color: inherit; background-color: rgba(0, 0, 0, 0.05); border: 1px solid rgba(0, 0, 0, 0.1); border-radius: 4px; line-height: 1.2; vertical-align: middle; }\n        .event-meta-info { margin-left: 6px; color: #888888; font-size: 0.8rem; font-weight: normal; vertical-align: middle; }\n        .event-yokoku-row .fc-list-event-title { color: #aaaaaa; }\n        .fc-scroller { overflow: hidden !important; }\n    <\/style>\n<\/head>\n<body>\n\n<div id=\"calendar_tomorrow\"><\/div>\n\n<script>\n    document.addEventListener('DOMContentLoaded', function() {\n        const getDateOnly = (date) => new Date(date.getFullYear(), date.getMonth(), date.getDate());\n        \n        \/\/ --- \u3053\u3053\u304c\u300c\u660e\u65e5\u300d\u306e\u8a2d\u5b9a ---\n        const today = getDateOnly(new Date());\n        const targetDate = new Date(today); \n        targetDate.setDate(today.getDate() + 1); \/\/ \u4eca\u65e5\u306b1\u65e5\u8db3\u3059\n        const nextDay = new Date(targetDate); \n        nextDay.setDate(targetDate.getDate() + 1);\n\n        const calendar = new FullCalendar.Calendar(document.getElementById('calendar_tomorrow'), {\n            initialView: 'listDay',\n            locale: 'ja',\n            height: 'auto',\n            headerToolbar: false,\n            validRange: { start: targetDate, end: nextDay },\n            googleCalendarApiKey: 'AIzaSyCJF5OfysToxGE1p6fFP27kVCT6Gv2_jMo',\n            events: '85050d2e25e21842f72a318c7d22bb1065a5e3a50cb0d46977169bc1afc8d465@group.calendar.google.com',\n            eventClick: (info) => info.jsEvent.preventDefault(),\n            eventDidMount: function(info) {\n                const title = info.event.title;\n                const el = info.el;\n                const startDateOnly = getDateOnly(info.event.start);\n                let endDateAdj = new Date(info.event.end || info.event.start);\n                if (info.event.allDay) endDateAdj.setDate(endDateAdj.getDate() - 1);\n                const finalDateOnly = getDateOnly(endDateAdj);\n\n                let color = '#70757a';\n                if (title.includes('\u30a4\u30d9\u30f3\u30c8')) color = '#d2691e';\n                else if (title.match(\/\u30e1\u30f3\u30c6\u30ca\u30f3\u30b9|\uff92\uff9d\uff83\uff85\u30f3\u30b9\/)) color = '#888888';\n                else if (title.includes('\u30ad\u30e3\u30f3\u30da\u30fc\u30f3')) color = '#b8860b';\n                else if (title.includes('\u53ec\u559a')) color = '#483d8b';\n                else if (title.includes('<\u4e88\u544a>')) { color = '#dddddd'; el.classList.add('event-yokoku-row'); }\n                \n                const dot = el.querySelector('.fc-list-event-dot');\n                if (dot) dot.style.backgroundColor = color;\n\n                const titleCell = el.querySelector('.fc-list-event-title');\n                const isMultipleDays = finalDateOnly.getTime() > startDateOnly.getTime();\n\n                if (isMultipleDays) {\n                    const span = document.createElement('span');\n                    span.className = 'status-label';\n                    if (targetDate.getTime() === startDateOnly.getTime()) {\n                        span.innerText = '\u958b\u59cb';\n                        titleCell.appendChild(span);\n                    } else if (targetDate.getTime() === finalDateOnly.getTime()) {\n                        span.innerText = '\u6700\u7d42\u65e5';\n                        titleCell.appendChild(span);\n                    }\n                }\n\n                const oneDayMs = 24 * 60 * 60 * 1000;\n                if (title.includes('\u30a4\u30d9\u30f3\u30c8')) {\n                    const totalDays = Math.round((finalDateOnly.getTime() - startDateOnly.getTime()) \/ oneDayMs) + 1;\n                    const currentDay = Math.round((targetDate.getTime() - startDateOnly.getTime()) \/ oneDayMs) + 1;\n                    if (currentDay > 0 && currentDay <= totalDays) {\n                        const m = document.createElement('span'); m.className = 'event-meta-info'; m.innerText = `\uff08${currentDay}\/${totalDays}\u65e5\u76ee\uff09`; titleCell.appendChild(m);\n                    }\n                } else if (title.includes('\u30ad\u30e3\u30f3\u30da\u30fc\u30f3')) {\n                    if (targetDate.getTime() > startDateOnly.getTime() && targetDate.getTime() <= finalDateOnly.getTime()) {\n                        const diffDays = Math.round((finalDateOnly.getTime() - targetDate.getTime()) \/ oneDayMs);\n                        if (diffDays > 0) {\n                            const m = document.createElement('span'); m.className = 'event-meta-info'; m.innerText = `\uff08\u7d42\u4e86\u307e\u3067\u3042\u3068${diffDays}\u65e5\uff09`; titleCell.appendChild(m);\n                        }\n                    }\n                }\n            }\n        });\n        calendar.render();\n    });\n<\/script>\n<\/body>\n<\/html>\n<\/div>\n<\/div><style>\n\t\t\t.block-ec29f324-5e41-4234-8126-10f5db2268fb .o--tab-contents {\n\t\t\t\tbackground-color: #ffffff;\n\t\t\t\tcolor: #383027 !important;\n\t\t\t}\n\t\t\t.block-ec29f324-5e41-4234-8126-10f5db2268fb .o--tab-contents * {\n\t\t\t\tcolor: #383027 !important;\n\t\t\t}\n\t\t<\/style><\/div>\n\n\n\n<div class=\"wp-block-jinr-blocks-designborder b--jinr-block jinr-sen\"><div class=\"d--sen-style7\"><span class=\"a--sen-parts1\" style=\"border-bottom:6px double #d0d0d0\"><\/span><\/div><\/div>\n\n\n\n<!DOCTYPE html>\n<html lang=\"ja\">\n<head>\n    \n    \n    <title>Full Grid Calendar &#8211; FAFAFA Background<\/title>\n    \n    <script src=\"https:\/\/cdn.jsdelivr.net\/npm\/fullcalendar@6.1.10\/index.global.min.js\"><\/script>\n    <script src=\"https:\/\/cdn.jsdelivr.net\/npm\/@fullcalendar\/google-calendar@6.1.10\/index.global.min.js\"><\/script>\n    <script src=\"https:\/\/cdnjs.cloudflare.com\/ajax\/libs\/hammer.js\/2.0.8\/hammer.min.js\"><\/script>\n\n    <style>\n        :root {\n            --fc-border-color: #dddddd;\n            --text-main: #3c4043;\n            --google-gray: #5f6368;\n            \/* \u80cc\u666f\u8272\u306e\u8a2d\u5b9a *\/\n            --weekday-bg: #FAFAFA; \/* \u5e73\u65e5\u306e\u80cc\u666f\u3092#FAFAFA\u306b\u5909\u66f4 *\/\n            --sat-bg: #f5f8fa; \/* \u9752\u307f\u3092\u5c11\u3057\u8abf\u6574 *\/\n            --sun-bg: #fcf7f7; \/* \u8d64\u307f\u3092\u5c11\u3057\u8abf\u6574 *\/\n        }\n\n        body { margin: 0; padding: 10px; font-family: sans-serif; color: var(--text-main); overflow-x: hidden; background-color: #f0f0f0; }\n        #calendar-container { max-width: 1000px; margin: 0 auto; background: #fff; border-radius: 8px; overflow: hidden; }\n\n        .fc-theme-standard .fc-scrollgrid { border: 1px solid var(--fc-border-color) !important; border-collapse: collapse !important; }\n        .fc-theme-standard td, .fc-theme-standard th { border: 1px solid var(--fc-border-color) !important; }\n\n        \/* \u5e73\u65e5\u306e\u80cc\u666f\u8272\u3092\u6307\u5b9a *\/\n        .fc-daygrid-day { background-color: var(--weekday-bg) !important; }\n\n        .fc-toolbar { \n            display: flex !important; \n            justify-content: space-between !important; \n            align-items: center !important;\n            margin: 10px 15px !important;\n        }\n        .fc-toolbar-chunk { display: flex !important; align-items: center !important; gap: 5px; }\n\n        .fc-col-header-cell { background: #f1f3f4 !important; padding: 10px 0 !important; font-weight: 500 !important; color: var(--google-gray) !important; }\n        .fc-day-sat.fc-col-header-cell { background-color: var(--sat-bg) !important; }\n        .fc-day-sun.fc-col-header-cell { background-color: var(--sun-bg) !important; }\n\n        .fc-toolbar-title { font-size: 1rem !important; font-weight: bold; white-space: nowrap; }\n        .fc-button { \n            background-color: #fff !important; border: 1px solid #dadce0 !important; \n            color: var(--google-gray) !important; font-size: 0.75rem !important; border-radius: 4px !important; \n            padding: 4px 8px !important;\n        }\n\n        .fc-daygrid-event { \n            border: none !important; border-radius: 4px !important; \n            padding: 2px 4px !important; margin: 1px 2px !important; \n            font-size: 0.75rem !important; font-weight: normal !important; \n            display: block !important; cursor: pointer !important; \n            white-space: nowrap !important; overflow: hidden !important; \n            text-overflow: ellipsis !important; text-decoration: none !important;\n        }\n\n        \/* <\u4e88\u544a> \u5c02\u7528\u306e\u30c7\u30b6\u30a4\u30f3 *\/\n        .event-yokoku {\n            \/* \u30b0\u30e9\u30c7\u30fc\u30b7\u30e7\u30f3\u306e\u672c\u4f53\u8272\u306f\u80cc\u666f\u306e#FAFAFA\u306b\u5408\u308f\u305b\u3066\u8abf\u6574 *\/\n            background: linear-gradient(to right, rgba(210, 210, 210, 0) 0%, rgba(210, 210, 210, 1) 20%, rgba(210, 210, 210, 1) 80%, rgba(210, 210, 210, 0) 100%) !important;\n            color: #666 !important;\n            border: none !important;\n            text-align: center !important;\n        }\n\n        .fc-event-time, .fc-daygrid-event-dot { display: none !important; }\n\n        \/* \u571f\u65e5\u306e\u80cc\u666f\u8272\u3092\u4e0a\u66f8\u304d *\/\n        .fc-day-sat { background-color: var(--sat-bg) !important; }\n        .fc-day-sun { background-color: var(--sun-bg) !important; }\n        \n        .fc .fc-daygrid-day-top { flex-direction: row-reverse !important; }\n        .fc .fc-daygrid-day-number { padding: 4px 8px !important; font-size: 0.75rem; color: var(--google-gray); text-decoration: none !important; }\n        .fc-daygrid-day-frame { min-height: 70px !important; }\n\n        #calendar-popup { \n            position: fixed; display: none; background: rgba(40, 40, 40, 0.98); color: #fff; \n            padding: 10px 14px; border-radius: 8px; font-size: 0.85rem; z-index: 10000; \n            max-width: 250px; pointer-events: none; box-shadow: 0 4px 15px rgba(0,0,0,0.4); line-height: 1.5;\n        }\n        .popup-time { display: block; font-size: 0.75rem; color: #ccc; margin-top: 4px; border-top: 1px solid #555; padding-top: 4px; }\n\n        #calendar { touch-action: pan-y !important; }\n\n        @media (max-width: 768px) { \n            .fc-toolbar { flex-direction: row !important; }\n            .fc-toolbar-title { font-size: 0.9rem !important; }\n        }\n    <\/style>\n<\/head>\n<body>\n\n<div id=\"calendar-container\">\n    <div id=\"calendar\"><\/div>\n<\/div>\n\n<div id=\"calendar-popup\"><\/div>\n\n<script>\n    document.addEventListener('DOMContentLoaded', function() {\n        const popup = document.getElementById('calendar-popup');\n        const calendarEl = document.getElementById('calendar');\n        let popupTimer;\n\n        const calendar = new FullCalendar.Calendar(calendarEl, {\n            initialView: 'dayGridMonth',\n            locale: 'ja',\n            dayHeaderFormat: { weekday: 'narrow' },\n            firstDay: 1,\n            height: 'auto',\n            dayMaxEvents: false,\n            showNonCurrentDates: false, \n            fixedWeekCount: false,      \n            headerToolbar: { left: 'title', center: '', right: 'today prev,next' },\n            eventOrder: \"start,allDay,title\",\n            dayCellContent: function(e) { return { html: e.dayNumberText.replace('\u65e5', '') }; },\n\n            eventDataTransform: function(eventData) {\n                if (eventData.title && eventData.title.includes('<\u4e88\u544a>')) {\n                    var start = new Date(eventData.start);\n                    var end = eventData.end ? new Date(eventData.end) : new Date(eventData.start);\n                    start.setDate(start.getDate() - 1);\n                    end.setDate(end.getDate() + 2);\n\n                    return {\n                        ...eventData,\n                        start: start.toISOString(),\n                        end: end.toISOString(),\n                        allDay: true,\n                        className: 'event-yokoku'\n                    };\n                }\n                return eventData;\n            },\n\n            eventDidMount: function(info) {\n                const title = info.event.title;\n                let bgColor = '#6a5a72';\n                \n                if (title.includes('<\u4e88\u544a>')) {\n                    \/\/ event-yokoku\u30af\u30e9\u30b9\u3092\u512a\u5148\n                } else {\n                    if (title.includes('\u30a4\u30d9\u30f3\u30c8')) bgColor = '#d2691e';\n                    else if (title.includes('\u30e1\u30f3\u30c6\u30ca\u30f3\u30b9') || title.includes('\uff92\uff9d\uff83\uff85\uff9d\uff7d')) bgColor = '#888888';\n                    else if (title.includes('\u30ad\u30e3\u30f3\u30da\u30fc\u30f3')) bgColor = '#b8860b';\n                    else if (title.includes('\u53ec\u559a')) bgColor = '#483d8b';\n                    \n                    info.el.style.backgroundColor = bgColor;\n                    info.el.style.color = '#ffffff';\n                }\n\n                const timeStr = formatEventTime(info.event);\n                const fullContent = `<strong>${title}<\/strong><span class=\"popup-time\">${timeStr}<\/span>`;\n                \n                info.el.onmouseenter = (e) => showPopup(e, fullContent);\n                info.el.onmouseleave = () => hidePopup();\n                info.el._fullContent = fullContent;\n            },\n\n            eventClick: function(info) {\n                info.jsEvent.preventDefault();\n                showPopup(info.jsEvent, info.el._fullContent);\n            },\n\n            googleCalendarApiKey: 'AIzaSyCJF5OfysToxGE1p6fFP27kVCT6Gv2_jMo',\n            events: '85050d2e25e21842f72a318c7d22bb1065a5e3a50cb0d46977169bc1afc8d465@group.calendar.google.com'\n        });\n\n        function formatEventTime(event) {\n            const start = event.start;\n            const end = event.end;\n            if (event.allDay) return `${start.getMonth()+1}\/${start.getDate()} \u7d42\u65e5`;\n            const options = { month: 'numeric', day: 'numeric', hour: '2-digit', minute: '2-digit' };\n            const startStr = start.toLocaleString('ja-JP', options);\n            if (!end || start.getTime() === end.getTime()) return startStr;\n            const endStr = end.toLocaleString('ja-JP', { hour: '2-digit', minute: '2-digit' });\n            return `${startStr} \uff5e ${endStr}`;\n        }\n\n        function showPopup(e, html) {\n            if (popupTimer) clearTimeout(popupTimer);\n            popup.innerHTML = html;\n            popup.style.display = 'block';\n            const x = e.clientX || (e.touches ? e.touches[0].clientX : 0);\n            const y = e.clientY || (e.touches ? e.touches[0].clientY : 0);\n            let leftPos = x + 15;\n            if (leftPos + 250 > window.innerWidth) leftPos = x - 260;\n            popup.style.left = Math.max(10, leftPos) + 'px';\n            popup.style.top = (y - 20) + 'px';\n            popupTimer = setTimeout(hidePopup, 5000);\n        }\n\n        function hidePopup() { popup.style.display = 'none'; }\n        document.addEventListener('mousedown', (e) => { if (!e.target.closest('.fc-event')) hidePopup(); });\n        document.addEventListener('touchstart', (e) => { if (!e.target.closest('.fc-event')) hidePopup(); }, {passive: true});\n\n        calendar.render();\n\n        const mc = new Hammer(calendarEl);\n        mc.get('swipe').set({ direction: Hammer.DIRECTION_HORIZONTAL });\n        mc.on(\"swipeleft swiperight\", function(ev) {\n            if (ev.type === \"swipeleft\") calendar.next();\n            else if (ev.type === \"swiperight\") calendar.prev();\n        });\n    });\n<\/script>\n\n<\/body>\n<\/html>\n<\/div>\n<\/div>\n\n\n\n<div class=\"wp-block-columns js--scr-animation is-layout-flex wp-container-core-columns-is-layout-8f761849 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column jinr-display-pc is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:100%\">\n<div class=\"wp-block-group\"><div class=\"wp-block-group__inner-container is-layout-constrained wp-block-group-is-layout-constrained\">\n<script type=\"text\/javascript\">rakuten_design=\"slide\";rakuten_affiliateId=\"20a33fd2.a1d51029.20a33fd3.05f25672\";rakuten_items=\"ctsmatch\";rakuten_genreId=\"0\";rakuten_size=\"600x200\";rakuten_target=\"_blank\";rakuten_theme=\"gray\";rakuten_border=\"off\";rakuten_auto_mode=\"off\";rakuten_genre_title=\"off\";rakuten_recommend=\"on\";rakuten_ts=\"1774022794923\";<\/script><script type=\"text\/javascript\" src=\"https:\/\/xml.affiliate.rakuten.co.jp\/widget\/js\/rakuten_widget.js?20230106\"><\/script>\n<\/div><\/div>\n<\/div>\n<\/div>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Full Grid Calendar &#8211; FAFAFA Background<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_jinr_url_youtube":"","_jinr_pip_youtube":false,"_jinr_time_youtube":"","_jinr_thumb_youtube":"","_jinr_media_youtube":"","_jinr_category_edit":false,"_jinr_category":"","_jinr_title_display":true,"_jinr_snsbutton_display":false,"_jinr_ads_display":false,"_jinr_thumbnail_display":false,"_jinr_profile_display":false,"_jinr_representations_display":false,"_jinr_relatedpost_display":false,"_jinr_sidebar1col_display":false,"_jinr_sidebar2col_display":false,"_jinr_seotitle_display":"","_jinr_description_display":"","_jinr_keyword_display":"","_jinr_hastag_display":"","_jinr_canonical_display":"","_jinr_noindex_display":false,"_jinr_paidpost":false,"_jinr_paidpost_product_id":"","_jinr_headtag_article":"","footnotes":""},"class_list":["post-100","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/www.twistedcalendar.top\/index.php?rest_route=\/wp\/v2\/pages\/100","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.twistedcalendar.top\/index.php?rest_route=\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.twistedcalendar.top\/index.php?rest_route=\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.twistedcalendar.top\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.twistedcalendar.top\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=100"}],"version-history":[{"count":24,"href":"https:\/\/www.twistedcalendar.top\/index.php?rest_route=\/wp\/v2\/pages\/100\/revisions"}],"predecessor-version":[{"id":155,"href":"https:\/\/www.twistedcalendar.top\/index.php?rest_route=\/wp\/v2\/pages\/100\/revisions\/155"}],"wp:attachment":[{"href":"https:\/\/www.twistedcalendar.top\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=100"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}