{"id":3756,"date":"2026-07-08T13:43:48","date_gmt":"2026-07-08T11:43:48","guid":{"rendered":"https:\/\/www.daffyhotels.com\/nos-disponibilites\/"},"modified":"2026-10-28T10:53:09","modified_gmt":"2026-10-28T09:53:09","slug":"our-availability","status":"publish","type":"page","link":"https:\/\/www.daffyhotels.com\/en\/our-availability\/","title":{"rendered":"Our Availability"},"content":{"rendered":"\n<div class=\"wp-block-cover alignfull dispos-top-cover\" style=\"margin-bottom:0px;min-height:115px;aspect-ratio:unset;\"><span aria-hidden=\"true\" class=\"wp-block-cover__background has-theme-black-background-color has-background-dim-100 has-background-dim\"><\/span><div class=\"wp-block-cover__inner-container is-layout-constrained wp-block-cover-is-layout-constrained\">\n<p class=\"has-text-align-center has-large-font-size wp-block-paragraph\"><\/p>\n<\/div><\/div>\n\n\n\n<div class=\"wp-block-group alignfull gradient-separators animation--init--once has-theme-blue-to-pink-gradient-background has-background is-layout-constrained wp-container-core-group-is-layout-7f9aea06 wp-block-group-is-layout-constrained\" style=\"margin-top:0px;margin-bottom:0px;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px\"><\/div>\n\n\n\n<div class=\"wp-block-group alignwide results-page is-layout-constrained wp-block-group-is-layout-constrained\"><div id=\"wtd_content_grille\">Grille<\/div>\n<script src=\"https:\/\/septeohospitality.com\/widgets\/grille_resalys_chambres\/grille_resalys_chambres_prod.1.1.1.js\"> \n\n<\/script>\n<script>\n    const roomCodes = [];\n    const roomsConfig = [];\n    const orderPrix = 0;\n    const orderPrixDefault = 0;\n    const filtersConfig = {\"active\":0};\n\n    if (roomCodes.length == 0) {\n        const targetElement = document.getElementById('wtd_content_grille');\n        if (targetElement) {\n            const elementPosition = targetElement.offsetTop;\n            const offsetPosition = elementPosition;\n            window.scrollTo({\n                top: offsetPosition,\n                behavior: 'smooth'\n            });\n        }\n    }\n    \n    const rawDisabledRanges = JSON.parse(document.body.getAttribute('data-disabled-dates') || '[]');\n    function ddmmyyyyToISO(ddmmyyyy) {\n        if (!ddmmyyyy) return null;\n        const [d, m, y] = ddmmyyyy.split('\/');\n        if (!d || !m || !y) return null;\n        return `${y}-${m.padStart(2,'0')}-${d.padStart(2,'0')}`;\n    }\n    const normalizedDisabledDates = rawDisabledRanges\n        .filter(r => r && r.start && r.end)\n        .map(r => [ddmmyyyyToISO(r.start), ddmmyyyyToISO(r.end)])\n        .filter(pair => pair[0] && pair[1]);\n\n    grille_resalys_chambres.loadForm({\n        id: 'wtd_content_grille', \/\/required\n        lang: \"en\",\n        idProperties: 202, \/\/required 27 olela  \/\/956 chateau candie\n        img_default: 'https:\/\/www.daffyhotels.com\/wp-content\/uploads\/2026\/06\/galerie-photo-chambre-2.webp',\n        roomCodes: roomCodes, \/\/optional, si esta vacio o no existe traemos todos los alojamientos ['COM6','TPL', 'CDC']\n        \/\/ duration: 7,\n        \/\/ arrivalDay: 1,\n        brandColor1: '#e22886',\n        brandColor2: '#001758',\n        brandColor3: '#00f',\n        brandColor4: '#66749B',\n        personnes: 2,\n        chambres: 0, \/\/ 0 = no mostrar chambres, 1 = mostrar chambres\n        chambres_exactas: 1, \/\/ 0 =  mostrar chambres igual o superior a la b\u00fasqueda, 1 = mostrar chambres exactas\n        enfants_active: 1, \/\/ 0 = no mostrar enfants, 1 = mostrar enfants\n        enfants: 0,\n        enfants_ages: [],\n        maxAgesEnfants : 11,\n        daterangepicker: {  \/\/optional\n            rangeDays: 1,\n            defaultDateSelected: true,\n            maxRangeDays: 21,\n            startDate: '2026-05-01', \/\/requiered, provisional\n            endDate: '2026-05-03', \/\/requiered, provisional\n            minDate: '2026-05-01',\n            maxDate: '2050-12-31',\n            availabilityFlux : 'https:\/\/www.daffyhotels.com\/wp-content\/themes\/blankv6\/inc\/cronflux\/assets\/flux_resalys.xml', \/\/opcional, url del flux de disponibilidades para mostrar solo las fechas disponibles, si no se indica o no es correcto mostramos todas las fechas sin tener en cuenta disponibilidades\n            tooltipNights: true,\n            \/*\n            disabledDates: [ \/\/opcional, si queremos desactivar rangos de fechas o fechas sueltas\n                ['2025-11-03', '2025-12-18'],\n                ['2026-01-01', '2026-04-30']\n            ],\n            *\/\n            disabledDates: normalizedDisabledDates,\n            formatDateOutput: 0, \/\/opcional, 1 = DD\/MM\/YYYY formato de salida de las fechas, por defecto => 4 Abril 2025 \n        },\n        graphql: {\n            url: 'https:\/\/mmv.resalys.com\/rsl\/graphql ',\n            \/\/url: 'https:\/\/eurogroup.resalys.com\/rsl\/graphql',\n            \/\/ url :'https:\/\/olela.resalys.com\/rsl\/graphql', \/\/'https:\/\/eurogroup.resalys.com\/rsl\/graphql',\n            username: \"web_daf_eng\", \/\/chateaudecandie \/\/chateaudecandie_en => cargaremos informacion de resalys en franc\u00e9s o ingl\u00e9s\n            \/\/ urlReservation: 'https:\/\/chateaudecandie.com\/reservation?originUrl=https:\/\/www.chateaudecandie.com&proposal_key=', \/\/https:\/\/reservation.esperanza-noirmoutier.com\/rsl\/clickbooking?base_id=olela&webuser=web_esp&tokens=ignore_token&display=reservation_content&actions=cancelReservation%3BchooseProposalFromKey&proposal_key=\n            \/\/ urlReservation: 'https:\/\/eurogroup.resalys.com\/rsl\/clickbooking?webuser=chateaudecandie&tokens=ignore_token&display=reservation_content&actions=cancelReservation%3BchooseProposalFromKey&proposal_key=', \/\/https:\/\/reservation.esperanza-noirmoutier.com\/rsl\/clickbooking?base_id=olela&webuser=web_esp&tokens=ignore_token&display=reservation_content&actions=cancelReservation%3BchooseProposalFromKey&proposal_key=\n            \/\/ urlReservation: 'https:\/\/olela.resalys.com\/rsl\/clickbooking?webuser=web_esp&tokens=ignore_token&display=reservation_content&actions=cancelReservation%3BchooseProposalFromKey&proposal_key=', \/\/https:\/\/reservation.esperanza-noirmoutier.com\/rsl\/clickbooking?base_id=olela&webuser=web_esp&tokens=ignore_token&display=reservation_content&actions=cancelReservation%3BchooseProposalFromKey&proposal_key=\n            urlReservation: ('en' === 'en') \n                ? 'https:\/\/www.daffyhotels.com\/en\/reservation?originUrl=https:\/\/www.daffyhotels.com\/en&webuser=web_daf_eng&proposal_key='\n               : 'https:\/\/www.daffyhotels.com\/reservation?originUrl=https:\/\/www.daffyhotels.com&webuser=web_daf_eng&proposal_key='\n\n        },\n        orderPrix: orderPrix, \/\/ 0 = no mostrar ordenar por precio, 1 = mostrar ordenar por precio\n        orderPrixDefault: orderPrixDefault, \/\/ 0 = default order, 1 = ascending, 2 = descending\n        \/*\n        filtersConfig: {\n            active: 0, \/\/ 0 = no mostrar filtros, 1 = mostrar filtros\n        },\n        *\/\n        filtersConfig: filtersConfig,\n        disposConfig: {\n            img_dispo: 0, \/\/ 0 = no mostrar imagen disponibilidad, 1 = mostrar imagen disponibilidad\n            formula_dispo: 1, \/\/ 0 = no mostrar formula disponibilidad, 1 = mostrar formula disponibilidad\n            formula_dispo_modal: {\n                active: 1, \/\/ 0 = no mostrar formula disponibilidad modal, 1 = mostrar formula disponibilidad modal\n            },\n            tarif_membre: 0, \/\/ 0 = no mostrar tarifa miembro, 1 = mostrar tarifa miembro que calculamos segun configuarcion posterior\n            discount: {\n                type: 'percent', \/\/percent, amount\n                value: 20\n            },\n            results_sans_dispos: 1, \/\/ 0 = no mostrar resultats sense disponibilitat, 1 = mostrar resultats sense disponibilitat\n            noCounterProposal: true, \/\/ false = mostrar contraofertas configuradas en resalys, true = NO mostrar contraofertas\n            rounding: {\n                active: 0, \/\/ 0 = no redondear, 1 = redondear\n                type: 'ceil', \/\/ ceil = redondear hacia arriba, floor = redondear hacia abajo, round = redondear al mas cercano\n            },\n            \/* \n            A partir de 1.0.6\n            open_close_plus_dispos esta activo, mostraremos solamente el m\u00e1ximo de disponibilidades inidcadas en qtDisposVisibles, \n            el resto de disponibilidades se mostraran al pulsar el boton ver \/ ocultar las otras disponibilidades,\n            si no esta activo mostraremos todas las disponibilidades \n            *\/\n            open_close_plus_dispos :{\n                active: 1, \/\/ 0 = no mostrar open close plus dispos, 1 = mostrar open close plus dispos\n                qtDisposVisibles: 3, \/\/ A partir de cuantas disposn mostraremos el ver las otras disponibilidades\n            },\n            urlAccommodationWithdates : 1 \/\/ Campo ocional, si es 1 el enlace a los detallles de la room le pasaremos las fechas de la b\u00fasqueda, si es 0 no le pasaremos las fechas de la b\u00fasqueda por get EJ: url + &sqs_date_range_begin=2026-08-19&sqs_date_range_end=2026-08-20\n        },\n        \/* \n        roomsConfig: {\n           'CC': {\n                \/\/   'label': 'Titulo personalizado alojamiento',\n               'description': 'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut',\n               'img': [\n                    'https:\/\/www.camping-apv.com\/images\/establishments\/les-marsouins\/equipements\/camping-les-marsouins-mobil-home.webp',\n                    'https:\/\/www.camping-apv.com\/images\/establishments\/les-marsouins\/equipements\/camping-les-marsouins-mobil-home.webp',\n                    'https:\/\/www.camping-apv.com\/images\/establishments\/les-marsouins\/equipements\/camping-les-marsouins-mobil-home.webp'\n                ],\n                'url': 'https:\/\/www.google.com',\n           },\n           'CDC': {\n                \/\/'label': 'Titulo personalizado alojamiento 2',\n                'description': 'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut',\n                'img': [\n                    'https:\/\/www.camping-apv.com\/images\/establishments\/les-marsouins\/equipements\/camping-les-marsouins-mobil-home.webp',\n                    'https:\/\/www.camping-apv.com\/images\/establishments\/les-marsouins\/equipements\/camping-les-marsouins-mobil-home.webp'\n                ],\n                'url': 'https:\/\/www.google.com',\n           },\n        *\/\n        resumSearchConfig: {\n            qtresults: 1, \/\/ 0 = no mostrar chambres, 1 = mostrar chambres\n            dates: 0, \/\/ 0 = no mostrar dates, 1 = mostrar dates\n            personnes: 0, \/\/ 0 = no mostrar personnes, 1 = mostrar personnes\n            numchambres: 0, \/\/ 0 = no mostrar enfants, 1 = mostrar enfants\n        },\n        roomsConfig: roomsConfig,\n        \/\/ COUNTERPROPOSALS => A partir de la version 1.0.8\n        counterproposals: {\n            active: 1,  \/\/ Mostrar contraofertas en pagina de habitacion si no hay disponibilidad. Otras chambres mismas fechas\n            ancla: '#reserver-location', \/\/ ancla para ir al formulario de reserva en la p\u00e1gina de la chambre\n        },\n        splide: {\n            splide_dispos: 0, \/\/ 0 = no mostrar splide disponibilidad, 1 = mostrar splide disponibilidad\n            splide_dispos_width: 800,\n        },\n        strings: {\n            'fr': {\n                search_rates: 'Voir les tarifs',\n                nb_persons: 'Voyageurs',\n                dates_reservation: 'Arriv\u00e9e \u2014 D\u00e9part',\n                other_stays: '<strong>Il n\\'y a pas de disponibilit\u00e9 \u00e0 ces dates. <br\/>Ce s\u00e9jour peut vous int\u00e9resser<\/strong>',\n                voir_autres_disponibilites: 'Voir les autres tarifs',\n                masquer_disponibilites: 'Masquer les tarifs',\n                without_results: 'Le type de chambre demand\u00e9 n\\'est pas disponible \u00e0 ces dates.',\n                jours: 'nuits',\n                jour: 'nuit',\n                adults_info: '(12 ans et +)',\n                children_info: '(- 11 ans)',\n                children: 'Enfants',\n\n            } ,\n            'en': {\n                other_stays: '<strong>There is no availability on those dates. <br\/>This stay may interest you<\/strong>',\n                voir_autres_disponibilites: 'See other rates',\n                masquer_disponibilites: 'Hide other rates',\n                without_results: 'The requested room type is not available on those dates.',\n                jours: 'nuits',\n                jour: 'nuit',\n                adults_info: '(12 years and +)',\n                children_info: '(- 11 years)',\n                children: 'Kids',\n            } \n        },\n        loading: 1, \/\/ 0 = no mostrar loading, 1 = mostrar loading\n        modal_active: 0, \/\/ 0 = no mostrar modal, 1 = mostrar modal\n        debug: 0\n    });\n<\/script>\n\n<!-- este codigo es para qye al hacer click fuera del formulario se cierre el desplegable de personas \n deberemos quitarlo cuando lo a\u00b4\u00f1adamos al widget en la proxima version. -->\n<script>\ndocument.addEventListener('DOMContentLoaded', () => {\n    \/\/ Puede haber varios .wtd-personnes-div\n    const wtd_personnesDivs = [...document.querySelectorAll('.wtd-personnes-div')];\n    const wtd_personnesContainer = document.querySelector('.wtd-personnes-container');\n    const wtd_personnesContent = document.getElementById('wtd-personnes-content');\n\n    document.addEventListener('click', (event) => {\n        const clickEnDiv = wtd_personnesDivs.some(div => div.contains(event.target));\n        const clickEnContainer  = wtd_personnesContainer?.contains(event.target);\n        const clickEnContent = wtd_personnesContent?.contains(event.target);\n\n        if (!clickEnDiv && !clickEnContainer && !clickEnContent) {\n            wtd_personnesDivs.forEach(div => div.classList.add('wtd-display-none'));\n        }\n    });\n});\n<\/script><\/div>\n\n\n<p><!-- daffy-rate-label-normalizer:v1 --><br \/>\n<script id=\"daffy-rate-label-normalizer\"><br \/>\n(() => {<br \/>\n    const labels = {<br \/>\n        LTTNR: 'Tarif non remboursable non modifiable',<br \/>\n        LTT: 'Tarif annulable et modifiable'<br \/>\n    };<\/p>\n<p>    const normalizeRateLabels = () => {<br \/>\n        const root = document.getElementById('wtd_content_grille');<br \/>\n        if (!root) return;<br \/>\n        root.querySelectorAll('.wtd_content_dispo_content p').forEach((paragraph) => {<br \/>\n            const card = paragraph.closest('.wtd_content_dispo');<br \/>\n            const formula = card?.querySelector('[data-formula]')?.dataset.formula || '';<br \/>\n            const replacement = labels[formula];<br \/>\n            if (!replacement) return;<br \/>\n            const textNode = [...paragraph.childNodes].find(<br \/>\n                (node) => node.nodeType === Node.TEXT_NODE && node.nodeValue.trim()<br \/>\n            );<br \/>\n            if (textNode && textNode.nodeValue.trim() !== replacement) {<br \/>\n                textNode.nodeValue = replacement;<br \/>\n            }<br \/>\n        });<br \/>\n    };<\/p>\n<p>    const start = () => {<br \/>\n        const root = document.getElementById('wtd_content_grille');<br \/>\n        if (!root) return;<br \/>\n        normalizeRateLabels();<br \/>\n        new MutationObserver(normalizeRateLabels).observe(root, {<br \/>\n            childList: true,<br \/>\n            subtree: true<br \/>\n        });<br \/>\n    };<\/p>\n<p>    if (document.readyState === 'loading') {<br \/>\n        document.addEventListener('DOMContentLoaded', start, { once: true });<br \/>\n    } else {<br \/>\n        start();<br \/>\n    }<br \/>\n})();<br \/>\n<\/script><br \/>\n<!-- \/daffy-rate-label-normalizer:v1 --><\/p>\n\n\n<!-- daffy-compact-results:v6 -->\n<style id=\"daffy-generic-compact-results-v6-styles\">\n#wtd_content_grille .dc-results{--dc-navy:#001758;--dc-blue:#0000ff;--dc-pink:#e22886;--dc-line:#dfe2eb;--dc-muted:#66749b;color:var(--dc-navy);margin-top:24px}\n#wtd_content_grille .dc-heading{display:flex;align-items:end;justify-content:space-between;gap:20px;margin:24px 0 14px}\n#wtd_content_grille .dc-heading-eyebrow{display:block;color:var(--dc-blue);font-size:12px;font-weight:700;letter-spacing:.08em;text-transform:uppercase}\n#wtd_content_grille .dc-heading h2{margin:5px 0 0;font-size:clamp(26px,3vw,34px);line-height:1;text-transform:uppercase}\n#wtd_content_grille .dc-heading p{max-width:520px;margin:0;color:var(--dc-muted);font-size:13px;text-align:right}\n#wtd_content_grille .dc-list{display:flex;flex-direction:column;gap:18px}\n#wtd_content_grille .dc-card{display:grid;grid-template-columns:minmax(210px,250px) minmax(280px,1fr) minmax(190px,220px) minmax(190px,220px);background:#fff;border:1px solid var(--dc-line);border-radius:2px;box-shadow:0 5px 16px rgba(0,23,88,.04);overflow:hidden}\n#wtd_content_grille .dc-visual{position:relative;min-height:220px;background:#eef0f5}\n#wtd_content_grille .dc-visual img{display:block;width:100%;height:100%;object-fit:cover}\n#wtd_content_grille .dc-visual-grid{display:grid;grid-template-columns:1fr 1fr}\n#wtd_content_grille .dc-visual-grid img{min-width:0}\n#wtd_content_grille .dc-badge{position:absolute;top:12px;left:12px;padding:6px 9px;background:var(--dc-pink);color:#fff;font-size:11px;font-weight:700;text-transform:uppercase}\n#wtd_content_grille .dc-info{padding:22px;border-right:1px solid var(--dc-line)}\n#wtd_content_grille .dc-kind{color:var(--dc-pink);font-size:12px;font-weight:700;letter-spacing:.07em;text-transform:uppercase}\n#wtd_content_grille .dc-info h3{margin:6px 0 12px;font-size:25px;line-height:1.05;text-transform:uppercase}\n#wtd_content_grille .dc-specs ul{display:flex;flex-wrap:wrap;gap:7px;margin:0;padding:0;list-style:none}\n#wtd_content_grille .dc-specs li{padding:6px 8px;background:#f4f4f7;color:var(--dc-navy);font-size:11px}\n#wtd_content_grille .dc-detail{display:inline-block;margin-top:16px;color:var(--dc-blue);font-size:13px;font-weight:700;text-decoration:underline;text-underline-offset:3px}\n#wtd_content_grille details.dc-details{margin-top:14px}\n#wtd_content_grille details.dc-details summary{color:var(--dc-blue);font-size:13px;font-weight:700;text-decoration:underline;text-underline-offset:3px;cursor:pointer}\n#wtd_content_grille .dc-room-links{display:flex;flex-direction:column;gap:5px;margin-top:9px}\n#wtd_content_grille .dc-room-links a{color:var(--dc-navy);font-size:12px}\n#wtd_content_grille .dc-room-detail-list{display:flex;flex-direction:column;gap:9px;margin-top:12px}\n#wtd_content_grille .dc-room-detail-card{display:grid;grid-template-columns:78px 1fr;min-height:92px;background:#f7f7fa;border:1px solid var(--dc-line);overflow:hidden}\n#wtd_content_grille .dc-room-detail-card img{display:block;width:78px;height:100%;min-height:92px;object-fit:cover}\n#wtd_content_grille .dc-room-detail-copy{padding:10px 11px}\n#wtd_content_grille .dc-room-detail-kind{display:block;color:var(--dc-pink);font-size:9px;font-weight:800;letter-spacing:.06em;text-transform:uppercase}\n#wtd_content_grille .dc-room-detail-card h4{margin:4px 0 7px;font-size:14px;line-height:1.1;text-transform:uppercase}\n#wtd_content_grille .dc-room-detail-specs ul{display:flex;flex-wrap:wrap;gap:4px;margin:0;padding:0;list-style:none}\n#wtd_content_grille .dc-room-detail-specs li{padding:4px 6px;background:#fff;color:var(--dc-navy);font-size:9px;line-height:1.25}\n#wtd_content_grille .dc-room-detail-capacity{margin:0;color:var(--dc-muted);font-size:10px}\n#wtd_content_grille .dc-room-detail-link{display:inline-block;margin-top:8px;color:var(--dc-blue)!important;font-size:10px;font-weight:800;text-decoration:underline;text-underline-offset:2px}\n#wtd_content_grille .dc-room-text-list{display:flex;flex-direction:column;gap:7px;margin-top:10px}\n#wtd_content_grille .dc-room-text-line{margin:0;padding:8px 10px;background:#f7f7fa;border-left:3px solid var(--dc-blue);color:var(--dc-navy);font-size:11px;line-height:1.45}\n#wtd_content_grille .dc-room-text-line strong{font-weight:800}\n#wtd_content_grille .dc-meta{margin-top:12px;color:var(--dc-muted);font-size:12px;line-height:1.5}\n#wtd_content_grille .dc-rate{display:flex;flex-direction:column;justify-content:space-between;gap:10px;padding:20px 18px;text-align:center}\n#wtd_content_grille .dc-rate+.dc-rate{border-left:1px solid var(--dc-line)}\n#wtd_content_grille .dc-rate h4{margin:0;font-size:18px;text-transform:uppercase}\n#wtd_content_grille .dc-rate-label{min-height:34px;margin:0;color:var(--dc-muted);font-size:11px;line-height:1.45}\n#wtd_content_grille .dc-old{min-height:17px;color:#9298aa;font-size:12px;text-decoration:line-through}\n#wtd_content_grille .dc-price{color:var(--dc-navy);font-size:25px;font-weight:800;line-height:1}\n#wtd_content_grille .dc-total{margin-top:5px;color:var(--dc-muted);font-size:10px}\n#wtd_content_grille .dc-book{display:block;width:100%;min-height:44px;padding:12px 10px;background:var(--dc-blue);color:#fff!important;font-size:12px;font-weight:800;text-align:center;text-decoration:none;text-transform:uppercase}\n#wtd_content_grille .dc-rate-flex .dc-book{background:var(--dc-navy)}\n#wtd_content_grille .dc-unavailable{display:flex;min-height:44px;align-items:center;justify-content:center;background:#eef0f5;color:var(--dc-muted);font-size:12px;font-weight:700}\n#wtd_content_grille .dc-separator{display:flex;align-items:center;gap:14px;margin:30px 0 12px;color:var(--dc-muted);font-size:12px;font-weight:700;text-transform:uppercase}\n#wtd_content_grille .dc-separator:before,#wtd_content_grille .dc-separator:after{content:\"\";height:1px;flex:1;background:var(--dc-line)}\n@media(max-width:980px){#wtd_content_grille .dc-card{grid-template-columns:210px minmax(240px,1fr) 180px 180px}}\n@media(max-width:760px){#wtd_content_grille .dc-heading{display:block}#wtd_content_grille .dc-heading p{margin-top:8px;text-align:left}#wtd_content_grille .dc-card{display:block}#wtd_content_grille .dc-visual{height:160px;min-height:0}#wtd_content_grille .dc-info{padding:16px;border-right:0;border-bottom:1px solid var(--dc-line)}#wtd_content_grille .dc-info h3{font-size:23px}#wtd_content_grille .dc-rate{display:grid;grid-template-columns:1fr auto;grid-template-areas:\"title price\" \"label price\" \"book book\";gap:3px 10px;padding:14px 16px;text-align:left}#wtd_content_grille .dc-rate+.dc-rate{border-top:1px solid var(--dc-line);border-left:0}#wtd_content_grille .dc-rate h4{grid-area:title}#wtd_content_grille .dc-rate-label{grid-area:label;min-height:0}#wtd_content_grille .dc-pricing{grid-area:price;text-align:right}#wtd_content_grille .dc-book,#wtd_content_grille .dc-unavailable{grid-area:book;margin-top:8px;text-align:center}#wtd_content_grille .dc-old{min-height:0}#wtd_content_grille .dc-price{font-size:23px}}\n<\/style>\n<script id=\"daffy-generic-compact-results-v6-script\">\n(() => {\n    const FORMULAS = { LTTNR: 'No Flex', LTT: 'Flex' };\n    const ROOM_INFO = {\n        C2:{url:'\/en\/sleep\/double-room\/',features:['17-20 m\u00b2','Double bed (can be split into 2 single beds)','Shower room \/ bathroom','WC']},\n        C4:{url:'\/en\/sleep\/4-person-room\/',features:['21 m\u00b2','1 double bed + bunk beds','Shower room \/ bathroom','WC']},\n        C4H:{url:'\/en\/sleep\/room-for-4-people-people-pwd\/',features:['34 m\u00b2','1 double bed + sofa bed','Shower room \/ bathroom','WC']},\n        C4M:{url:'\/en\/sleep\/attic-room-for-4-people\/',features:['24 m\u00b2','1 double bed + sofa bed','Shower room \/ bathroom','WC']},\n        '2P4':{url:'\/en\/sleep\/2-room-apartment-for-4-people\/',features:['33-35 m\u00b2','1 double bed + sofa bed','Shower room \/ bathroom','WC']},\n        '2P4H':{url:'\/en\/sleep\/2-room-apartment-for-4-people-accessible-for-people-with-disabilities\/',features:['33 m\u00b2','1 double bed + sofa bed','Shower room \/ bathroom','WC']},\n        '2P6':{url:'\/en\/sleep\/2-room-apartment-for-6-people\/',features:['42 m\u00b2','Double bed + sofa bed + bunk beds','Shower room \/ bathroom','WC']}\n    };\n    const EN_LABELS = {\n        C2:'Room for 2 people', C2C:'Connecting room for 2 people', C4:'Room for 4 people', C4H:'Accessible room for 4 people',\n        C4M:'Attic room for 4 people', '2P4':'2-room apartment for 4 people', '2P4H':'Accessible 2-room apartment for 4 people',\n        '2P6':'2-room apartment for 6 people'\n    };\n    const enLabel = (item) => item ? (EN_LABELS[item.code] || item.label) : '';\n    const enCat = (item) => item ? (({CHB:'Room', APT:'Apartment'})[item.categoryCode] || item.categoryLabel) : '';\n    const fixSearchButton = () => {\n        const btn = document.getElementById('wtd-button-search');\n        if (btn && \/ by date$\/i.test(btn.value)) btn.value = btn.value.replace(\/ by date$\/i, '');\n    };\n    const rootId = 'wtd_content_grille';\n    let queued = false;\n\n    const esc = (value = '') => String(value).replace(\/[&<>'\"]\/g, (char) => ({'&':'&amp;','<':'&lt;','>':'&gt;',\"'\":'&#39;','\"':'&quot;'}[char]));\n    const normalizeCurrency = (currency = 'EUR') => ({'\u20ac':'EUR','$':'USD','\u00a3':'GBP'}[currency] || currency || 'EUR');\n    const money = (amount, currency = 'EUR') => new Intl.NumberFormat('en-GB', { style: 'currency', currency: normalizeCurrency(currency), maximumFractionDigits: 2 }).format(Number(amount));\n    const quantity = (roomType) => Math.max(1, Number(roomType.quantity) || 1);\n    const roomCount = (proposal) => (proposal.distribution?.roomTypes || []).reduce((sum, roomType) => sum + quantity(roomType), 0);\n    const compositionKey = (proposal) => (proposal.distribution?.roomTypes || [])\n        .map((roomType) => `${roomType.code}:${quantity(roomType)}`)\n        .sort()\n        .join('|');\n    const roomMap = () => new Map((window.rooms || []).map((room) => [room.code, room]));\n    const currentGuests = () => Number(window.WTD_OBJECT_SEARCH?.wtd_personnes || 0) + Number(window.WTD_OBJECT_SEARCH?.wtd_enfants || 0);\n    const exactStay = (proposal) => [proposal.startDate === window.WTD_OBJECT_SEARCH?.wtd_date_range_begin, proposal.endDate === window.WTD_OBJECT_SEARCH?.wtd_date_range_end].every(Boolean);\n    const isRoom = (roomType) => roomType.categoryCode === 'CHB' || \/^chambre\b\/i.test(roomType.categoryLabel || roomType.label || '');\n    const isApartment = (roomType) => roomType.categoryCode === 'APT' || \/^appartement\b\/i.test(roomType.categoryLabel || roomType.label || '');\n    const isAccessible = (roomType) => \/\bPMR\b\/i.test(roomType.label || '') || \/H$\/.test(roomType.code || '');\n    const capacity = (proposal) => (proposal.distribution?.roomTypes || []).reduce((sum, roomType) => sum + (Number(roomType.paxMax) || Number(roomType.pax) || 0) * quantity(roomType), 0);\n    const ratePrice = (group) => Number((group.rates.LTTNR || group.rates.LTT)?.price?.amount || Infinity);\n\n    const groupProposals = () => {\n        const groups = new Map();\n        (window.dispos || []).filter(exactStay).forEach((proposal) => {\n            const formula = proposal.product?.code;\n            if (!FORMULAS[formula]) return;\n            const key = compositionKey(proposal);\n            if (!key) return;\n            if (!groups.has(key)) groups.set(key, { key, roomTypes: proposal.distribution.roomTypes, rates: {} });\n            const current = groups.get(key).rates[formula];\n            if (!current || Number(proposal.price.amount) < Number(current.price.amount)) groups.get(key).rates[formula] = proposal;\n        });\n        return [...groups.values()];\n    };\n\n    const detailUrl = (room) => {\n        if (!room?.url) return '';\n        const url = new URL(room.url, window.location.origin);\n        const search = window.WTD_OBJECT_SEARCH || {};\n        url.searchParams.set('sqs_date_range_begin', search.wtd_date_range_begin || '');\n        url.searchParams.set('sqs_date_range_end', search.wtd_date_range_end || '');\n        url.searchParams.set('sqs_personnes', search.wtd_personnes || '');\n        url.searchParams.set('sqs_enfants', search.wtd_enfants || '');\n        (Array.isArray(search.wtd_enfants_ages) ? search.wtd_enfants_ages : []).forEach((age) => url.searchParams.append('age_enfant', age));\n        return url.href;\n    };\n\n    const bookingUrl = (proposal) => proposal ? `${window.WTD_CONFIG.urlReservation}${proposal.proposalKey}&session=${window.session}` : '';\n    const imageFor = (room) => Array.isArray(room?.img) ? room.img[0] : room?.img;\n    const oldPrice = (proposal) => {\n        if (!proposal || Number(proposal.priceWithoutDiscount?.amount) === Number(proposal.price?.amount)) return '';\n        return money(proposal.priceWithoutDiscount.amount, proposal.priceWithoutDiscount.currencyCode || proposal.price.currencyCode);\n    };\n\n    const rate = (group, formula) => {\n        const proposal = group.rates[formula];\n        const flex = formula === 'LTT';\n        if (!proposal) return `<section class=\"dc-rate ${flex ? 'dc-rate-flex' : ''}\"><h4>${FORMULAS[formula]}<\/h4><p class=\"dc-rate-label\">${flex ? 'Cancellable and changeable' : 'Non-cancellable and non-changeable'}<\/p><div class=\"dc-pricing\"><\/div><span class=\"dc-unavailable\">Rate unavailable<\/span><\/section>`;\n        return `<section class=\"dc-rate ${flex ? 'dc-rate-flex' : ''}\">\n            <h4>${FORMULAS[formula]}<\/h4>\n            <p class=\"dc-rate-label\">${flex ? 'Cancellable and changeable, subject to conditions' : 'Non-cancellable and non-changeable'}<\/p>\n            <div class=\"dc-pricing\"><div class=\"dc-old\">${esc(oldPrice(proposal))}<\/div><div class=\"dc-price\">${esc(money(proposal.price.amount, proposal.price.currencyCode))}<\/div><div class=\"dc-total\">Total stay \u00b7 ${esc(proposal.nbDays)} night${Number(proposal.nbDays) > 1 ? 's' : ''}<\/div><\/div>\n            <a class=\"dc-book\" href=\"${esc(bookingUrl(proposal))}\">Book ${FORMULAS[formula]}<\/a>\n        <\/section>`;\n    };\n\n    const roomDetails = (room) => room?.description || '';\n    const fallbackDetails = (code) => {\n        const features = ROOM_INFO[code]?.features || [];\n        return features.length ? `<ul>${features.map((feature) => `<li><span>${esc(feature)}<\/span><\/li>`).join('')}<\/ul>` : '';\n    };\n    const enrichedRoom = (type, room) => ({...(room || type), url:room?.url || ROOM_INFO[type.code]?.url || ''});\n    const unitCard = (group, roomsByCode) => {\n        const type = group.roomTypes[0];\n        const room = enrichedRoom(type, roomsByCode.get(type.code) || type);\n        const image = imageFor(room) || window.WTD_IMG_DEFAULT || '';\n        const link = detailUrl(room);\n        const details = roomDetails(room) || fallbackDetails(type.code);\n        return `<article class=\"dc-card dc-unit-card\">\n            <div class=\"dc-visual\"><img decoding=\"async\" src=\"${esc(image)}\" alt=\"${esc(enLabel(room) || enLabel(type))}\" loading=\"lazy\"><\/div>\n            <div class=\"dc-info\"><span class=\"dc-kind\">${esc(enCat(room) || enCat(type) || '')}<\/span><h3>${esc(enLabel(room) || enLabel(type))}<\/h3><div class=\"dc-specs\">${details}<\/div>${link ? `<a class=\"dc-detail\" href=\"${esc(link)}\">View accommodation<\/a>` : ''}<\/div>\n            ${rate(group, 'LTTNR')}${rate(group, 'LTT')}\n        <\/article>`;\n    };\n\n    const comboCard = (group, roomsByCode, kind) => {\n        const expandedRooms = group.roomTypes.flatMap((type) => Array.from({length: quantity(type)}, () => ({type, room: roomsByCode.get(type.code) || type})));\n        const images = expandedRooms.slice(0, 2).map(({type, room}) => `<img decoding=\"async\" src=\"${esc(imageFor(room) || window.WTD_IMG_DEFAULT || '')}\" alt=\"${esc(enLabel(room) || enLabel(type))}\" loading=\"lazy\">`).join('');\n        const title = group.roomTypes.map((type) => `${quantity(type)} \u00d7 ${enLabel(type)}`).join(' + ');\n        const detailLines = expandedRooms.map(({type, room}, index) => {\n            const info = ROOM_INFO[type.code] || {};\n            const features = info.features || [];\n            const label = enLabel(room) || enLabel(type);\n            const unitLabel = kind === 'apartment' ? 'Apartment' : 'Room';\n            const surface = features[0] || 'Floor area not specified';\n            const bedding = features[1] || 'Bedding not specified';\n            return `<p class=\"dc-room-text-line\"><strong>${unitLabel} ${index + 1} \u00b7 ${esc(label)}<\/strong><br>${esc(surface)} \u00b7 ${esc(bedding)}<\/p>`;\n        }).join('');\n        const proposal = group.rates.LTTNR || group.rates.LTT;\n        const count = roomCount(proposal);\n        const spare = Math.max(0, capacity(proposal) - currentGuests());\n        const singular = kind === 'apartment' ? 'apartment' : 'room';\n        const plural = kind === 'apartment' ? 'apartments' : 'rooms';\n        return `<article class=\"dc-card dc-combo-card dc-${kind}-combo-card\">\n            <div class=\"dc-visual dc-visual-grid\">${images}<span class=\"dc-badge\">${count} ${plural}<\/span><\/div>\n            <div class=\"dc-info\"><span class=\"dc-kind\">${kind === 'apartment' ? 'Apartment' : 'Room'} combination<\/span><h3>${esc(title)}<\/h3><div class=\"dc-meta\">Suggested split: ${esc(currentGuests())} guest${currentGuests() > 1 ? 's' : ''} in ${count} ${plural}<br>${spare ? `${spare} spare bed${spare > 1 ? 's' : ''}` : 'Capacity matches your search'}<\/div><details class=\"dc-details\"><summary>View details of the ${count} ${plural}<\/summary><div class=\"dc-room-text-list\">${detailLines}<\/div><\/details><\/div>\n            ${rate(group, 'LTTNR')}${rate(group, 'LTT')}\n        <\/article>`;\n    };\n\n    const render = () => {\n        const root = document.getElementById(rootId);\n        const container = root?.querySelector('#contentChambres');\n        if (!root || !container || !Array.isArray(window.dispos) || !Array.isArray(window.rooms) || !window.WTD_CONFIG || !window.session) return;\n        if ([!container.querySelector('.wtd_content_chambres_et_dispos'), container.dataset.daffyCompact === '1'].every(Boolean)) return;\n        const guests = currentGuests();\n        const selectedType = document.getElementById('wtd_select_filter_type')?.value || '0';\n        const priceDirection = document.getElementById('wtd_select_order_price')?.value === '2' ? -1 : 1;\n        const groups = groupProposals();\n        const units = groups.filter((group) => roomCount(group.rates.LTTNR || group.rates.LTT) === 1)\n            .filter((group) => selectedType === '0' || group.roomTypes[0]?.categoryCode === selectedType)\n            .sort((a, b) => (ratePrice(a) - ratePrice(b)) * priceDirection);\n        const comboSort = (a, b) => {\n            const proposalA = a.rates.LTTNR || a.rates.LTT;\n            const proposalB = b.rates.LTTNR || b.rates.LTT;\n            return roomCount(proposalA) - roomCount(proposalB) || (capacity(proposalA) - guests) - (capacity(proposalB) - guests) || (ratePrice(a) - ratePrice(b)) * priceDirection;\n        };\n        const roomCombos = groups.filter((group) => {\n            const proposal = group.rates.LTTNR || group.rates.LTT;\n            const types = group.roomTypes || [];\n            const count = roomCount(proposal);\n            const spare = capacity(proposal) - guests;\n            return [count >= 2, count <= 3, types.every(isRoom), !types.some(isAccessible), spare >= 0, spare <= 1, selectedType === '0' || selectedType === 'CHB'].every(Boolean);\n        }).sort(comboSort).slice(0, 3);\n        const apartmentCombos = groups.filter((group) => {\n            const proposal = group.rates.LTTNR || group.rates.LTT;\n            const types = group.roomTypes || [];\n            const count = roomCount(proposal);\n            const spare = capacity(proposal) - guests;\n            return [guests > 6, count >= 2, count <= 3, types.every(isApartment), !types.some(isAccessible), spare >= 0, spare <= 1, selectedType === '0' || selectedType === 'APT'].every(Boolean);\n        }).sort(comboSort).slice(0, 3);\n        const hasCombos = roomCombos.length + apartmentCombos.length > 0;\n        if ([!units.length, !hasCombos].every(Boolean)) return;\n        const roomsByCode = roomMap();\n        const unitEyebrow = hasCombos ? 'Simplest option' : 'Your search results';\n        const unitTitle = hasCombos ? 'One accommodation for all guests' : 'Select your accommodation';\n        const unitsHtml = units.length ? `<header class=\"dc-heading\"><div><span class=\"dc-heading-eyebrow\">${unitEyebrow}<\/span><h2>${unitTitle}<\/h2><\/div><p>${units.length} option${units.length > 1 ? 's' : ''} matching your search<\/p><\/header><div class=\"dc-list\">${units.map((group) => unitCard(group, roomsByCode)).join('')}<\/div>` : '';\n        const roomCombosHtml = roomCombos.length ? `${units.length ? '<div class=\"dc-separator\"><span>or<\/span><\/div>' : ''}<header class=\"dc-heading\"><div><span class=\"dc-heading-eyebrow\">Split across several rooms<\/span><h2>Room combinations<\/h2><\/div><p>We only show options that match your search<\/p><\/header><div class=\"dc-list\">${roomCombos.map((group) => comboCard(group, roomsByCode, 'room')).join('')}<\/div>` : '';\n        const apartmentCombosHtml = apartmentCombos.length ? `${[units.length > 0, roomCombos.length > 0].some(Boolean) ? '<div class=\"dc-separator\"><span>or<\/span><\/div>' : ''}<header class=\"dc-heading\"><div><span class=\"dc-heading-eyebrow\">Apartment alternative<\/span><h2>Apartment combinations<\/h2><\/div><p>Apartments grouped together to accommodate all guests<\/p><\/header><div class=\"dc-list\">${apartmentCombos.map((group) => comboCard(group, roomsByCode, 'apartment')).join('')}<\/div>` : '';\n        container.dataset.daffyCompact = '1';\n        container.innerHTML = `<div class=\"dc-results\">${unitsHtml}${roomCombosHtml}${apartmentCombosHtml}<\/div>`;\n    };\n\n    const schedule = () => {\n        if (queued) return;\n        queued = true;\n        window.setTimeout(() => { queued = false; fixSearchButton(); render(); }, 80);\n    };\n    let observerStarted = false;\n    const start = () => {\n        const root = document.getElementById(rootId);\n        if (!root) return false;\n        if (!observerStarted) {\n            new MutationObserver(schedule).observe(root, { childList: true, subtree: true });\n            document.addEventListener('change', (event) => {\n                if (event.target?.matches('#wtd_select_filter_type, #wtd_select_order_price')) window.setTimeout(schedule, 100);\n            });\n            observerStarted = true;\n        }\n        schedule();\n        return true;\n    };\n    let bootAttempts = 0;\n    const boot = () => {\n        start();\n        bootAttempts += 1;\n        if (bootAttempts < 80) window.setTimeout(boot, 250);\n    };\n    if (document.readyState === 'loading') document.addEventListener('DOMContentLoaded', boot, {once:true}); else boot();\n})();\n<\/script>\n<!-- \/daffy-compact-results:v6 -->\n\n\n\n<!-- daffy-date-display-sync:v1 -->\n<script id=\"daffy-date-display-sync-v1-script\">\n(() => {\n    if (window.__daffyDateDisplaySyncV1) return;\n    window.__daffyDateDisplaySyncV1 = true;\n\n    const formatIso = (value) => {\n        const parts = String(value || '').split('-');\n        if (parts.length !== 3) return '';\n        return `${parts[2]}\/${parts[1]}\/${parts[0]}`;\n    };\n\n    const syncDateDisplay = () => {\n        const display = document.getElementById('wtd_date_range_display');\n        const input = document.getElementById('wtd_date_range');\n        const begin = document.getElementById('wtd_date_range_begin');\n        const end = document.getElementById('wtd_date_range_end');\n        if (![display, input, begin, end].every(Boolean)) return false;\n        if (![begin.value, end.value].every(Boolean)) return false;\n\n        const inputLabel = String(input.value || '').trim();\n        const fallbackLabel = `${formatIso(begin.value)} - ${formatIso(end.value)}`;\n        const label = inputLabel || fallbackLabel;\n        if (!label) return false;\n        if (display.textContent.trim() !== label) display.textContent = label;\n        return true;\n    };\n\n    let scheduled = false;\n    const scheduleSync = () => {\n        if (scheduled) return;\n        scheduled = true;\n        window.setTimeout(() => {\n            scheduled = false;\n            syncDateDisplay();\n        }, 30);\n    };\n\n    document.addEventListener('input', scheduleSync, true);\n    document.addEventListener('change', scheduleSync, true);\n    document.addEventListener('click', (event) => {\n        if (!event.target.closest('#wtd-date-range-container, .lightpick')) return;\n        scheduleSync();\n        window.setTimeout(syncDateDisplay, 250);\n    }, true);\n\n    const start = () => {\n        syncDateDisplay();\n        const observer = new MutationObserver(scheduleSync);\n        observer.observe(document.body, { childList: true, subtree: true });\n        let attempts = 0;\n        const polling = window.setInterval(() => {\n            attempts += 1;\n            syncDateDisplay();\n            if (attempts >= 120) window.clearInterval(polling);\n        }, 250);\n    };\n\n    if (document.readyState === 'loading') document.addEventListener('DOMContentLoaded', start, { once: true });\n    else start();\n})();\n<\/script>\n<!-- \/daffy-date-display-sync:v1 -->\n","protected":false},"excerpt":{"rendered":"","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":6,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_acf_changed":false,"inline_featured_image":false,"footnotes":""},"class_list":["post-3756","page","type-page","status-publish","hentry"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.7 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Our Availability - Daffy<\/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:\/\/www.daffyhotels.com\/en\/our-availability\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Our Availability - Daffy\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.daffyhotels.com\/en\/our-availability\/\" \/>\n<meta property=\"og:site_name\" content=\"Daffy\" \/>\n<meta property=\"article:modified_time\" content=\"2026-10-28T09:53:09+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:\\\/\\\/www.daffyhotels.com\\\/en\\\/our-availability\\\/\",\"url\":\"https:\\\/\\\/www.daffyhotels.com\\\/en\\\/our-availability\\\/\",\"name\":\"Our Availability - Daffy\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.daffyhotels.com\\\/en\\\/#website\"},\"datePublished\":\"2026-07-08T11:43:48+00:00\",\"dateModified\":\"2026-10-28T09:53:09+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.daffyhotels.com\\\/en\\\/our-availability\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.daffyhotels.com\\\/en\\\/our-availability\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.daffyhotels.com\\\/en\\\/our-availability\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.daffyhotels.com\\\/en\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Our Availability\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.daffyhotels.com\\\/en\\\/#website\",\"url\":\"https:\\\/\\\/www.daffyhotels.com\\\/en\\\/\",\"name\":\"Daffy\",\"description\":\"Hotel Brian\u00e7on\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.daffyhotels.com\\\/en\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.daffyhotels.com\\\/en\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/www.daffyhotels.com\\\/en\\\/#organization\",\"name\":\"Daffy\",\"url\":\"https:\\\/\\\/www.daffyhotels.com\\\/en\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.daffyhotels.com\\\/en\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/www.daffyhotels.com\\\/wp-content\\\/uploads\\\/2026\\\/06\\\/DAFFY_Logo-Principal_PINK-scaled.png\",\"contentUrl\":\"https:\\\/\\\/www.daffyhotels.com\\\/wp-content\\\/uploads\\\/2026\\\/06\\\/DAFFY_Logo-Principal_PINK-scaled.png\",\"width\":2560,\"height\":958,\"caption\":\"Daffy\"},\"image\":{\"@id\":\"https:\\\/\\\/www.daffyhotels.com\\\/en\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/www.instagram.com\\\/daffyhotels\\\/\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Our Availability - Daffy","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:\/\/www.daffyhotels.com\/en\/our-availability\/","og_locale":"en_US","og_type":"article","og_title":"Our Availability - Daffy","og_url":"https:\/\/www.daffyhotels.com\/en\/our-availability\/","og_site_name":"Daffy","article_modified_time":"2026-10-28T09:53:09+00:00","twitter_card":"summary_large_image","twitter_misc":{"Est. reading time":"1 minute"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.daffyhotels.com\/en\/our-availability\/","url":"https:\/\/www.daffyhotels.com\/en\/our-availability\/","name":"Our Availability - Daffy","isPartOf":{"@id":"https:\/\/www.daffyhotels.com\/en\/#website"},"datePublished":"2026-07-08T11:43:48+00:00","dateModified":"2026-10-28T09:53:09+00:00","breadcrumb":{"@id":"https:\/\/www.daffyhotels.com\/en\/our-availability\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.daffyhotels.com\/en\/our-availability\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.daffyhotels.com\/en\/our-availability\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.daffyhotels.com\/en\/"},{"@type":"ListItem","position":2,"name":"Our Availability"}]},{"@type":"WebSite","@id":"https:\/\/www.daffyhotels.com\/en\/#website","url":"https:\/\/www.daffyhotels.com\/en\/","name":"Daffy","description":"Hotel Brian\u00e7on","publisher":{"@id":"https:\/\/www.daffyhotels.com\/en\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.daffyhotels.com\/en\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.daffyhotels.com\/en\/#organization","name":"Daffy","url":"https:\/\/www.daffyhotels.com\/en\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.daffyhotels.com\/en\/#\/schema\/logo\/image\/","url":"https:\/\/www.daffyhotels.com\/wp-content\/uploads\/2026\/06\/DAFFY_Logo-Principal_PINK-scaled.png","contentUrl":"https:\/\/www.daffyhotels.com\/wp-content\/uploads\/2026\/06\/DAFFY_Logo-Principal_PINK-scaled.png","width":2560,"height":958,"caption":"Daffy"},"image":{"@id":"https:\/\/www.daffyhotels.com\/en\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.instagram.com\/daffyhotels\/"]}]}},"_links":{"self":[{"href":"https:\/\/www.daffyhotels.com\/en\/wp-json\/wp\/v2\/pages\/3756","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.daffyhotels.com\/en\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.daffyhotels.com\/en\/wp-json\/wp\/v2\/types\/page"}],"replies":[{"embeddable":true,"href":"https:\/\/www.daffyhotels.com\/en\/wp-json\/wp\/v2\/comments?post=3756"}],"version-history":[{"count":0,"href":"https:\/\/www.daffyhotels.com\/en\/wp-json\/wp\/v2\/pages\/3756\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.daffyhotels.com\/en\/wp-json\/wp\/v2\/media?parent=3756"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}