{"id":1641,"date":"2025-10-28T14:19:30","date_gmt":"2025-10-28T14:19:30","guid":{"rendered":"https:\/\/hull-rotterdam.com\/uk\/?page_id=1641"},"modified":"2026-10-12T12:21:21","modified_gmt":"2026-10-12T11:21:21","slug":"timetable","status":"publish","type":"page","link":"https:\/\/hull-rotterdam.com\/uk\/timetable\/","title":{"rendered":"Hull to Rotterdam Timetable"},"content":{"rendered":"\n<!-- hr: opmaak staat in de plugin Hull-Rotterdam Styles -->\n\n\n\n<div class=\"wp-block-group hr-page hr3 hr3-sub hr3-long is-layout-flow wp-block-group-is-layout-flow\">\n<div class=\"wp-block-group hr-hero-sub hr3-hero-photo is-layout-flow wp-block-group-is-layout-flow\">\n<figure class=\"wp-block-image size-full hr3-hero-bg\"><img loading=\"lazy\" decoding=\"async\" width=\"1200\" height=\"800\" src=\"https:\/\/hull-rotterdam.com\/uk\/wp-content\/uploads\/sites\/2\/2025\/10\/ferry-p-and-o-hull-rotterdam.jpg\" alt=\"\" class=\"wp-image-1460\" srcset=\"https:\/\/hull-rotterdam.com\/uk\/wp-content\/uploads\/sites\/2\/2025\/10\/ferry-p-and-o-hull-rotterdam.jpg 1200w, https:\/\/hull-rotterdam.com\/uk\/wp-content\/uploads\/sites\/2\/2025\/10\/ferry-p-and-o-hull-rotterdam-300x200.jpg 300w, https:\/\/hull-rotterdam.com\/uk\/wp-content\/uploads\/sites\/2\/2025\/10\/ferry-p-and-o-hull-rotterdam-1024x683.jpg 1024w, https:\/\/hull-rotterdam.com\/uk\/wp-content\/uploads\/sites\/2\/2025\/10\/ferry-p-and-o-hull-rotterdam-768x512.jpg 768w\" sizes=\"auto, (max-width: 1200px) 100vw, 1200px\" \/><\/figure>\n\n\n\n<div class=\"wp-block-columns hr-hero-sub-cols hr-split-mrev is-layout-flex wp-container-core-columns-is-layout-7387b849 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column hr-hero-sub-text is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:50%\">\n<div class=\"wp-block-group hr-crumbs is-layout-flow wp-block-group-is-layout-flow\"><span><span><a href=\"https:\/\/hull-rotterdam.com\/uk\/\">Hull to Rotterdam ferry<\/a><\/span><\/span>\n<\/div>\n\n\n\n<h1 class=\"wp-block-heading\">Hull to Rotterdam ferry times<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">The timetable for the overnight ferry from Kingston upon Hull to Rotterdam (Europoort): it sails every evening, at 20:30 on weekdays and 20:00 at weekends. The times hardly change, the fares do, so <a href=\"https:\/\/hull-rotterdam.com\/uk\/go\/button\" target=\"_blank\" rel=\"nofollow sponsored noopener\" style=\"color:#ffffff\">check the price for your sailing date<\/a>.<\/p>\n<\/div>\n<\/div>\n<\/div>\n\n\n\n<div class=\"wp-block-group hr3-body is-layout-flow wp-block-group-is-layout-flow\">\n<div class=\"wp-block-columns hr3-grid is-layout-flex wp-container-core-columns-is-layout-7387b849 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column hr3-rail hr3-rail-left is-layout-flow wp-block-column-is-layout-flow\">\n<nav class=\"hr-toc\" aria-label=\"On this page\"><p class=\"hr-toc-title\">On this page<\/p><ul><\/ul><\/nav>\n\n\n\n<div class=\"wp-block-group hr3-note hr3-note-facts is-layout-flow wp-block-group-is-layout-flow\">\n<p class=\"hr3-label wp-block-paragraph\">The crossing<\/p>\n\n\n\n<ul class=\"wp-block-list hr3-mini\">\n<li><strong>Departure<\/strong> 20:30<\/li>\n\n\n\n<li><strong>Arrival<\/strong> around 08:45<\/li>\n\n\n\n<li><strong>Check-in<\/strong> closes 90 minutes before departure<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\"><a href=\"https:\/\/hull-rotterdam.com\/uk\/timetable\/\">Full timetable<\/a><\/p>\n<\/div>\n<\/div>\n\n\n\n<div class=\"wp-block-column hr3-main is-layout-flow wp-block-column-is-layout-flow\">\n<div class=\"wp-block-group hr-section hr-flat hr-t50 hr-b50 is-layout-flow wp-block-group-is-layout-flow\">\n<p class=\"hr-eyebrow wp-block-paragraph\">Ferry timetable from Hull to Rotterdam<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Departure &amp; arrival times<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">View the current sailing schedule for the <a href=\"https:\/\/hull-rotterdam.com\/uk\/\">Hull to Rotterdam ferry<\/a> for the next 14 days below. Please note: always <a href=\"https:\/\/hull-rotterdam.com\/uk\/go\/live-updates\" rel=\"noopener\" target=\"_blank\">check the live updates<\/a> before you depart. The <a href=\"https:\/\/hull-rotterdam.com\/uk\/weather-forecast\/\">weather forecast<\/a> can affect ferry arrival and departure times.<\/p>\n\n\n<div class=\"tp-wrap\" data-config=\"{&quot;rest&quot;:&quot;https:\\\/\\\/hull-rotterdam.com\\\/uk\\\/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 to Rotterdam&quot;},&quot;opFilter&quot;:[&quot;7&quot;],&quot;labels&quot;:{&quot;ui_date&quot;:&quot;Date&quot;,&quot;ui_days&quot;:&quot;Days&quot;,&quot;ui_button&quot;:&quot;Show sailings&quot;,&quot;status_idle&quot;:&quot;Pick a date and click Show sailings&quot;,&quot;status_loading&quot;:&quot;Loading...&quot;,&quot;status_empty&quot;:&quot;No sailings found&quot;,&quot;status_found&quot;:&quot;%d sailings found&quot;,&quot;th_date&quot;:&quot;Date&quot;,&quot;th_dep&quot;:&quot;Departure&quot;,&quot;th_arr&quot;:&quot;Arrival&quot;,&quot;th_dur&quot;:&quot;Duration&quot;,&quot;th_ship&quot;:&quot;Ship&quot;,&quot;th_op&quot;:&quot;Operator&quot;,&quot;th_route&quot;:&quot;Route&quot;,&quot;wd_sun&quot;:&quot;SUN&quot;,&quot;wd_mon&quot;:&quot;MON&quot;,&quot;wd_tue&quot;:&quot;TUE&quot;,&quot;wd_wed&quot;:&quot;WED&quot;,&quot;wd_thu&quot;:&quot;THU&quot;,&quot;wd_fri&quot;:&quot;FRI&quot;,&quot;wd_sat&quot;:&quot;SAT&quot;,&quot;summary_footer_one&quot;:&quot;\\u00bb Check all %s departures on our timetable&quot;,&quot;summary_footer_two&quot;:&quot;\\u00bb Check more %1$s and %2$s departures on our timetable&quot;,&quot;summary_footer_generic&quot;:&quot;Check our timetable for more sailings&quot;,&quot;more_link&quot;:&quot;More sailings&quot;},&quot;showLogo&quot;:true,&quot;title&quot;:&quot;Sailings from Hull to Rotterdam&quot;,&quot;shipMap&quot;:[],&quot;shipLinks&quot;:{&quot;pride of hull&quot;:&quot;https:\\\/\\\/hull-rotterdam.com\\\/uk\\\/ferries\\\/pride-of-hull\\\/&quot;,&quot;pride of rotterdam&quot;:&quot;https:\\\/\\\/hull-rotterdam.com\\\/uk\\\/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\">Days<\/label><br>\n      <select id=\"tp-range-ops\" class=\"tp-range\" aria-label=\"Days\">\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\">Show sailings<\/button><\/div>\n  <\/div>\n\n      <h3 style=\"margin:8px 0 12px;color:#0f172a;\">Sailings from Hull to Rotterdam<\/h3>\n  \n  <div id=\"tp-status-ops\" class=\"tp-muted\" aria-live=\"polite\">Pick a date and click Show sailings<\/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\">Loading...<\/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\n<\/div>\n\n\n\n<div class=\"wp-block-group hr-section hr-wide hr-t50 hr-b50 is-layout-flow wp-block-group-is-layout-flow\">\n<div class=\"wp-block-columns hr-split is-layout-flex wp-container-core-columns-is-layout-7387b849 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column hr-panel-media is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:50%\">\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1200\" height=\"800\" src=\"https:\/\/hull-rotterdam.com\/wp-content\/uploads\/sites\/2\/2025\/10\/PO-check-in-Hull-Europoort.png\" alt=\"P&amp;O Ferries check-in area at Hull and Europoort terminals\" class=\"wp-image-1863\" srcset=\"https:\/\/hull-rotterdam.com\/uk\/wp-content\/uploads\/sites\/2\/2025\/10\/PO-check-in-Hull-Europoort.png 1200w, https:\/\/hull-rotterdam.com\/uk\/wp-content\/uploads\/sites\/2\/2025\/10\/PO-check-in-Hull-Europoort-300x200.png 300w, https:\/\/hull-rotterdam.com\/uk\/wp-content\/uploads\/sites\/2\/2025\/10\/PO-check-in-Hull-Europoort-1024x683.png 1024w, https:\/\/hull-rotterdam.com\/uk\/wp-content\/uploads\/sites\/2\/2025\/10\/PO-check-in-Hull-Europoort-768x512.png 768w\" sizes=\"auto, (max-width: 1200px) 100vw, 1200px\" \/><\/figure>\n<\/div>\n\n\n\n<div class=\"wp-block-column hr-panel-blue is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:50%\">\n<h3 class=\"wp-block-heading\">Before you go to the port of Hull<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>It&#8217;s smart (and often cheaper) to <a href=\"https:\/\/hull-rotterdam.com\/uk\/go\/button\" rel=\"noopener\" target=\"_blank\">buy your tickets in advance<\/a>. This guarantees you&#8217;ll be able to drive on board and often speeds up check-in.<\/li>\n\n\n\n<li>Make sure you&#8217;re checked in at least 90 minutes before departure: P&amp;O Ferries closes check-in 90 minutes before sailing, also for passengers without a vehicle.<\/li>\n\n\n\n<li>Depart from home in plenty of time. Be aware of increased traffic and potential changes to ferry departure times.<\/li>\n<\/ul>\n<\/div>\n<\/div>\n<\/div>\n\n\n\n<div class=\"wp-block-group hr-section hr-t50 hr-b50 is-layout-flow wp-block-group-is-layout-flow\">\n<div class=\"wp-block-columns hr-cols hr-cols-66-33 hr-cols-center is-layout-flex wp-container-core-columns-is-layout-7387b849 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:66.67%\">\n<p class=\"hr-eyebrow wp-block-paragraph\">P&amp;O Ferries Hull Rotterdam Timetable<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">About the Hull Rotterdam departures &amp; arrivals<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">One ferry company operates the route between Hull and Rotterdam: P&amp;O Ferries. This operator operates two boats between the ports: the <a href=\"https:\/\/hull-rotterdam.com\/uk\/ferries\/pride-of-hull\/\">Pride of Hull<\/a> and the <a href=\"https:\/\/hull-rotterdam.com\/uk\/ferries\/pride-of-rotterdam\/\">Pride of Rotterdam<\/a>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">From Monday to Friday, the ferry departs from the Port of Hull at 8:30 PM, arriving in the <a href=\"https:\/\/hull-rotterdam.com\/uk\/port-of-rotterdam\/\">Port of Rotterdam<\/a> at approximately 8:45 AM. On weekends, from Saturday to Sunday, the ferry departs at 8:00 PM, arriving in the Netherlands around 9:00 AM.<\/p>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:33.33%\">\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"683\" src=\"https:\/\/hull-rotterdam.com\/uk\/wp-content\/uploads\/sites\/2\/2025\/10\/Pride-of-Rotterdam-1-1024x683.png\" alt=\"Pride of Rotterdam ferry operated by P&amp;O Ferries\" class=\"wp-image-1857\" srcset=\"https:\/\/hull-rotterdam.com\/uk\/wp-content\/uploads\/sites\/2\/2025\/10\/Pride-of-Rotterdam-1-1024x683.png 1024w, https:\/\/hull-rotterdam.com\/uk\/wp-content\/uploads\/sites\/2\/2025\/10\/Pride-of-Rotterdam-1-300x200.png 300w, https:\/\/hull-rotterdam.com\/uk\/wp-content\/uploads\/sites\/2\/2025\/10\/Pride-of-Rotterdam-1-768x512.png 768w, https:\/\/hull-rotterdam.com\/uk\/wp-content\/uploads\/sites\/2\/2025\/10\/Pride-of-Rotterdam-1.png 1200w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n<\/div>\n<\/div>\n<\/div>\n\n\n\n<div class=\"wp-block-group hr-section hr-flat hr-t50 hr-b50 is-layout-flow wp-block-group-is-layout-flow\">\n<p class=\"hr-eyebrow wp-block-paragraph\">Departures from Europoort (the Port of Rotterdam)<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Return trip: Rotterdam to Hull timetable<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Check below for the ferry departure times from the port of Rotterdam back to the port of Hull.<\/p>\n\n\n<div class=\"tp-wrap\" data-config=\"{&quot;rest&quot;:&quot;https:\\\/\\\/hull-rotterdam.com\\\/uk\\\/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 to Hull&quot;},&quot;opFilter&quot;:[&quot;7&quot;],&quot;labels&quot;:{&quot;ui_date&quot;:&quot;Date&quot;,&quot;ui_days&quot;:&quot;Days&quot;,&quot;ui_button&quot;:&quot;Show sailings&quot;,&quot;status_idle&quot;:&quot;Pick a date and click Show sailings&quot;,&quot;status_loading&quot;:&quot;Loading...&quot;,&quot;status_empty&quot;:&quot;No sailings found&quot;,&quot;status_found&quot;:&quot;%d sailings found&quot;,&quot;th_date&quot;:&quot;Date&quot;,&quot;th_dep&quot;:&quot;Departure&quot;,&quot;th_arr&quot;:&quot;Arrival&quot;,&quot;th_dur&quot;:&quot;Duration&quot;,&quot;th_ship&quot;:&quot;Ship&quot;,&quot;th_op&quot;:&quot;Operator&quot;,&quot;th_route&quot;:&quot;Route&quot;,&quot;wd_sun&quot;:&quot;SUN&quot;,&quot;wd_mon&quot;:&quot;MON&quot;,&quot;wd_tue&quot;:&quot;TUE&quot;,&quot;wd_wed&quot;:&quot;WED&quot;,&quot;wd_thu&quot;:&quot;THU&quot;,&quot;wd_fri&quot;:&quot;FRI&quot;,&quot;wd_sat&quot;:&quot;SAT&quot;,&quot;summary_footer_one&quot;:&quot;\\u00bb Check all %s departures on our timetable&quot;,&quot;summary_footer_two&quot;:&quot;\\u00bb Check more %1$s and %2$s departures on our timetable&quot;,&quot;summary_footer_generic&quot;:&quot;Check our timetable for more sailings&quot;,&quot;more_link&quot;:&quot;More sailings&quot;},&quot;showLogo&quot;:true,&quot;title&quot;:&quot;Sailings from Rotterdam to Hull&quot;,&quot;shipMap&quot;:[],&quot;shipLinks&quot;:{&quot;pride of hull&quot;:&quot;https:\\\/\\\/hull-rotterdam.com\\\/uk\\\/ferries\\\/pride-of-hull\\\/&quot;,&quot;pride of rotterdam&quot;:&quot;https:\\\/\\\/hull-rotterdam.com\\\/uk\\\/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\">Days<\/label><br>\n      <select id=\"tp-range-ops\" class=\"tp-range\" aria-label=\"Days\">\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\">Show sailings<\/button><\/div>\n  <\/div>\n\n      <h3 style=\"margin:8px 0 12px;color:#0f172a;\">Sailings from Rotterdam to Hull<\/h3>\n  \n  <div id=\"tp-status-ops\" class=\"tp-muted\" aria-live=\"polite\">Pick a date and click Show sailings<\/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\">Loading...<\/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\n<\/div>\n\n\n\n<div class=\"wp-block-group hr-section hr-wide is-layout-flow wp-block-group-is-layout-flow\">\n<div class=\"wp-block-columns hr-split is-layout-flex wp-container-core-columns-is-layout-7387b849 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column hr-panel-blue is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:50%\">\n<p class=\"hr-title wp-block-paragraph\">Complete your trip to the Netherlands!<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">After arriving by ferry at Europoort, many travellers take the opportunity to explore nearby destinations. Rotterdam is about 30 minutes away and offers museums, modern architecture, and harbourside areas to visit.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The Hague and Amsterdam are also within easy reach. Whether you plan a short stop or a full day out, there are plenty of places and activities close to the ferry terminal worth discovering. Check them out!  \u27a4<\/p>\n<\/div>\n\n\n\n<div class=\"wp-block-column hr-panel-tint is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:50%\">\n<figure class=\"wp-block-gallery has-nested-images columns-3 is-cropped hr-trio wp-block-gallery-1 is-layout-flex wp-block-gallery-is-layout-flex\">\n<figure class=\"wp-block-image size-medium\"><img loading=\"lazy\" decoding=\"async\" width=\"300\" height=\"200\" data-id=\"3146\" src=\"https:\/\/hull-rotterdam.com\/uk\/wp-content\/uploads\/sites\/2\/2025\/11\/Direction-Amsterdam-300x200.jpg\" alt=\"\" class=\"wp-image-3146\" srcset=\"https:\/\/hull-rotterdam.com\/uk\/wp-content\/uploads\/sites\/2\/2025\/11\/Direction-Amsterdam-300x200.jpg 300w, https:\/\/hull-rotterdam.com\/uk\/wp-content\/uploads\/sites\/2\/2025\/11\/Direction-Amsterdam-1024x683.jpg 1024w, https:\/\/hull-rotterdam.com\/uk\/wp-content\/uploads\/sites\/2\/2025\/11\/Direction-Amsterdam-768x512.jpg 768w, https:\/\/hull-rotterdam.com\/uk\/wp-content\/uploads\/sites\/2\/2025\/11\/Direction-Amsterdam.jpg 1200w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-medium\"><img loading=\"lazy\" decoding=\"async\" width=\"300\" height=\"200\" data-id=\"1536\" src=\"https:\/\/hull-rotterdam.com\/uk\/wp-content\/uploads\/sites\/2\/2025\/10\/ferry-to-duinrell-300x200.jpg\" alt=\"Duinrell, a family park with rides and water attractions, is an easy trip from Rotterdam for visitors arriving by ferry.\" class=\"wp-image-1536\" srcset=\"https:\/\/hull-rotterdam.com\/uk\/wp-content\/uploads\/sites\/2\/2025\/10\/ferry-to-duinrell-300x200.jpg 300w, https:\/\/hull-rotterdam.com\/uk\/wp-content\/uploads\/sites\/2\/2025\/10\/ferry-to-duinrell-1024x683.jpg 1024w, https:\/\/hull-rotterdam.com\/uk\/wp-content\/uploads\/sites\/2\/2025\/10\/ferry-to-duinrell-768x512.jpg 768w, https:\/\/hull-rotterdam.com\/uk\/wp-content\/uploads\/sites\/2\/2025\/10\/ferry-to-duinrell.jpg 1200w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-medium\"><img loading=\"lazy\" decoding=\"async\" width=\"300\" height=\"200\" data-id=\"1680\" src=\"https:\/\/hull-rotterdam.com\/uk\/wp-content\/uploads\/sites\/2\/2025\/10\/keukenhof-300x200.jpg\" alt=\"With the ferry to can easily reach the Keukenhof\" class=\"wp-image-1680\" srcset=\"https:\/\/hull-rotterdam.com\/uk\/wp-content\/uploads\/sites\/2\/2025\/10\/keukenhof-300x200.jpg 300w, https:\/\/hull-rotterdam.com\/uk\/wp-content\/uploads\/sites\/2\/2025\/10\/keukenhof-1024x683.jpg 1024w, https:\/\/hull-rotterdam.com\/uk\/wp-content\/uploads\/sites\/2\/2025\/10\/keukenhof-768x512.jpg 768w, https:\/\/hull-rotterdam.com\/uk\/wp-content\/uploads\/sites\/2\/2025\/10\/keukenhof.jpg 1200w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/figure>\n<\/figure>\n\n\n\n<div class=\"wp-block-group hr-iconbox hr-ico-arrow is-layout-flow wp-block-group-is-layout-flow\">\n<h4 class=\"wp-block-heading\"><a href=\"https:\/\/hull-rotterdam.com\/uk\/destination\/\">Destinations<\/a><\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">Traveling further after arriving in Rotterdam? Discover useful travel guides to destinations such as <a href=\"https:\/\/hull-rotterdam.com\/uk\/destination\/rotterdam\/\">Rotterdam<\/a>, <a href=\"https:\/\/hull-rotterdam.com\/uk\/destination\/amsterdam\/\">Amsterdam<\/a>, or <a href=\"https:\/\/hull-rotterdam.com\/uk\/destination\/germany\/\">Germany<\/a>.<\/p>\n<\/div>\n\n\n\n<div class=\"wp-block-group hr-iconbox hr-ico-arrow is-layout-flow wp-block-group-is-layout-flow\">\n<h4 class=\"wp-block-heading\"><a href=\"https:\/\/hull-rotterdam.com\/uk\/things-to-do\/\">Things to do near Rotterdam<\/a><\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">Looking for something fun to do near the port? Discover attractions just 60 minutes&#8217; drive from the port of Rotterdam.<\/p>\n<\/div>\n\n\n\n<div class=\"wp-block-group hr-iconbox hr-ico-arrow is-layout-flow wp-block-group-is-layout-flow\">\n<h4 class=\"wp-block-heading\"><a href=\"https:\/\/hull-rotterdam.com\/uk\/accommodation\/\">Accommodations<\/a><\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">Haven\u2019t booked your accommodations near Rotterdam yet? Check out our tips for a great stay.<\/p>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n\n\n\n<div class=\"wp-block-group hr-section hr-t0 hr-b0 is-layout-flow wp-block-group-is-layout-flow\">\n<div class=\"wp-block-columns hr-cols hr-cols-33-66 is-layout-flex wp-container-core-columns-is-layout-7387b849 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:33.33%\">\n<p class=\"hr-eyebrow wp-block-paragraph\">FAQ Timetable<\/p>\n\n\n\n<p class=\"hr-title wp-block-paragraph\">Questions about our timetable<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><span style=\"font-size: 16px;\">Do you have a question about the timetable that isn\u2019t listed among the frequently asked questions? Then <\/span><a href=\"https:\/\/hull-rotterdam.com\/uk\/contact\/\" style=\"font-size: 16px; background-color: #ffffff;\">get in touch with us<\/a><span style=\"font-size: 16px;\">.<\/span><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Questions and answers we have gotten over time \u2b9e<\/p>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:66.67%\">\n<div class=\"wp-block-group hr-faq is-layout-flow wp-block-group-is-layout-flow\">\n<details class=\"wp-block-details is-layout-flow wp-block-details-is-layout-flow\" open><summary>Does the check-in closing time differ for passengers with a car, motorbike, or those travelling on foot?<\/summary>\n<p class=\"wp-block-paragraph\">No. Vehicle passengers (<a href=\"https:\/\/hull-rotterdam.com\/uk\/ferry-with-car\/\">cars<\/a>, <a href=\"https:\/\/hull-rotterdam.com\/uk\/ferry-with-motorcycle\/\">motorbikes<\/a>, <a href=\"https:\/\/hull-rotterdam.com\/uk\/ferry-with-caravan\/\">campervans<\/a>) and foot passengers all have the same deadline: P&amp;O Ferries closes check-in <strong>90 minutes before departure<\/strong>.<\/p>\n<\/details>\n\n\n\n<details class=\"wp-block-details is-layout-flow wp-block-details-is-layout-flow\"><summary>Are sailing times ever adjusted slightly to match tidal conditions at Hull or Europoort, or are they fixed year round?<\/summary>\n<p class=\"wp-block-paragraph\">No, the official departure and arrival times (<span style=\"box-sizing: border-box;\">approximately <strong>20:30 from Hull<\/strong> and <strong>21:00 from Rotterdam<\/strong>) are fixed; however,<\/span> in practice, slight variations of 10\u201320 minutes can occur due to port traffic or operational adjustments. These are reflected in the live timetable when relevant.<\/p>\n<\/details>\n\n\n\n<details class=\"wp-block-details is-layout-flow wp-block-details-is-layout-flow\"><summary>How often do both ships, Pride of Hull and Pride of Rotterdam, sail on the same night, and how is that shown in the timetable?<\/summary>\n<p class=\"wp-block-paragraph\">Both vessels operate the route daily, crossing in opposite directions overnight. The timetable shows two overlapping sailings each night: <strong>one departing Hull for Rotterdam<\/strong> and the other d<strong>eparting Rotterdam for Hul<\/strong>l at roughly the same time.<\/p>\n<\/details>\n\n\n\n<details class=\"wp-block-details is-layout-flow wp-block-details-is-layout-flow\"><summary>Why is sometimes the ship not listed in your timetable overview?<\/summary>\n<p class=\"wp-block-paragraph\">Our timetable is reliant on API data, and sometimes the API doesn&#8217;t have definite sailings.<\/p>\n<\/details>\n\n\n\n<details class=\"wp-block-details is-layout-flow wp-block-details-is-layout-flow\"><summary>Is there a difference in arrival punctuality between weekday and weekend sailings on the Hull\u2013Rotterdam route?<\/summary>\n<p class=\"wp-block-paragraph\"><strong>Minor differences exist.<\/strong> Weekday sailings tend to arrive closer to schedule because freight loading is more predictable, while weekend sailings can vary slightly due to higher passenger volume and longer boarding times.<\/p>\n<\/details>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n\n\n\n<div class=\"wp-block-column hr3-rail hr3-rail-right is-layout-flow wp-block-column-is-layout-flow\">\n<div class=\"hr-bookbox\"><iframe id=\"dealFinder\" title=\"Booking module Hull-Rotterdam\" marginwidth=\"0\" frameborder=\"0\" scrolling=\"no\" height=\"520\" marginheight=\"0\" style=\"width:100%;\" src=\"https:\/\/wiz.directferries.com\/partners\/deal_finder_iframe.aspx?&#038;vert=1&#038;stdc=F4015&#038;cult=en-GB&#038;oprt=Rotterdam&#038;btn=fe017a&#038;btnh=fe017a&#038;btnt=FFFFFF&#038;tclr=000001&#038;lclr=000001&#038;pclr=FFFFFF&#038;lbld=400&#038;sclr=0025a2&#038;targ=0\"><\/iframe><div class=\"hr-bookbox-by\" style=\"flex-direction:row;justify-content:center;gap:8px;background:#fff;border-top:0\"><img decoding=\"async\" src=\"https:\/\/hull-rotterdam.com\/wp-content\/uploads\/2026\/07\/directferrieslogo.png\" alt=\"Direct Ferries\" loading=\"lazy\" style=\"height:20px\"><span style=\"color:#000\">Compare and book via Directferries.com<\/span><\/div><\/div>\n<script>(function(){window.addEventListener('blur',function(){setTimeout(function(){var a=document.activeElement;if(a&&a.tagName==='IFRAME'){var b=a.closest('.hr-bookbox');if(b)b.classList.add('is-open')}},0)})})();<\/script>\n<script>(function(){function run(){var hero=document.querySelector('.hr3-hero-photo .hr-hero-sub-text'),main=document.querySelector('.hr3-main');if(!hero||!main||hero.querySelector('.hr3-pills'))return;var hs=[].slice.call(main.querySelectorAll('h2')).filter(function(h){return h.offsetParent!==null&&h.textContent.trim()!==''});if(hs.length<2)return;var ul=document.createElement('ul');ul.className='hr3-pills';hs.slice(0,4).forEach(function(h,i){if(!h.id){h.id='sectie-'+(i+1)+'-'+h.textContent.trim().toLowerCase().replace(\/[^a-z0-9]+\/g,'-').replace(\/^-+|-+$\/g,'').slice(0,40)}var li=document.createElement('li'),a=document.createElement('a');a.href='#'+h.id;a.textContent=h.textContent.trim();a.title=a.textContent;li.appendChild(a);ul.appendChild(li)});hero.appendChild(ul)}if(document.readyState==='loading'){document.addEventListener('DOMContentLoaded',function(){setTimeout(run,60)})}else{setTimeout(run,60)}})();<\/script>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Hull to Rotterdam ferry times The timetable for the overnight ferry from Kingston upon Hull to Rotterdam (Europoort): it sails [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_yoast_wpseo_focuskw":"","_yoast_wpseo_title":"Hull\u2013Rotterdam Ferry Times \ud83d\udd34 Live Timetable, Both Ways","_yoast_wpseo_metadesc":"Hull to Rotterdam ferry times: usually departs Hull around 20:30 and arrives in Rotterdam about 08:45. Live timetable, check-in and return sailings.","_yoast_wpseo_is_cornerstone":"","_yoast_wpseo_meta-robots-noindex":"","_yoast_wpseo_canonical":"","_yoast_wpseo_opengraph-title":"","_yoast_wpseo_opengraph-description":"","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":"","ast-disable-related-posts":"","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 v28.6 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Hull\u2013Rotterdam Ferry Times \ud83d\udd34 Live Timetable, Both Ways<\/title>\n<meta name=\"description\" content=\"Hull to Rotterdam ferry times: usually departs Hull around 20:30 and arrives in Rotterdam about 08:45. Live timetable, check-in and return sailings.\" \/>\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\/uk\/timetable\/\" \/>\n<meta property=\"og:locale\" content=\"en_GB\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Hull\u2013Rotterdam Ferry Times \ud83d\udd34 Live Timetable, Both Ways\" \/>\n<meta property=\"og:description\" content=\"Hull to Rotterdam ferry times: usually departs Hull around 20:30 and arrives in Rotterdam about 08:45. Live timetable, check-in and return sailings.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/hull-rotterdam.com\/uk\/timetable\/\" \/>\n<meta property=\"og:site_name\" content=\"Hull Rotterdam UK\" \/>\n<meta property=\"article:modified_time\" content=\"2026-10-12T11:21:21+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/hull-rotterdam.com\/uk\/wp-content\/uploads\/sites\/2\/2025\/10\/ferry-p-and-o-hull-rotterdam.jpg\" \/>\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\/jpeg\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Estimated reading time\" \/>\n\t<meta name=\"twitter:data1\" content=\"6 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/hull-rotterdam.com\\\/uk\\\/timetable\\\/\",\"url\":\"https:\\\/\\\/hull-rotterdam.com\\\/uk\\\/timetable\\\/\",\"name\":\"Hull\u2013Rotterdam Ferry Times \ud83d\udd34 Live Timetable, Both Ways\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/hull-rotterdam.com\\\/uk\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/hull-rotterdam.com\\\/uk\\\/timetable\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/hull-rotterdam.com\\\/uk\\\/timetable\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/hull-rotterdam.com\\\/uk\\\/wp-content\\\/uploads\\\/sites\\\/2\\\/2025\\\/10\\\/ferry-p-and-o-hull-rotterdam.jpg\",\"datePublished\":\"2025-10-28T14:19:30+00:00\",\"dateModified\":\"2026-10-12T11:21:21+00:00\",\"description\":\"Hull to Rotterdam ferry times: usually departs Hull around 20:30 and arrives in Rotterdam about 08:45. Live timetable, check-in and return sailings.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/hull-rotterdam.com\\\/uk\\\/timetable\\\/#breadcrumb\"},\"inLanguage\":\"en-GB\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/hull-rotterdam.com\\\/uk\\\/timetable\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-GB\",\"@id\":\"https:\\\/\\\/hull-rotterdam.com\\\/uk\\\/timetable\\\/#primaryimage\",\"url\":\"https:\\\/\\\/hull-rotterdam.com\\\/uk\\\/wp-content\\\/uploads\\\/sites\\\/2\\\/2025\\\/10\\\/ferry-p-and-o-hull-rotterdam.jpg\",\"contentUrl\":\"https:\\\/\\\/hull-rotterdam.com\\\/uk\\\/wp-content\\\/uploads\\\/sites\\\/2\\\/2025\\\/10\\\/ferry-p-and-o-hull-rotterdam.jpg\",\"width\":1200,\"height\":800,\"caption\":\"ferry p and o hull rotterdam\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/hull-rotterdam.com\\\/uk\\\/timetable\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Hull to Rotterdam ferry\",\"item\":\"https:\\\/\\\/hull-rotterdam.com\\\/uk\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Hull to Rotterdam Timetable\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/hull-rotterdam.com\\\/uk\\\/#website\",\"url\":\"https:\\\/\\\/hull-rotterdam.com\\\/uk\\\/\",\"name\":\"Hull Rotterdam UK\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\\\/\\\/hull-rotterdam.com\\\/uk\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/hull-rotterdam.com\\\/uk\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-GB\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/hull-rotterdam.com\\\/uk\\\/#organization\",\"name\":\"Hull Rotterdam UK\",\"url\":\"https:\\\/\\\/hull-rotterdam.com\\\/uk\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-GB\",\"@id\":\"https:\\\/\\\/hull-rotterdam.com\\\/uk\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/hull-rotterdam.com\\\/uk\\\/wp-content\\\/uploads\\\/sites\\\/2\\\/2025\\\/10\\\/rotterdam-hull.svg\",\"contentUrl\":\"https:\\\/\\\/hull-rotterdam.com\\\/uk\\\/wp-content\\\/uploads\\\/sites\\\/2\\\/2025\\\/10\\\/rotterdam-hull.svg\",\"width\":1000,\"height\":160,\"caption\":\"Hull Rotterdam UK\"},\"image\":{\"@id\":\"https:\\\/\\\/hull-rotterdam.com\\\/uk\\\/#\\\/schema\\\/logo\\\/image\\\/\"}}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Hull\u2013Rotterdam Ferry Times \ud83d\udd34 Live Timetable, Both Ways","description":"Hull to Rotterdam ferry times: usually departs Hull around 20:30 and arrives in Rotterdam about 08:45. Live timetable, check-in and return sailings.","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\/uk\/timetable\/","og_locale":"en_GB","og_type":"article","og_title":"Hull\u2013Rotterdam Ferry Times \ud83d\udd34 Live Timetable, Both Ways","og_description":"Hull to Rotterdam ferry times: usually departs Hull around 20:30 and arrives in Rotterdam about 08:45. Live timetable, check-in and return sailings.","og_url":"https:\/\/hull-rotterdam.com\/uk\/timetable\/","og_site_name":"Hull Rotterdam UK","article_modified_time":"2026-10-12T11:21:21+00:00","og_image":[{"width":1200,"height":800,"url":"https:\/\/hull-rotterdam.com\/uk\/wp-content\/uploads\/sites\/2\/2025\/10\/ferry-p-and-o-hull-rotterdam.jpg","type":"image\/jpeg"}],"twitter_card":"summary_large_image","twitter_misc":{"Estimated reading time":"6 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/hull-rotterdam.com\/uk\/timetable\/","url":"https:\/\/hull-rotterdam.com\/uk\/timetable\/","name":"Hull\u2013Rotterdam Ferry Times \ud83d\udd34 Live Timetable, Both Ways","isPartOf":{"@id":"https:\/\/hull-rotterdam.com\/uk\/#website"},"primaryImageOfPage":{"@id":"https:\/\/hull-rotterdam.com\/uk\/timetable\/#primaryimage"},"image":{"@id":"https:\/\/hull-rotterdam.com\/uk\/timetable\/#primaryimage"},"thumbnailUrl":"https:\/\/hull-rotterdam.com\/uk\/wp-content\/uploads\/sites\/2\/2025\/10\/ferry-p-and-o-hull-rotterdam.jpg","datePublished":"2025-10-28T14:19:30+00:00","dateModified":"2026-10-12T11:21:21+00:00","description":"Hull to Rotterdam ferry times: usually departs Hull around 20:30 and arrives in Rotterdam about 08:45. Live timetable, check-in and return sailings.","breadcrumb":{"@id":"https:\/\/hull-rotterdam.com\/uk\/timetable\/#breadcrumb"},"inLanguage":"en-GB","potentialAction":[{"@type":"ReadAction","target":["https:\/\/hull-rotterdam.com\/uk\/timetable\/"]}]},{"@type":"ImageObject","inLanguage":"en-GB","@id":"https:\/\/hull-rotterdam.com\/uk\/timetable\/#primaryimage","url":"https:\/\/hull-rotterdam.com\/uk\/wp-content\/uploads\/sites\/2\/2025\/10\/ferry-p-and-o-hull-rotterdam.jpg","contentUrl":"https:\/\/hull-rotterdam.com\/uk\/wp-content\/uploads\/sites\/2\/2025\/10\/ferry-p-and-o-hull-rotterdam.jpg","width":1200,"height":800,"caption":"ferry p and o hull rotterdam"},{"@type":"BreadcrumbList","@id":"https:\/\/hull-rotterdam.com\/uk\/timetable\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Hull to Rotterdam ferry","item":"https:\/\/hull-rotterdam.com\/uk\/"},{"@type":"ListItem","position":2,"name":"Hull to Rotterdam Timetable"}]},{"@type":"WebSite","@id":"https:\/\/hull-rotterdam.com\/uk\/#website","url":"https:\/\/hull-rotterdam.com\/uk\/","name":"Hull Rotterdam UK","description":"","publisher":{"@id":"https:\/\/hull-rotterdam.com\/uk\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/hull-rotterdam.com\/uk\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-GB"},{"@type":"Organization","@id":"https:\/\/hull-rotterdam.com\/uk\/#organization","name":"Hull Rotterdam UK","url":"https:\/\/hull-rotterdam.com\/uk\/","logo":{"@type":"ImageObject","inLanguage":"en-GB","@id":"https:\/\/hull-rotterdam.com\/uk\/#\/schema\/logo\/image\/","url":"https:\/\/hull-rotterdam.com\/uk\/wp-content\/uploads\/sites\/2\/2025\/10\/rotterdam-hull.svg","contentUrl":"https:\/\/hull-rotterdam.com\/uk\/wp-content\/uploads\/sites\/2\/2025\/10\/rotterdam-hull.svg","width":1000,"height":160,"caption":"Hull Rotterdam UK"},"image":{"@id":"https:\/\/hull-rotterdam.com\/uk\/#\/schema\/logo\/image\/"}}]}},"_links":{"self":[{"href":"https:\/\/hull-rotterdam.com\/uk\/wp-json\/wp\/v2\/pages\/1641","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/hull-rotterdam.com\/uk\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/hull-rotterdam.com\/uk\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/hull-rotterdam.com\/uk\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/hull-rotterdam.com\/uk\/wp-json\/wp\/v2\/comments?post=1641"}],"version-history":[{"count":91,"href":"https:\/\/hull-rotterdam.com\/uk\/wp-json\/wp\/v2\/pages\/1641\/revisions"}],"predecessor-version":[{"id":4643,"href":"https:\/\/hull-rotterdam.com\/uk\/wp-json\/wp\/v2\/pages\/1641\/revisions\/4643"}],"wp:attachment":[{"href":"https:\/\/hull-rotterdam.com\/uk\/wp-json\/wp\/v2\/media?parent=1641"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}