{"id":1641,"date":"2025-10-28T14:19:30","date_gmt":"2025-10-28T14:19:30","guid":{"rendered":"https:\/\/hull-rotterdam.com\/fr\/?page_id=1641"},"modified":"2025-11-17T16:00:27","modified_gmt":"2025-11-17T15:00:27","slug":"horaires","status":"publish","type":"page","link":"https:\/\/hull-rotterdam.com\/fr\/horaires\/","title":{"rendered":"Horaires"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"1641\" class=\"elementor elementor-1641\" data-elementor-post-type=\"page\">\n\t\t\t\t<div class=\"elementor-element elementor-element-050b8bb e-flex e-con-boxed e-con e-parent\" data-id=\"050b8bb\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t<div class=\"elementor-element elementor-element-970b248 e-con-full e-flex e-con e-child\" data-id=\"970b248\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t<div class=\"elementor-element elementor-element-38d4c6f elementor-widget elementor-widget-breadcrumbs\" data-id=\"38d4c6f\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"breadcrumbs.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<p id=\"breadcrumbs\"><span><span><a href=\"https:\/\/hull-rotterdam.com\/fr\/\">Rotterdam - Hull<\/a><\/span><\/span><\/p>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-4ade47b elementor-widget elementor-widget-heading\" data-id=\"4ade47b\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h1 class=\"elementor-heading-title elementor-size-default\">Horaires Rotterdam Hull<\/h1>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-d1587e1 elementor-widget elementor-widget-text-editor\" data-id=\"d1587e1\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Consultez les heures de d\u00e9part des ferries reliant Rotterdam \u00e0 Hull dans notre horaire.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-c908c51 e-con-full e-flex e-con e-child\" data-id=\"c908c51\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-17aa17c e-flex e-con-boxed e-con e-parent\" data-id=\"17aa17c\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-6b72115 elementor-widget elementor-widget-text-editor\" data-id=\"6b72115\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Horaire des travers\u00e9es Rotterdam &#8211; Hull<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-94a572e elementor-widget elementor-widget-heading\" data-id=\"94a572e\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Heures de d\u00e9part et d\u2019arriv\u00e9e<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-69c56d2 elementor-widget elementor-widget-text-editor\" data-id=\"69c56d2\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>D\u00e9couvrez les horaires actualis\u00e9s pour les 14 prochains jours. Veuillez noter que des modifications de derni\u00e8re minute peuvent survenir. Des facteurs tels que les <a href=\"https:\/\/hull-rotterdam.com\/fr\/meteo\/\">conditions m\u00e9t\u00e9orologiques<\/a> peuvent influencer les heures de d\u00e9part et d\u2019arriv\u00e9e.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-a9bec86 elementor-widget elementor-widget-shortcode\" data-id=\"a9bec86\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"shortcode.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-shortcode\"><div class=\"tp-wrap\" data-config=\"{&quot;rest&quot;:&quot;https:\\\/\\\/hull-rotterdam.com\\\/fr\\\/wp-json\\\/timetables-pro\\\/v1\\\/timetables&quot;,&quot;routes&quot;:[82],&quot;days&quot;:7,&quot;autoload&quot;:true,&quot;routeLabels&quot;:{&quot;82&quot;:&quot;Rotterdam naar Hull&quot;},&quot;opFilter&quot;:[&quot;7&quot;],&quot;labels&quot;:{&quot;ui_date&quot;:&quot;Date&quot;,&quot;ui_days&quot;:&quot;Jours&quot;,&quot;ui_button&quot;:&quot;Voir les horaires&quot;,&quot;status_idle&quot;:&quot;S\\u00e9lectionnez une date pour afficher les horaires&quot;,&quot;status_loading&quot;:&quot;Chargement...&quot;,&quot;status_empty&quot;:&quot;Aucun horaire trouv\\u00e9&quot;,&quot;status_found&quot;:&quot;%d vaartijden gevonden&quot;,&quot;th_date&quot;:&quot;Date&quot;,&quot;th_dep&quot;:&quot;D\\u00e9part&quot;,&quot;th_arr&quot;:&quot;Arriv\\u00e9e&quot;,&quot;th_dur&quot;:&quot;Dur\\u00e9e&quot;,&quot;th_ship&quot;:&quot;Ferry&quot;,&quot;th_op&quot;:&quot;Op\\u00e9rateur&quot;,&quot;th_route&quot;:&quot;Trajet&quot;,&quot;wd_sun&quot;:&quot;DIM&quot;,&quot;wd_mon&quot;:&quot;LUN&quot;,&quot;wd_tue&quot;:&quot;MAR&quot;,&quot;wd_wed&quot;:&quot;MER&quot;,&quot;wd_thu&quot;:&quot;JEU&quot;,&quot;wd_fri&quot;:&quot;VEN&quot;,&quot;wd_sat&quot;:&quot;SAM&quot;,&quot;summary_footer_one&quot;:&quot;\\u00bb Voir les %s prochains d\\u00e9parts dans notre horaire&quot;,&quot;summary_footer_two&quot;:&quot;\\u00bb Consultez plus de d\\u00e9parts %1$s et %2$s dans notre horaire&quot;,&quot;summary_footer_generic&quot;:&quot;Consultez notre horaire pour plus de travers\\u00e9es&quot;,&quot;more_link&quot;:&quot;Plus d\\u2019horaires&quot;},&quot;showLogo&quot;:true,&quot;title&quot;:&quot;All sailings&quot;,&quot;shipMap&quot;:[],&quot;shipLinks&quot;:{&quot;pride of hull&quot;:&quot;https:\\\/\\\/hull-rotterdam.com\\\/fr\\\/ferries\\\/pride-of-hull\\\/&quot;,&quot;pride of rotterdam&quot;:&quot;https:\\\/\\\/hull-rotterdam.com\\\/fr\\\/ferries\\\/pride-of-rotterdam\\\/&quot;}}\">\n  <div class=\"tp-controls\" role=\"group\" aria-label=\"Timetable controls\">\n    <div>\n      <label for=\"tp-date-ops\">Date<\/label><br>\n      <input id=\"tp-date-ops\" class=\"tp-date\" type=\"date\" aria-label=\"Date\">\n    <\/div>\n    <div>\n      <label for=\"tp-range-ops\">Jours<\/label><br>\n      <select id=\"tp-range-ops\" class=\"tp-range\" aria-label=\"Jours\">\n        <option value=\"1\">1<\/option><option value=\"3\">3<\/option><option value=\"7\">7<\/option><option value=\"14\">14<\/option>\n      <\/select>\n    <\/div>\n    <div><button id=\"tp-load-ops\" class=\"tp-btn\">Voir les horaires<\/button><\/div>\n  <\/div>\n\n      <h3 style=\"margin:8px 0 12px;color:#0f172a;\">All sailings<\/h3>\n  \n  <div id=\"tp-status-ops\" class=\"tp-muted\" aria-live=\"polite\">S\u00e9lectionnez une date pour afficher les horaires<\/div>\n\n  <div id=\"tp-ops-results\"><\/div>\n\n  <div class=\"tp-loader\" aria-hidden=\"true\">\n    <div class=\"tp-loader-card\">\n      <div class=\"tp-spinner\" aria-hidden=\"true\"><\/div>\n      <div class=\"tp-loader-text\">Chargement...<\/div>\n    <\/div>\n  <\/div>\n<\/div>\n\n<script>\n(function(){\n  const wrap   = document.currentScript.previousElementSibling;\n  const cfg    = JSON.parse(wrap.getAttribute('data-config')||'{}');\n  const L      = cfg.labels||{};\n  const dateEl = wrap.querySelector('#tp-date-ops');\n  const daysEl = wrap.querySelector('#tp-range-ops');\n  const btn    = wrap.querySelector('#tp-load-ops');\n  const status = wrap.querySelector('#tp-status-ops');\n  const out    = wrap.querySelector('#tp-ops-results');\n  const loader = wrap.querySelector('.tp-loader');\n\n  dateEl.valueAsDate = new Date();\n  Array.from(daysEl.options).forEach(o=>{ if(parseInt(o.value,10)===parseInt(cfg.days||7,10)) o.selected=true; });\n\n  function pad(n){ return String(n).padStart(2,'0'); }\n  function iso(d){ return d.getFullYear()+'-'+pad(d.getMonth()+1)+'-'+pad(d.getDate()); }\n  function toLocal(s){ return new Date(s); }\n  function hhmm(d){ return d.toLocaleTimeString([], {hour:'2-digit', minute:'2-digit'}); }\n  function dShort(d){ return d.toLocaleDateString([], {day:'numeric', month:'short'}); }\n  function dur(m){ const h=Math.floor(m\/60), r=m%60; return r? (h+'h '+r+'m') : (h+'h'); }\n\n  const WD = [\n    L.wd_sun || 'SUN',\n    L.wd_mon || 'MON',\n    L.wd_tue || 'TUE',\n    L.wd_wed || 'WED',\n    L.wd_thu || 'THU',\n    L.wd_fri || 'FRI',\n    L.wd_sat || 'SAT'\n  ];\n\n  function setLoader(v){ loader.classList.toggle('show', !!v); loader.setAttribute('aria-hidden', v?'false':'true'); }\n\n  function opCell(r){\n    const name = r.opName || ('Operator '+(r.opId||''));\n    const logo = (cfg.showLogo && r.opLogo) ? '<img decoding=\"async\" src=\"'+r.opLogo+'\" alt=\"'+name+'\"> ' : '';\n    const label = logo + '<span>'+name+'<\/span>';\n    return r.opLink ? '<a class=\"tp-op\" href=\"'+r.opLink+'\" target=\"_blank\" rel=\"nofollow noopener\">'+label+'<\/a>' : '<span class=\"tp-op\">'+label+'<\/span>';\n  }\n\n  function shipInfo(original){\n    const key = (original||'').toLowerCase().trim();\n    const label = (cfg.shipMap && cfg.shipMap[key]) || original || '';\n    const href  = (cfg.shipLinks && cfg.shipLinks[key]) || '';\n    return {label, href};\n  }\n\n  function shipBadge(original){\n    const s = shipInfo(original);\n    const badge = '<span class=\"tp-badge\">'+(s.label||'')+'<\/span>';\n    return s.href ? ('<a href=\"'+s.href+'\" target=\"_blank\" rel=\"nofollow noopener\">'+badge+'<\/a>') : badge;\n  }\n\n  function routeLabel(rid){\n    return (cfg.routeLabels && (cfg.routeLabels[String(rid)] || cfg.routeLabels[rid])) || String(rid);\n  }\n\n  function renderTable(rows){\n    const th = {date:L.th_date,dep:L.th_dep,arr:L.th_arr,dur:L.th_dur,ship:L.th_ship,route:L.th_route,op:L.th_op};\n    let html = '<table class=\"tp-table\"><thead><tr>'+\n      '<th>'+th.date+'<\/th><th>'+th.dep+'<\/th><th>'+th.arr+'<\/th><th>'+th.dur+'<\/th><th>'+th.ship+'<\/th><th>'+th.route+'<\/th><th>'+th.op+'<\/th>'+\n      '<\/tr><\/thead><tbody>';\n    rows.forEach(r=>{\n      const dow = WD[r.dep.getDay()] || '';\n      html += '<tr>'+\n        '<td>'+dShort(r.dep)+' <span class=\"tp-day\">'+dow+'<\/span><\/td>'+\n        '<td>'+hhmm(r.dep)+'<\/td>'+\n        '<td>'+hhmm(r.arr)+'<\/td>'+\n        '<td>'+dur(r.min)+'<\/td>'+\n        '<td>'+shipBadge(r.ship)+'<\/td>'+\n        '<td>'+routeLabel(r.routeId)+'<\/td>'+\n        '<td>'+opCell(r)+'<\/td>'+\n      '<\/tr>';\n    });\n    html += '<\/tbody><\/table>';\n    return html;\n  }\n\n  function renderCards(rows){\n    let html = '<div class=\"tp-cardlist\">';\n    rows.forEach(r=>{\n      const dow   = WD[r.dep.getDay()] || '';\n      const times = hhmm(r.dep) + ' <span class=\"tp-arrow\">\u2192<\/span> ' + hhmm(r.arr);\n      html += '<div class=\"tp-card\">'+\n        \/\/ Row 1: Date + weekday + times\n        '<div class=\"tp-mrow\">'+\n          '<div class=\"lhs\"><span class=\"tp-sub\">'+dShort(r.dep)+'<\/span><span class=\"tp-day\">'+dow+'<\/span><\/div>'+\n          '<div class=\"rhs\"><span class=\"tp-time\">'+times+'<\/span><\/div>'+\n        '<\/div>'+\n        \/\/ Row 2: Ship & Route (no prefixes)\n        '<div class=\"tp-mrow\">'+\n          '<div class=\"lhs\">'+shipBadge(r.ship)+'<\/div>'+\n          '<div class=\"rhs\">'+routeLabel(r.routeId)+'<\/div>'+\n        '<\/div>'+\n        \/\/ Row 3: Operator\n        '<div class=\"tp-mrow\">'+\n          '<div class=\"lhs\">'+opCell(r)+'<\/div>'+\n          '<div class=\"rhs\"><\/div>'+\n        '<\/div>'+\n      '<\/div>';\n    });\n    html += '<\/div>';\n    return html;\n  }\n\n  \/\/ Safe fetch helper\n  async function fetchOne(routeId, from, to){\n    try{\n      const url = new URL(cfg.rest);\n      url.searchParams.set('route', String(routeId));\n      url.searchParams.set('from', from);\n      url.searchParams.set('to', to);\n      const res = await fetch(url.toString(), {credentials:'same-origin'});\n      if(!res.ok) return { rid: routeId, error: 'HTTP '+res.status };\n      const json = await res.json();\n      const list = (json && json.data && Array.isArray(json.data.rows)) ? json.data.rows : [];\n      return { rid: routeId, rows: list };\n    }catch(e){\n      return { rid: routeId, error: String(e && e.message ? e.message : e) };\n    }\n  }\n\n  async function load(){\n    btn.disabled = true; setLoader(true); status.textContent = L.status_loading;\n\n    const start = new Date(dateEl.value || new Date());\n    const days  = Math.max(1, parseInt(daysEl.value,10)||1);\n    const end   = new Date(start); end.setDate(start.getDate()+days-1);\n    const fromIso = iso(start), toIso = iso(end);\n\n    try{\n      const results  = await Promise.all((cfg.routes||[]).map(rid=>fetchOne(rid, fromIso, toIso)));\n      const oks  = results.filter(r => !r.error);\n      const errs = results.filter(r =>  r.error);\n\n      const all = [];\n      oks.forEach(({rid, rows})=>{\n        rows.forEach(t=>{\n          all.push({\n            routeId: rid,\n            opId: t.operatorId || null,\n            opName: t.operatorName || '',\n            opLogo: t.operatorLogo || '',\n            opLink: t.operatorLink || '',\n            dep: toLocal(t.departureTime),\n            arr: toLocal(t.arrivalTime),\n            min: t.durationInMinutes || 0,\n            ship: t.shipName || ''\n          });\n        });\n      });\n\n      let rows = all;\n      if (Array.isArray(cfg.opFilter) && cfg.opFilter.length>0) {\n        rows = all.filter(r => r.opId && cfg.opFilter.includes(String(r.opId)));\n      }\n\n      rows.sort((a,b)=> a.dep - b.dep);\n\n      const total = rows.length;\n      if (total===0){\n        status.textContent = L.status_empty + (errs.length ? ' (some routes returned no data or errors)' : '');\n        out.innerHTML='';\n        setLoader(false); btn.disabled=false; return;\n      }\n\n      status.textContent = (L.status_found||'%d sailings found').replace('%d', total) + (errs.length ? ` (skipped ${errs.length} route${errs.length>1?'s':''})` : '');\n      out.innerHTML = renderTable(rows) + renderCards(rows);\n\n    } catch(e){\n      status.textContent = 'Failed to load data';\n      out.innerHTML = '<pre>'+String(e.message||e)+'<\/pre>';\n    } finally {\n      setLoader(false);\n      btn.disabled = false;\n    }\n  }\n\n  btn.addEventListener('click', load);\n  if (cfg.autoload) load();\n})();\n<\/script>\n<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-bf64a50 e-flex e-con-boxed e-con e-parent\" data-id=\"bf64a50\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t<div class=\"elementor-element elementor-element-8676d27 e-con-full e-flex e-con e-child\" data-id=\"8676d27\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-f32b139 e-con-full e-flex e-con e-child\" data-id=\"f32b139\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t<div class=\"elementor-element elementor-element-959929c elementor-widget elementor-widget-heading\" data-id=\"959929c\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h3 class=\"elementor-heading-title elementor-size-default\">Avant de vous rendre \u00e0 Europoort<\/h3>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-23b50c8 elementor-widget elementor-widget-text-editor\" data-id=\"23b50c8\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<ul><li>Il est conseill\u00e9 \u2013 et souvent moins cher \u2013 d\u2019acheter vos billets \u00e0 l\u2019avance. Vous serez ainsi certain d\u2019avoir une place \u00e0 bord du ferry et gagnerez du temps lors de l\u2019enregistrement.<\/li><li>Pr\u00e9sentez-vous \u00e0 l\u2019enregistrement de P&O Ferries au moins 60 minutes avant le d\u00e9part, m\u00eame si vous voyagez sans voiture.<\/li><li>Pr\u00e9voyez un d\u00e9part anticip\u00e9 de votre domicile ou de votre h\u00e9bergement. Comptez un trajet d\u2019environ deux \u00e0 trois heures depuis le nord de la France ou de la Belgique, et tenez compte du trafic et d\u2019\u00e9ventuels changements d\u2019horaires.<\/li><\/ul>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-2c9e132 e-flex e-con-boxed e-con e-parent\" data-id=\"2c9e132\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t<div class=\"elementor-element elementor-element-aa79a6f e-con-full e-flex e-con e-child\" data-id=\"aa79a6f\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-4e4cfb9 elementor-widget elementor-widget-text-editor\" data-id=\"4e4cfb9\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>P&O Ferries Rotterdam vers Hull: Horaires<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-d29b9a6 elementor-widget elementor-widget-heading\" data-id=\"d29b9a6\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">\u00c0 propos des travers\u00e9es entre Rotterdam et Hull<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-85264c3 elementor-widget elementor-widget-text-editor\" data-id=\"85264c3\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Actuellement, une seule compagnie assure la liaison entre Rotterdam et Hull : <strong>P&O Ferries<\/strong>. Deux navires sont utilis\u00e9s sur cette route : le <em>Pride of Hull<\/em> et le <em>Pride of Rotterdam<\/em>.<\/p><p>Du lundi au vendredi, le ferry part \u00e0 <strong>21h00<\/strong> et arrive vers <strong>07h30<\/strong> au port de Hull. Le week-end, le d\u00e9part a lieu \u00e0 <strong>20h30<\/strong> avec une arriv\u00e9e pr\u00e9vue vers <strong>08h00<\/strong> le matin.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-2b5b0af e-con-full e-flex e-con e-child\" data-id=\"2b5b0af\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-54f51bf elementor-widget elementor-widget-image\" data-id=\"54f51bf\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img fetchpriority=\"high\" decoding=\"async\" width=\"1024\" height=\"683\" src=\"https:\/\/hull-rotterdam.com\/fr\/wp-content\/uploads\/sites\/4\/2025\/10\/Pride-of-Rotterdam-1-1024x683.png\" class=\"attachment-large size-large wp-image-1857\" alt=\"Pride of Rotterdam ferry operated by P&O Ferries\" srcset=\"https:\/\/hull-rotterdam.com\/fr\/wp-content\/uploads\/sites\/4\/2025\/10\/Pride-of-Rotterdam-1-1024x683.png 1024w, https:\/\/hull-rotterdam.com\/fr\/wp-content\/uploads\/sites\/4\/2025\/10\/Pride-of-Rotterdam-1-300x200.png 300w, https:\/\/hull-rotterdam.com\/fr\/wp-content\/uploads\/sites\/4\/2025\/10\/Pride-of-Rotterdam-1-768x512.png 768w, https:\/\/hull-rotterdam.com\/fr\/wp-content\/uploads\/sites\/4\/2025\/10\/Pride-of-Rotterdam-1.png 1200w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-8b6f7ee e-flex e-con-boxed e-con e-parent\" data-id=\"8b6f7ee\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-c2aa651 elementor-widget elementor-widget-text-editor\" data-id=\"c2aa651\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\tHeures de d\u00e9part depuis le port de Hull\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-d65e9d3 elementor-widget elementor-widget-heading\" data-id=\"d65e9d3\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Travers\u00e9e retour : horaires Hull Rotterdam<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-2da16a7 elementor-widget elementor-widget-text-editor\" data-id=\"2da16a7\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Consultez dans l\u2019horaire ci-dessous les heures de travers\u00e9e de Hull vers Rotterdam pour les 14 prochains jours.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-25f933b elementor-widget elementor-widget-shortcode\" data-id=\"25f933b\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"shortcode.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-shortcode\"><div class=\"tp-wrap\" data-config=\"{&quot;rest&quot;:&quot;https:\\\/\\\/hull-rotterdam.com\\\/fr\\\/wp-json\\\/timetables-pro\\\/v1\\\/timetables&quot;,&quot;routes&quot;:[34],&quot;days&quot;:7,&quot;autoload&quot;:true,&quot;routeLabels&quot;:{&quot;34&quot;:&quot;Hull naar Rotterdam&quot;},&quot;opFilter&quot;:[&quot;7&quot;],&quot;labels&quot;:{&quot;ui_date&quot;:&quot;Date&quot;,&quot;ui_days&quot;:&quot;Jours&quot;,&quot;ui_button&quot;:&quot;Voir les horaires&quot;,&quot;status_idle&quot;:&quot;S\\u00e9lectionnez une date pour afficher les horaires&quot;,&quot;status_loading&quot;:&quot;Chargement...&quot;,&quot;status_empty&quot;:&quot;Aucun horaire trouv\\u00e9&quot;,&quot;status_found&quot;:&quot;%d vaartijden gevonden&quot;,&quot;th_date&quot;:&quot;Date&quot;,&quot;th_dep&quot;:&quot;D\\u00e9part&quot;,&quot;th_arr&quot;:&quot;Arriv\\u00e9e&quot;,&quot;th_dur&quot;:&quot;Dur\\u00e9e&quot;,&quot;th_ship&quot;:&quot;Ferry&quot;,&quot;th_op&quot;:&quot;Op\\u00e9rateur&quot;,&quot;th_route&quot;:&quot;Trajet&quot;,&quot;wd_sun&quot;:&quot;DIM&quot;,&quot;wd_mon&quot;:&quot;LUN&quot;,&quot;wd_tue&quot;:&quot;MAR&quot;,&quot;wd_wed&quot;:&quot;MER&quot;,&quot;wd_thu&quot;:&quot;JEU&quot;,&quot;wd_fri&quot;:&quot;VEN&quot;,&quot;wd_sat&quot;:&quot;SAM&quot;,&quot;summary_footer_one&quot;:&quot;\\u00bb Voir les %s prochains d\\u00e9parts dans notre horaire&quot;,&quot;summary_footer_two&quot;:&quot;\\u00bb Consultez plus de d\\u00e9parts %1$s et %2$s dans notre horaire&quot;,&quot;summary_footer_generic&quot;:&quot;Consultez notre horaire pour plus de travers\\u00e9es&quot;,&quot;more_link&quot;:&quot;Plus d\\u2019horaires&quot;},&quot;showLogo&quot;:true,&quot;title&quot;:&quot;All sailings&quot;,&quot;shipMap&quot;:[],&quot;shipLinks&quot;:{&quot;pride of hull&quot;:&quot;https:\\\/\\\/hull-rotterdam.com\\\/fr\\\/ferries\\\/pride-of-hull\\\/&quot;,&quot;pride of rotterdam&quot;:&quot;https:\\\/\\\/hull-rotterdam.com\\\/fr\\\/ferries\\\/pride-of-rotterdam\\\/&quot;}}\">\n  <div class=\"tp-controls\" role=\"group\" aria-label=\"Timetable controls\">\n    <div>\n      <label for=\"tp-date-ops\">Date<\/label><br>\n      <input id=\"tp-date-ops\" class=\"tp-date\" type=\"date\" aria-label=\"Date\">\n    <\/div>\n    <div>\n      <label for=\"tp-range-ops\">Jours<\/label><br>\n      <select id=\"tp-range-ops\" class=\"tp-range\" aria-label=\"Jours\">\n        <option value=\"1\">1<\/option><option value=\"3\">3<\/option><option value=\"7\">7<\/option><option value=\"14\">14<\/option>\n      <\/select>\n    <\/div>\n    <div><button id=\"tp-load-ops\" class=\"tp-btn\">Voir les horaires<\/button><\/div>\n  <\/div>\n\n      <h3 style=\"margin:8px 0 12px;color:#0f172a;\">All sailings<\/h3>\n  \n  <div id=\"tp-status-ops\" class=\"tp-muted\" aria-live=\"polite\">S\u00e9lectionnez une date pour afficher les horaires<\/div>\n\n  <div id=\"tp-ops-results\"><\/div>\n\n  <div class=\"tp-loader\" aria-hidden=\"true\">\n    <div class=\"tp-loader-card\">\n      <div class=\"tp-spinner\" aria-hidden=\"true\"><\/div>\n      <div class=\"tp-loader-text\">Chargement...<\/div>\n    <\/div>\n  <\/div>\n<\/div>\n\n<script>\n(function(){\n  const wrap   = document.currentScript.previousElementSibling;\n  const cfg    = JSON.parse(wrap.getAttribute('data-config')||'{}');\n  const L      = cfg.labels||{};\n  const dateEl = wrap.querySelector('#tp-date-ops');\n  const daysEl = wrap.querySelector('#tp-range-ops');\n  const btn    = wrap.querySelector('#tp-load-ops');\n  const status = wrap.querySelector('#tp-status-ops');\n  const out    = wrap.querySelector('#tp-ops-results');\n  const loader = wrap.querySelector('.tp-loader');\n\n  dateEl.valueAsDate = new Date();\n  Array.from(daysEl.options).forEach(o=>{ if(parseInt(o.value,10)===parseInt(cfg.days||7,10)) o.selected=true; });\n\n  function pad(n){ return String(n).padStart(2,'0'); }\n  function iso(d){ return d.getFullYear()+'-'+pad(d.getMonth()+1)+'-'+pad(d.getDate()); }\n  function toLocal(s){ return new Date(s); }\n  function hhmm(d){ return d.toLocaleTimeString([], {hour:'2-digit', minute:'2-digit'}); }\n  function dShort(d){ return d.toLocaleDateString([], {day:'numeric', month:'short'}); }\n  function dur(m){ const h=Math.floor(m\/60), r=m%60; return r? (h+'h '+r+'m') : (h+'h'); }\n\n  const WD = [\n    L.wd_sun || 'SUN',\n    L.wd_mon || 'MON',\n    L.wd_tue || 'TUE',\n    L.wd_wed || 'WED',\n    L.wd_thu || 'THU',\n    L.wd_fri || 'FRI',\n    L.wd_sat || 'SAT'\n  ];\n\n  function setLoader(v){ loader.classList.toggle('show', !!v); loader.setAttribute('aria-hidden', v?'false':'true'); }\n\n  function opCell(r){\n    const name = r.opName || ('Operator '+(r.opId||''));\n    const logo = (cfg.showLogo && r.opLogo) ? '<img decoding=\"async\" src=\"'+r.opLogo+'\" alt=\"'+name+'\"> ' : '';\n    const label = logo + '<span>'+name+'<\/span>';\n    return r.opLink ? '<a class=\"tp-op\" href=\"'+r.opLink+'\" target=\"_blank\" rel=\"nofollow noopener\">'+label+'<\/a>' : '<span class=\"tp-op\">'+label+'<\/span>';\n  }\n\n  function shipInfo(original){\n    const key = (original||'').toLowerCase().trim();\n    const label = (cfg.shipMap && cfg.shipMap[key]) || original || '';\n    const href  = (cfg.shipLinks && cfg.shipLinks[key]) || '';\n    return {label, href};\n  }\n\n  function shipBadge(original){\n    const s = shipInfo(original);\n    const badge = '<span class=\"tp-badge\">'+(s.label||'')+'<\/span>';\n    return s.href ? ('<a href=\"'+s.href+'\" target=\"_blank\" rel=\"nofollow noopener\">'+badge+'<\/a>') : badge;\n  }\n\n  function routeLabel(rid){\n    return (cfg.routeLabels && (cfg.routeLabels[String(rid)] || cfg.routeLabels[rid])) || String(rid);\n  }\n\n  function renderTable(rows){\n    const th = {date:L.th_date,dep:L.th_dep,arr:L.th_arr,dur:L.th_dur,ship:L.th_ship,route:L.th_route,op:L.th_op};\n    let html = '<table class=\"tp-table\"><thead><tr>'+\n      '<th>'+th.date+'<\/th><th>'+th.dep+'<\/th><th>'+th.arr+'<\/th><th>'+th.dur+'<\/th><th>'+th.ship+'<\/th><th>'+th.route+'<\/th><th>'+th.op+'<\/th>'+\n      '<\/tr><\/thead><tbody>';\n    rows.forEach(r=>{\n      const dow = WD[r.dep.getDay()] || '';\n      html += '<tr>'+\n        '<td>'+dShort(r.dep)+' <span class=\"tp-day\">'+dow+'<\/span><\/td>'+\n        '<td>'+hhmm(r.dep)+'<\/td>'+\n        '<td>'+hhmm(r.arr)+'<\/td>'+\n        '<td>'+dur(r.min)+'<\/td>'+\n        '<td>'+shipBadge(r.ship)+'<\/td>'+\n        '<td>'+routeLabel(r.routeId)+'<\/td>'+\n        '<td>'+opCell(r)+'<\/td>'+\n      '<\/tr>';\n    });\n    html += '<\/tbody><\/table>';\n    return html;\n  }\n\n  function renderCards(rows){\n    let html = '<div class=\"tp-cardlist\">';\n    rows.forEach(r=>{\n      const dow   = WD[r.dep.getDay()] || '';\n      const times = hhmm(r.dep) + ' <span class=\"tp-arrow\">\u2192<\/span> ' + hhmm(r.arr);\n      html += '<div class=\"tp-card\">'+\n        \/\/ Row 1: Date + weekday + times\n        '<div class=\"tp-mrow\">'+\n          '<div class=\"lhs\"><span class=\"tp-sub\">'+dShort(r.dep)+'<\/span><span class=\"tp-day\">'+dow+'<\/span><\/div>'+\n          '<div class=\"rhs\"><span class=\"tp-time\">'+times+'<\/span><\/div>'+\n        '<\/div>'+\n        \/\/ Row 2: Ship & Route (no prefixes)\n        '<div class=\"tp-mrow\">'+\n          '<div class=\"lhs\">'+shipBadge(r.ship)+'<\/div>'+\n          '<div class=\"rhs\">'+routeLabel(r.routeId)+'<\/div>'+\n        '<\/div>'+\n        \/\/ Row 3: Operator\n        '<div class=\"tp-mrow\">'+\n          '<div class=\"lhs\">'+opCell(r)+'<\/div>'+\n          '<div class=\"rhs\"><\/div>'+\n        '<\/div>'+\n      '<\/div>';\n    });\n    html += '<\/div>';\n    return html;\n  }\n\n  \/\/ Safe fetch helper\n  async function fetchOne(routeId, from, to){\n    try{\n      const url = new URL(cfg.rest);\n      url.searchParams.set('route', String(routeId));\n      url.searchParams.set('from', from);\n      url.searchParams.set('to', to);\n      const res = await fetch(url.toString(), {credentials:'same-origin'});\n      if(!res.ok) return { rid: routeId, error: 'HTTP '+res.status };\n      const json = await res.json();\n      const list = (json && json.data && Array.isArray(json.data.rows)) ? json.data.rows : [];\n      return { rid: routeId, rows: list };\n    }catch(e){\n      return { rid: routeId, error: String(e && e.message ? e.message : e) };\n    }\n  }\n\n  async function load(){\n    btn.disabled = true; setLoader(true); status.textContent = L.status_loading;\n\n    const start = new Date(dateEl.value || new Date());\n    const days  = Math.max(1, parseInt(daysEl.value,10)||1);\n    const end   = new Date(start); end.setDate(start.getDate()+days-1);\n    const fromIso = iso(start), toIso = iso(end);\n\n    try{\n      const results  = await Promise.all((cfg.routes||[]).map(rid=>fetchOne(rid, fromIso, toIso)));\n      const oks  = results.filter(r => !r.error);\n      const errs = results.filter(r =>  r.error);\n\n      const all = [];\n      oks.forEach(({rid, rows})=>{\n        rows.forEach(t=>{\n          all.push({\n            routeId: rid,\n            opId: t.operatorId || null,\n            opName: t.operatorName || '',\n            opLogo: t.operatorLogo || '',\n            opLink: t.operatorLink || '',\n            dep: toLocal(t.departureTime),\n            arr: toLocal(t.arrivalTime),\n            min: t.durationInMinutes || 0,\n            ship: t.shipName || ''\n          });\n        });\n      });\n\n      let rows = all;\n      if (Array.isArray(cfg.opFilter) && cfg.opFilter.length>0) {\n        rows = all.filter(r => r.opId && cfg.opFilter.includes(String(r.opId)));\n      }\n\n      rows.sort((a,b)=> a.dep - b.dep);\n\n      const total = rows.length;\n      if (total===0){\n        status.textContent = L.status_empty + (errs.length ? ' (some routes returned no data or errors)' : '');\n        out.innerHTML='';\n        setLoader(false); btn.disabled=false; return;\n      }\n\n      status.textContent = (L.status_found||'%d sailings found').replace('%d', total) + (errs.length ? ` (skipped ${errs.length} route${errs.length>1?'s':''})` : '');\n      out.innerHTML = renderTable(rows) + renderCards(rows);\n\n    } catch(e){\n      status.textContent = 'Failed to load data';\n      out.innerHTML = '<pre>'+String(e.message||e)+'<\/pre>';\n    } finally {\n      setLoader(false);\n      btn.disabled = false;\n    }\n  }\n\n  btn.addEventListener('click', load);\n  if (cfg.autoload) load();\n})();\n<\/script>\n<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-1f48483 e-flex e-con-boxed e-con e-parent\" data-id=\"1f48483\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-d025ef4 elementor-widget elementor-widget-template\" data-id=\"d025ef4\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"template.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-template\">\n\t\t\t\t\t<div data-elementor-type=\"container\" data-elementor-id=\"2528\" class=\"elementor elementor-2528\" data-elementor-post-type=\"elementor_library\">\n\t\t\t\t<div class=\"elementor-element elementor-element-5d40e0e5 e-flex e-con-boxed e-con e-parent\" data-id=\"5d40e0e5\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t<div class=\"elementor-element elementor-element-4a8984d9 e-con-full e-flex e-con e-child\" data-id=\"4a8984d9\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t<div class=\"elementor-element elementor-element-25aa27c4 elementor-widget elementor-widget-heading\" data-id=\"25aa27c4\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<div class=\"elementor-heading-title elementor-size-default\">R\u00e9server des billets de ferry ?<\/div>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-366714 elementor-widget elementor-widget-text-editor\" data-id=\"366714\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Vous pouvez ins\u00e9rer notre module de r\u00e9servation en haut de cette page pour obtenir imm\u00e9diatement un devis sans engagement. Vous pouvez \u00e9galement consulter d\u2019abord notre horaire pour voir quels ferries partent \u00e0 quelles heures et v\u00e9rifier s\u2019ils correspondent \u00e0 votre planning.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-594c1ade e-con-full e-flex e-con e-child\" data-id=\"594c1ade\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t<div class=\"elementor-element elementor-element-2847de8b e-con-full e-flex e-con e-child\" data-id=\"2847de8b\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-de09ef7 gallery-spacing-custom elementor-hidden-tablet elementor-hidden-mobile elementor-widget elementor-widget-image-gallery\" data-id=\"de09ef7\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"image-gallery.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-image-gallery\">\n\t\t\t<div id='gallery-1' class='gallery galleryid-1641 gallery-columns-3 gallery-size-medium'><figure class='gallery-item'>\n\t\t\t<div class='gallery-icon landscape'>\n\t\t\t\t<img decoding=\"async\" width=\"300\" height=\"200\" src=\"https:\/\/hull-rotterdam.com\/fr\/wp-content\/uploads\/sites\/4\/2025\/10\/Car-entering-the-ferry-terminal-Rotterdam-300x200.png\" class=\"attachment-medium size-medium\" alt=\"Car approaching the P&O Ferries terminal at Rotterdam Europoort for boarding\" aria-describedby=\"gallery-1-2115\" srcset=\"https:\/\/hull-rotterdam.com\/fr\/wp-content\/uploads\/sites\/4\/2025\/10\/Car-entering-the-ferry-terminal-Rotterdam-300x200.png 300w, https:\/\/hull-rotterdam.com\/fr\/wp-content\/uploads\/sites\/4\/2025\/10\/Car-entering-the-ferry-terminal-Rotterdam-1024x683.png 1024w, https:\/\/hull-rotterdam.com\/fr\/wp-content\/uploads\/sites\/4\/2025\/10\/Car-entering-the-ferry-terminal-Rotterdam-768x512.png 768w, https:\/\/hull-rotterdam.com\/fr\/wp-content\/uploads\/sites\/4\/2025\/10\/Car-entering-the-ferry-terminal-Rotterdam.png 1200w\" sizes=\"(max-width: 300px) 100vw, 300px\" \/>\n\t\t\t<\/div>\n\t\t\t\t<figcaption class='wp-caption-text gallery-caption' id='gallery-1-2115'>\n\t\t\t\tVehicles enter the Rotterdam Europoort terminal before driving onto the P&#038;O ferry bound for Hull.\n\t\t\t\t<\/figcaption><\/figure><figure class='gallery-item'>\n\t\t\t<div class='gallery-icon landscape'>\n\t\t\t\t<img decoding=\"async\" width=\"300\" height=\"200\" src=\"https:\/\/hull-rotterdam.com\/fr\/wp-content\/uploads\/sites\/4\/2025\/10\/Cloudy-after-storms-sea-conditions-Rotterdam-300x200.png\" class=\"attachment-medium size-medium\" alt=\"Storm winds on the port\" aria-describedby=\"gallery-1-1951\" srcset=\"https:\/\/hull-rotterdam.com\/fr\/wp-content\/uploads\/sites\/4\/2025\/10\/Cloudy-after-storms-sea-conditions-Rotterdam-300x200.png 300w, https:\/\/hull-rotterdam.com\/fr\/wp-content\/uploads\/sites\/4\/2025\/10\/Cloudy-after-storms-sea-conditions-Rotterdam-1024x683.png 1024w, https:\/\/hull-rotterdam.com\/fr\/wp-content\/uploads\/sites\/4\/2025\/10\/Cloudy-after-storms-sea-conditions-Rotterdam-768x512.png 768w, https:\/\/hull-rotterdam.com\/fr\/wp-content\/uploads\/sites\/4\/2025\/10\/Cloudy-after-storms-sea-conditions-Rotterdam.png 1200w\" sizes=\"(max-width: 300px) 100vw, 300px\" \/>\n\t\t\t<\/div>\n\t\t\t\t<figcaption class='wp-caption-text gallery-caption' id='gallery-1-1951'>\n\t\t\t\tView of the port after bad sea conditions\n\t\t\t\t<\/figcaption><\/figure><figure class='gallery-item'>\n\t\t\t<div class='gallery-icon landscape'>\n\t\t\t\t<img loading=\"lazy\" decoding=\"async\" width=\"300\" height=\"200\" src=\"https:\/\/hull-rotterdam.com\/fr\/wp-content\/uploads\/sites\/4\/2025\/10\/PO-Ferries-1-300x200.png\" class=\"attachment-medium size-medium\" alt=\"P&O Ferries logo viewed from the deck of the ship\" aria-describedby=\"gallery-1-1532\" srcset=\"https:\/\/hull-rotterdam.com\/fr\/wp-content\/uploads\/sites\/4\/2025\/10\/PO-Ferries-1-300x200.png 300w, https:\/\/hull-rotterdam.com\/fr\/wp-content\/uploads\/sites\/4\/2025\/10\/PO-Ferries-1-1024x683.png 1024w, https:\/\/hull-rotterdam.com\/fr\/wp-content\/uploads\/sites\/4\/2025\/10\/PO-Ferries-1-768x512.png 768w, https:\/\/hull-rotterdam.com\/fr\/wp-content\/uploads\/sites\/4\/2025\/10\/PO-Ferries-1.png 1200w\" sizes=\"(max-width: 300px) 100vw, 300px\" \/>\n\t\t\t<\/div>\n\t\t\t\t<figcaption class='wp-caption-text gallery-caption' id='gallery-1-1532'>\n\t\t\t\tP&#038;O Ferries logo seen from the deck aboard the vessel\n\t\t\t\t<\/figcaption><\/figure>\n\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-7aed94c8 e-con-full e-flex e-con e-child\" data-id=\"7aed94c8\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-3d44e80f elementor-position-inline-start elementor-view-default elementor-mobile-position-block-start elementor-widget elementor-widget-icon-box\" data-id=\"3d44e80f\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"icon-box.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-icon-box-wrapper\">\n\n\t\t\t\t\t\t<div class=\"elementor-icon-box-icon\">\n\t\t\t\t<a href=\"https:\/\/hull-rotterdam.com\/fr\/horaires\/\" class=\"elementor-icon\" tabindex=\"-1\" aria-label=\"Horaires de travers\u00e9e\">\n\t\t\t\t<svg aria-hidden=\"true\" class=\"e-font-icon-svg e-far-arrow-alt-circle-right\" viewBox=\"0 0 512 512\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M504 256C504 119 393 8 256 8S8 119 8 256s111 248 248 248 248-111 248-248zm-448 0c0-110.5 89.5-200 200-200s200 89.5 200 200-89.5 200-200 200S56 366.5 56 256zm72 20v-40c0-6.6 5.4-12 12-12h116v-67c0-10.7 12.9-16 20.5-8.5l99 99c4.7 4.7 4.7 12.3 0 17l-99 99c-7.6 7.6-20.5 2.2-20.5-8.5v-67H140c-6.6 0-12-5.4-12-12z\"><\/path><\/svg>\t\t\t\t<\/a>\n\t\t\t<\/div>\n\t\t\t\n\t\t\t\t\t\t<div class=\"elementor-icon-box-content\">\n\n\t\t\t\t\t\t\t\t\t<h4 class=\"elementor-icon-box-title\">\n\t\t\t\t\t\t<a href=\"https:\/\/hull-rotterdam.com\/fr\/horaires\/\" >\n\t\t\t\t\t\t\tHoraires de travers\u00e9e\t\t\t\t\t\t<\/a>\n\t\t\t\t\t<\/h4>\n\t\t\t\t\n\t\t\t\t\t\t\t\t\t<p class=\"elementor-icon-box-description\">\n\t\t\t\t\t\tD\u00e9couvrez les heures de d\u00e9part et d\u2019arriv\u00e9e des ferries reliant Rotterdam \u00e0 Hull.\t\t\t\t\t<\/p>\n\t\t\t\t\n\t\t\t<\/div>\n\t\t\t\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-3b1d40e elementor-position-inline-start elementor-view-default elementor-mobile-position-block-start elementor-widget elementor-widget-icon-box\" data-id=\"3b1d40e\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"icon-box.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-icon-box-wrapper\">\n\n\t\t\t\t\t\t<div class=\"elementor-icon-box-icon\">\n\t\t\t\t<a href=\"https:\/\/hull-rotterdam.com\/fr\/meteo\/\" class=\"elementor-icon\" tabindex=\"-1\" aria-label=\"Conditions m\u00e9t\u00e9orologiques avant le d\u00e9part\">\n\t\t\t\t<svg aria-hidden=\"true\" class=\"e-font-icon-svg e-far-arrow-alt-circle-right\" viewBox=\"0 0 512 512\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M504 256C504 119 393 8 256 8S8 119 8 256s111 248 248 248 248-111 248-248zm-448 0c0-110.5 89.5-200 200-200s200 89.5 200 200-89.5 200-200 200S56 366.5 56 256zm72 20v-40c0-6.6 5.4-12 12-12h116v-67c0-10.7 12.9-16 20.5-8.5l99 99c4.7 4.7 4.7 12.3 0 17l-99 99c-7.6 7.6-20.5 2.2-20.5-8.5v-67H140c-6.6 0-12-5.4-12-12z\"><\/path><\/svg>\t\t\t\t<\/a>\n\t\t\t<\/div>\n\t\t\t\n\t\t\t\t\t\t<div class=\"elementor-icon-box-content\">\n\n\t\t\t\t\t\t\t\t\t<h4 class=\"elementor-icon-box-title\">\n\t\t\t\t\t\t<a href=\"https:\/\/hull-rotterdam.com\/fr\/meteo\/\" >\n\t\t\t\t\t\t\tConditions m\u00e9t\u00e9orologiques avant le d\u00e9part\t\t\t\t\t\t<\/a>\n\t\t\t\t\t<\/h4>\n\t\t\t\t\n\t\t\t\t\t\t\t\t\t<p class=\"elementor-icon-box-description\">\n\t\t\t\t\t\tLunettes de soleil ou imperm\u00e9able ? Consultez la m\u00e9t\u00e9o pr\u00e9vue pour votre travers\u00e9e.\t\t\t\t\t<\/p>\n\t\t\t\t\n\t\t\t<\/div>\n\t\t\t\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>Horaires Rotterdam Hull Consultez les heures de d\u00e9part des ferries reliant Rotterdam \u00e0 Hull dans notre horaire. Horaire des travers\u00e9es [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"inline_featured_image":false,"site-sidebar-layout":"no-sidebar","site-content-layout":"","ast-site-content-layout":"full-width-container","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"disabled","ast-breadcrumbs-content":"","ast-featured-img":"disabled","footer-sml-layout":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"default","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":""},"class_list":["post-1641","page","type-page","status-publish","hentry"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.4 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Horaires du ferry Rotterdam\u2013Hull<\/title>\n<meta name=\"description\" content=\"Consulte les horaires \u00e0 jour du ferry entre Rotterdam et Hull, d\u00e9part le soir, arriv\u00e9e le matin.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/hull-rotterdam.com\/fr\/horaires\/\" \/>\n<meta property=\"og:locale\" content=\"fr_FR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Horaires du ferry Rotterdam\u2013Hull\" \/>\n<meta property=\"og:description\" content=\"Consulte les horaires \u00e0 jour du ferry entre Rotterdam et Hull, d\u00e9part le soir, arriv\u00e9e le matin.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/hull-rotterdam.com\/fr\/horaires\/\" \/>\n<meta property=\"og:site_name\" content=\"Rotterdam Hull FR\" \/>\n<meta property=\"article:modified_time\" content=\"2025-11-17T15:00:27+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/hull-rotterdam.com\/fr\/wp-content\/uploads\/sites\/4\/2025\/10\/Pride-of-Rotterdam-1.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1200\" \/>\n\t<meta property=\"og:image:height\" content=\"800\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Dur\u00e9e de lecture estim\u00e9e\" \/>\n\t<meta name=\"twitter:data1\" content=\"4 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/hull-rotterdam.com\\\/fr\\\/horaires\\\/\",\"url\":\"https:\\\/\\\/hull-rotterdam.com\\\/fr\\\/horaires\\\/\",\"name\":\"Horaires du ferry Rotterdam\u2013Hull\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/hull-rotterdam.com\\\/fr\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/hull-rotterdam.com\\\/fr\\\/horaires\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/hull-rotterdam.com\\\/fr\\\/horaires\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/hull-rotterdam.com\\\/fr\\\/wp-content\\\/uploads\\\/sites\\\/4\\\/2025\\\/10\\\/Pride-of-Rotterdam-1-1024x683.png\",\"datePublished\":\"2025-10-28T14:19:30+00:00\",\"dateModified\":\"2025-11-17T15:00:27+00:00\",\"description\":\"Consulte les horaires \u00e0 jour du ferry entre Rotterdam et Hull, d\u00e9part le soir, arriv\u00e9e le matin.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/hull-rotterdam.com\\\/fr\\\/horaires\\\/#breadcrumb\"},\"inLanguage\":\"fr-FR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/hull-rotterdam.com\\\/fr\\\/horaires\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"fr-FR\",\"@id\":\"https:\\\/\\\/hull-rotterdam.com\\\/fr\\\/horaires\\\/#primaryimage\",\"url\":\"https:\\\/\\\/hull-rotterdam.com\\\/fr\\\/wp-content\\\/uploads\\\/sites\\\/4\\\/2025\\\/10\\\/Pride-of-Rotterdam-1.png\",\"contentUrl\":\"https:\\\/\\\/hull-rotterdam.com\\\/fr\\\/wp-content\\\/uploads\\\/sites\\\/4\\\/2025\\\/10\\\/Pride-of-Rotterdam-1.png\",\"width\":1200,\"height\":800,\"caption\":\"The Pride of Rotterdam is one of two sister ships operating the overnight P&O Ferries route between Hull in the UK and Rotterdam Europoort in the Netherlands.\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/hull-rotterdam.com\\\/fr\\\/horaires\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Rotterdam - Hull\",\"item\":\"https:\\\/\\\/hull-rotterdam.com\\\/fr\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Horaires\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/hull-rotterdam.com\\\/fr\\\/#website\",\"url\":\"https:\\\/\\\/hull-rotterdam.com\\\/fr\\\/\",\"name\":\"Rotterdam Hull FR\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\\\/\\\/hull-rotterdam.com\\\/fr\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/hull-rotterdam.com\\\/fr\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"fr-FR\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/hull-rotterdam.com\\\/fr\\\/#organization\",\"name\":\"Hull Rotterdam\",\"url\":\"https:\\\/\\\/hull-rotterdam.com\\\/fr\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"fr-FR\",\"@id\":\"https:\\\/\\\/hull-rotterdam.com\\\/fr\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/hull-rotterdam.com\\\/fr\\\/wp-content\\\/uploads\\\/sites\\\/4\\\/2025\\\/11\\\/Rotterdam-Hull-Social.png\",\"contentUrl\":\"https:\\\/\\\/hull-rotterdam.com\\\/fr\\\/wp-content\\\/uploads\\\/sites\\\/4\\\/2025\\\/11\\\/Rotterdam-Hull-Social.png\",\"width\":1200,\"height\":675,\"caption\":\"Hull Rotterdam\"},\"image\":{\"@id\":\"https:\\\/\\\/hull-rotterdam.com\\\/fr\\\/#\\\/schema\\\/logo\\\/image\\\/\"}}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Horaires du ferry Rotterdam\u2013Hull","description":"Consulte les horaires \u00e0 jour du ferry entre Rotterdam et Hull, d\u00e9part le soir, arriv\u00e9e le matin.","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:\/\/hull-rotterdam.com\/fr\/horaires\/","og_locale":"fr_FR","og_type":"article","og_title":"Horaires du ferry Rotterdam\u2013Hull","og_description":"Consulte les horaires \u00e0 jour du ferry entre Rotterdam et Hull, d\u00e9part le soir, arriv\u00e9e le matin.","og_url":"https:\/\/hull-rotterdam.com\/fr\/horaires\/","og_site_name":"Rotterdam Hull FR","article_modified_time":"2025-11-17T15:00:27+00:00","og_image":[{"width":1200,"height":800,"url":"https:\/\/hull-rotterdam.com\/fr\/wp-content\/uploads\/sites\/4\/2025\/10\/Pride-of-Rotterdam-1.png","type":"image\/png"}],"twitter_card":"summary_large_image","twitter_misc":{"Dur\u00e9e de lecture estim\u00e9e":"4 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/hull-rotterdam.com\/fr\/horaires\/","url":"https:\/\/hull-rotterdam.com\/fr\/horaires\/","name":"Horaires du ferry Rotterdam\u2013Hull","isPartOf":{"@id":"https:\/\/hull-rotterdam.com\/fr\/#website"},"primaryImageOfPage":{"@id":"https:\/\/hull-rotterdam.com\/fr\/horaires\/#primaryimage"},"image":{"@id":"https:\/\/hull-rotterdam.com\/fr\/horaires\/#primaryimage"},"thumbnailUrl":"https:\/\/hull-rotterdam.com\/fr\/wp-content\/uploads\/sites\/4\/2025\/10\/Pride-of-Rotterdam-1-1024x683.png","datePublished":"2025-10-28T14:19:30+00:00","dateModified":"2025-11-17T15:00:27+00:00","description":"Consulte les horaires \u00e0 jour du ferry entre Rotterdam et Hull, d\u00e9part le soir, arriv\u00e9e le matin.","breadcrumb":{"@id":"https:\/\/hull-rotterdam.com\/fr\/horaires\/#breadcrumb"},"inLanguage":"fr-FR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/hull-rotterdam.com\/fr\/horaires\/"]}]},{"@type":"ImageObject","inLanguage":"fr-FR","@id":"https:\/\/hull-rotterdam.com\/fr\/horaires\/#primaryimage","url":"https:\/\/hull-rotterdam.com\/fr\/wp-content\/uploads\/sites\/4\/2025\/10\/Pride-of-Rotterdam-1.png","contentUrl":"https:\/\/hull-rotterdam.com\/fr\/wp-content\/uploads\/sites\/4\/2025\/10\/Pride-of-Rotterdam-1.png","width":1200,"height":800,"caption":"The Pride of Rotterdam is one of two sister ships operating the overnight P&O Ferries route between Hull in the UK and Rotterdam Europoort in the Netherlands."},{"@type":"BreadcrumbList","@id":"https:\/\/hull-rotterdam.com\/fr\/horaires\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Rotterdam - Hull","item":"https:\/\/hull-rotterdam.com\/fr\/"},{"@type":"ListItem","position":2,"name":"Horaires"}]},{"@type":"WebSite","@id":"https:\/\/hull-rotterdam.com\/fr\/#website","url":"https:\/\/hull-rotterdam.com\/fr\/","name":"Rotterdam Hull FR","description":"","publisher":{"@id":"https:\/\/hull-rotterdam.com\/fr\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/hull-rotterdam.com\/fr\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"fr-FR"},{"@type":"Organization","@id":"https:\/\/hull-rotterdam.com\/fr\/#organization","name":"Hull Rotterdam","url":"https:\/\/hull-rotterdam.com\/fr\/","logo":{"@type":"ImageObject","inLanguage":"fr-FR","@id":"https:\/\/hull-rotterdam.com\/fr\/#\/schema\/logo\/image\/","url":"https:\/\/hull-rotterdam.com\/fr\/wp-content\/uploads\/sites\/4\/2025\/11\/Rotterdam-Hull-Social.png","contentUrl":"https:\/\/hull-rotterdam.com\/fr\/wp-content\/uploads\/sites\/4\/2025\/11\/Rotterdam-Hull-Social.png","width":1200,"height":675,"caption":"Hull Rotterdam"},"image":{"@id":"https:\/\/hull-rotterdam.com\/fr\/#\/schema\/logo\/image\/"}}]}},"_links":{"self":[{"href":"https:\/\/hull-rotterdam.com\/fr\/wp-json\/wp\/v2\/pages\/1641","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/hull-rotterdam.com\/fr\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/hull-rotterdam.com\/fr\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/hull-rotterdam.com\/fr\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/hull-rotterdam.com\/fr\/wp-json\/wp\/v2\/comments?post=1641"}],"version-history":[{"count":76,"href":"https:\/\/hull-rotterdam.com\/fr\/wp-json\/wp\/v2\/pages\/1641\/revisions"}],"predecessor-version":[{"id":4130,"href":"https:\/\/hull-rotterdam.com\/fr\/wp-json\/wp\/v2\/pages\/1641\/revisions\/4130"}],"wp:attachment":[{"href":"https:\/\/hull-rotterdam.com\/fr\/wp-json\/wp\/v2\/media?parent=1641"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}