{"id":11875,"date":"2026-11-05T16:10:08","date_gmt":"2026-11-05T15:10:08","guid":{"rendered":"https:\/\/santamariadelmar.es\/?page_id=11875"},"modified":"2026-11-06T13:30:39","modified_gmt":"2026-11-06T12:30:39","slug":"calendario","status":"publish","type":"page","link":"https:\/\/santamariadelmar.es\/gl\/calendario\/","title":{"rendered":"Calendario"},"content":{"rendered":"\n<style>\n#smm-cal{--blue:#118CB0;--ink:#1f2937;--muted:#6b7280;--line:#e5e7eb;color:var(--ink);max-width:1100px;margin:0 auto;font-family:inherit}\n#smm-cal *{box-sizing:border-box}\n\n\/* Filtros *\/\n#smm-cal .smm-filters{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:0 0 16px}\n#smm-cal .smm-chip{display:inline-flex;align-items:center;gap:8px;padding:8px 14px;border-radius:999px;border:2px solid var(--c);background:#fff;color:var(--ink);font-size:.92rem;font-weight:600;line-height:1;cursor:pointer;transition:all .15s ease}\n#smm-cal .smm-chip .smm-dot{width:12px;height:12px;border-radius:50%;background:var(--c);border:2px solid var(--c);transition:all .15s ease}\n#smm-cal .smm-chip:hover{transform:translateY(-1px);box-shadow:0 4px 10px rgba(0,0,0,.08)}\n#smm-cal .smm-chip.is-off{border-color:var(--line);background:#f3f4f6;color:var(--muted);font-weight:500}\n#smm-cal .smm-chip.is-off .smm-dot{background:transparent;border-color:#c4c8cf}\n#smm-cal .smm-link{background:none;border:0;color:var(--blue);font-size:.88rem;font-weight:600;cursor:pointer;padding:6px 4px;text-decoration:underline;text-underline-offset:3px}\n#smm-cal .smm-sep{flex:1 1 auto}\n\n\/* Calendario *\/\n#smm-cal .smm-frame{border:1px solid var(--line);border-radius:18px;overflow:hidden;background:#fff;box-shadow:0 10px 30px rgba(17,140,176,.10)}\n#smm-cal .smm-frame iframe{display:block;width:100%;height:720px;border:0}\n#smm-cal .smm-empty{padding:60px 20px;text-align:center;color:var(--muted)}\n\n\/* Suscripciones *\/\n#smm-cal .smm-subs{margin-top:44px}\n#smm-cal .smm-subs h3{margin:0 0 6px;font-size:1.4rem}\n#smm-cal .smm-subs p{margin:0 0 20px;color:var(--muted)}\n#smm-cal .smm-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:14px}\n#smm-cal .smm-card{position:relative;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px 16px 16px 22px;border:1px solid var(--line);border-radius:14px;background:#fff;overflow:hidden;transition:box-shadow .15s ease,transform .15s ease}\n#smm-cal .smm-card::before{content:\"\";position:absolute;left:0;top:0;bottom:0;width:6px;background:var(--c)}\n#smm-cal .smm-card:hover{box-shadow:0 8px 20px rgba(0,0,0,.08);transform:translateY(-2px)}\n#smm-cal .smm-name{font-weight:700;font-size:1rem}\n#smm-cal .smm-btns{display:flex;gap:8px}\n#smm-cal .smm-ico{display:inline-flex;align-items:center;justify-content:center;width:42px;height:42px;border-radius:50%;border:1px solid var(--line);background:#fff;transition:all .15s ease}\n#smm-cal .smm-ico:hover{border-color:var(--c);box-shadow:0 0 0 3px color-mix(in srgb,var(--c) 20%,transparent);transform:scale(1.06)}\n#smm-cal .smm-ico svg{width:22px;height:22px;display:block}\n#smm-cal .smm-note{margin-top:16px;font-size:.85rem;color:var(--muted);display:flex;flex-wrap:wrap;gap:18px;align-items:center}\n#smm-cal .smm-note span{display:inline-flex;align-items:center;gap:6px}\n#smm-cal .smm-note svg{width:16px;height:16px}\n\n@media (max-width:600px){\n  #smm-cal .smm-frame iframe{height:560px}\n  #smm-cal .smm-chip{padding:7px 12px;font-size:.85rem}\n}\n<\/style>\n\n<div id=\"smm-cal\">\n  <div class=\"smm-filters\" role=\"group\" aria-label=\"Filtrar calendarios\"><\/div>\n\n  <div class=\"smm-frame\">\n    <iframe title=\"Calendario del colegio\" loading=\"lazy\"><\/iframe>\n    <div class=\"smm-empty\" hidden>Selecciona al menos un calendario para verlo aqu\u00ed.<\/div>\n  <\/div>\n\n  <div class=\"smm-subs\">\n    <h3>Suscr\u00edbete al calendario que te interese<\/h3>\n    <p>A\u00f1\u00e1delo a tu calendario y los eventos se actualizar\u00e1n solos.<\/p>\n    <div class=\"smm-grid\"><\/div>\n    <div class=\"smm-note\"><\/div>\n  <\/div>\n<\/div>\n\n<script>\n(function () {\n  \/* Para a\u00f1adir un calendario nuevo, copia una l\u00ednea y cambia nombre, id y color *\/\n  var CALS = [\n    { n: 'Bachillerato',      c: '#F4511E', id: 'c_776b4a0256083190771fda4e0e301b3938b5262c05426852a62a9aa7e819cd4a@group.calendar.google.com' },\n    { n: 'ESO',               c: '#D50000', id: 'c_63220d4d1da740f08fb26570aa3f162fc2b439ad55f0c5205c473240d3f1b062@group.calendar.google.com' },\n    { n: 'Primaria',          c: '#7CB342', id: 'c_3352d02921afbfddc676de2096d8e4389ad88a426300574901480e69991cb869@group.calendar.google.com' },\n    { n: 'Infantil',          c: '#D81B60', id: 'c_cf6107ff158333d465dea38982aab73e4fd01305e3bcfe49b630a4dbcd8f8b2a@group.calendar.google.com' },\n    { n: 'Pastoral',          c: '#40E0D0', id: 'c_a00ce09906a477adc73968658cc5ff8d09c8c33769590ea800cf9925c8f302b4@group.calendar.google.com' },\n    { n: 'Colegial',          c: '#118CB0', id: 'c_49863c5ac7e9e612d668c33443dff513da37925c6c3eb4004e914c05e96e3102@group.calendar.google.com' },\n    { n: 'Calendario Escolar',c: '#717171', id: 'c_31d8cc4e1ed13680af2a8f19c961628ff41f989df174a20403f4db66d16a884c@group.calendar.google.com' }\n  ];\n\n  var ICON_GOOGLE = '<svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><rect x=\"3\" y=\"4\" width=\"18\" height=\"17\" rx=\"3\" fill=\"#fff\" stroke=\"#4285F4\" stroke-width=\"2\"\/><path d=\"M3 7a3 3 0 0 1 3-3h12a3 3 0 0 1 3 3v2H3z\" fill=\"#4285F4\"\/><path d=\"M12 12.5v6M9 15.5h6\" stroke=\"#34A853\" stroke-width=\"2\" stroke-linecap=\"round\"\/><\/svg>';\n  var ICON_APPLE  = '<svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><path fill=\"#111\" d=\"M12.152 6.896c-.948 0-2.415-1.078-3.96-1.04-2.04.027-3.91 1.183-4.961 3.014-2.117 3.675-.546 9.103 1.519 12.09 1.013 1.454 2.208 3.09 3.792 3.039 1.52-.065 2.09-.987 3.935-.987 1.831 0 2.35.987 3.96.948 1.637-.026 2.676-1.48 3.676-2.948 1.156-1.688 1.636-3.325 1.662-3.415-.039-.013-3.182-1.221-3.22-4.857-.026-3.04 2.48-4.494 2.597-4.559-1.429-2.09-3.623-2.324-4.39-2.376-2-.156-3.675 1.09-4.61 1.09zM15.53 3.83c.843-1.012 1.4-2.427 1.245-3.83-1.207.052-2.662.805-3.532 1.818-.78.896-1.454 2.338-1.273 3.714 1.338.104 2.715-.688 3.559-1.701\"\/><\/svg>';\n\n  var root    = document.getElementById('smm-cal');\n  var frame   = root.querySelector('iframe');\n  var empty   = root.querySelector('.smm-empty');\n  var filters = root.querySelector('.smm-filters');\n  var grid    = root.querySelector('.smm-grid');\n  var note    = root.querySelector('.smm-note');\n  var on = CALS.map(function () { return true; });\n  var chips = [];\n\n  function embedUrl() {\n    var u = 'https:\/\/calendar.google.com\/calendar\/embed?wkst=2&ctz=Europe%2FMadrid&hl=es&mode=MONTH'\n          + '&showTitle=0&showPrint=0&showTz=0&showCalendars=0&showTabs=1&showNav=1';\n    CALS.forEach(function (k, i) {\n      if (on[i]) u += '&src=' + encodeURIComponent(k.id) + '&color=' + encodeURIComponent(k.c);\n    });\n    return u;\n  }\n\n  function render() {\n    var any = on.some(Boolean);\n    frame.style.display = any ? 'block' : 'none';\n    empty.hidden = any;\n    if (any) {\n      var u = embedUrl();\n      if (frame.getAttribute('src') !== u) frame.setAttribute('src', u);\n    }\n    chips.forEach(function (b, i) {\n      b.classList.toggle('is-off', !on[i]);\n      b.setAttribute('aria-pressed', on[i] ? 'true' : 'false');\n    });\n  }\n\n  \/* Filtros *\/\n  CALS.forEach(function (k, i) {\n    var b = document.createElement('button');\n    b.type = 'button';\n    b.className = 'smm-chip';\n    b.style.setProperty('--c', k.c);\n    b.innerHTML = '<span class=\"smm-dot\"><\/span>' + k.n;\n    b.addEventListener('click', function () { on[i] = !on[i]; render(); });\n    filters.appendChild(b);\n    chips.push(b);\n  });\n\n  var sep = document.createElement('span');\n  sep.className = 'smm-sep';\n  filters.appendChild(sep);\n\n  [['Mostrar todos', true], ['Ocultar todos', false]].forEach(function (a) {\n    var l = document.createElement('button');\n    l.type = 'button';\n    l.className = 'smm-link';\n    l.textContent = a[0];\n    l.addEventListener('click', function () { on = CALS.map(function () { return a[1]; }); render(); });\n    filters.appendChild(l);\n  });\n\n  \/* Tarjetas de suscripci\u00f3n *\/\n  CALS.forEach(function (k) {\n    var id = encodeURIComponent(k.id);\n    var gcal = 'https:\/\/calendar.google.com\/calendar\/r?cid=' + id;\n    var ics  = 'webcal:\/\/calendar.google.com\/calendar\/ical\/' + id + '\/public\/basic.ics';\n    var card = document.createElement('div');\n    card.className = 'smm-card';\n    card.style.setProperty('--c', k.c);\n    card.innerHTML =\n      '<span class=\"smm-name\">' + k.n + '<\/span>' +\n      '<span class=\"smm-btns\">' +\n        '<a class=\"smm-ico\" href=\"' + gcal + '\" target=\"_blank\" rel=\"noopener\" title=\"A\u00f1adir a Google Calendar\" aria-label=\"A\u00f1adir ' + k.n + ' a Google Calendar\">' + ICON_GOOGLE + '<\/a>' +\n        '<a class=\"smm-ico\" href=\"' + ics + '\" title=\"A\u00f1adir a Apple Calendar \/ Outlook\" aria-label=\"A\u00f1adir ' + k.n + ' a Apple Calendar u Outlook\">' + ICON_APPLE + '<\/a>' +\n      '<\/span>';\n    grid.appendChild(card);\n  });\n\n  note.innerHTML =\n    '<span>' + ICON_GOOGLE + ' Google Calendar<\/span>' +\n    '<span>' + ICON_APPLE + ' Apple Calendar y otros (Outlook, etc.)<\/span>';\n\n  render();\n})();\n<\/script>\n","protected":false},"excerpt":{"rendered":"<p>Selecciona al menos un calendario para verlo aqu\u00ed. Suscr\u00edbete al calendario que te interese A\u00f1\u00e1delo a tu calendario y los eventos se actualizar\u00e1n solos.<\/p>","protected":false},"author":2,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_EventAllDay":false,"_EventTimezone":"","_EventStartDate":"","_EventEndDate":"","_EventStartDateUTC":"","_EventEndDateUTC":"","_EventShowMap":false,"_EventShowMapLink":false,"_EventURL":"","_EventCost":"","_EventCostDescription":"","_EventCurrencySymbol":"","_EventCurrencyCode":"","_EventCurrencyPosition":"","_EventDateTimeSeparator":"","_EventTimeRangeSeparator":"","_EventOrganizerID":[],"_EventVenueID":[],"_OrganizerEmail":"","_OrganizerPhone":"","_OrganizerWebsite":"","_VenueAddress":"","_VenueCity":"","_VenueCountry":"","_VenueProvince":"","_VenueState":"","_VenueZip":"","_VenuePhone":"","_VenueURL":"","_VenueStateProvince":"","_VenueLat":"","_VenueLng":"","_VenueShowMap":false,"_VenueShowMapLink":false,"footnotes":""},"class_list":["post-11875","page","type-page","status-publish","hentry"],"publishpress_future_action":{"enabled":false,"date":"2026-11-13 17:24:14","action":"change-status","newStatus":"draft","terms":[],"taxonomy":"","extraData":[]},"publishpress_future_workflow_manual_trigger":{"enabledWorkflows":[]},"_links":{"self":[{"href":"https:\/\/santamariadelmar.es\/gl\/wp-json\/wp\/v2\/pages\/11875","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/santamariadelmar.es\/gl\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/santamariadelmar.es\/gl\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/santamariadelmar.es\/gl\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/santamariadelmar.es\/gl\/wp-json\/wp\/v2\/comments?post=11875"}],"version-history":[{"count":4,"href":"https:\/\/santamariadelmar.es\/gl\/wp-json\/wp\/v2\/pages\/11875\/revisions"}],"predecessor-version":[{"id":11880,"href":"https:\/\/santamariadelmar.es\/gl\/wp-json\/wp\/v2\/pages\/11875\/revisions\/11880"}],"wp:attachment":[{"href":"https:\/\/santamariadelmar.es\/gl\/wp-json\/wp\/v2\/media?parent=11875"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}