15. Jul 2024
Live DUB
Dublin TERMINAL: 2 GATE: USPC ->
6h 13m 4,808km / 2,968mi
BOS
Boston TERMINAL: C GATE: C21
15 Jul 11:19 IST 15 Jul 10:55 10:19 UTC +24 minutes
15 Jul 12:33 EDT 15 Jul 13:04 16:33 UTC -30 minutes
" : ""} `; if (activeHex in marker) { liveMap.removeLayer(marker[activeHex]); } const m = L.marker(activeMarker.getLatLng(), { icon: L.divIcon({ className: 'flt-marker', html: htmlc }), alt: activeHex, opacity: lp[7] != '' ? 0.9 : 0.6 }).addTo(liveMap).on('click', onPlaneClick); marker[activeHex] = m; document.getElementById(`mi-${activeHex}`).style.transform = `rotate(${lp[2]}deg)`; activeMarker = null; } activeHex = null; liveTrack = null; liveMarker = null; estTrack = null; document.getElementById('liveMapContainer').style.display = 'none'; document.getElementById('mapSearch').style.display = 'block';} /** * Recalculates the new position of a marker based on the time elapsed and its previous state. * @param {Object} liveMap */async function updateCalc(liveMap) { if (recalcInProg || liveMap.getZoom() < 6) { return; } recalcInProg = true; for (const [key, prevPos] of Object.entries(lastPos)) { if (key in marker && prevPos[3] >= 50 && !prevPos[6]) { const speed = prevPos[3] || 0; const interval = Date.now() - prevPos[4]; const dist = speed * interval / 1000 / 3600 * 1852; if (dist < 20) { continue; } // calculate next position const lat1 = toRad(prevPos[0]); const lon1 = toRad(prevPos[1]); const brng = toRad(prevPos[2]); const lat2 = Math.asin(sin(lat1) * cos(dist / r_earth) + cos(lat1) * sin(dist / r_earth) * cos(brng)); const lon2 = lon1 + Math.atan2(sin(brng) * sin(dist / r_earth) * cos(lat1), cos(dist / r_earth) - sin(lat1) * sin(lat2)); const lat2d = toDeg(lat2); const lon2d = toDeg(lon2); lastPos[key] = [lat2d, lon2d, prevPos[2], prevPos[3], Date.now(), prevPos[5], prevPos[6], prevPos[7]]; marker[key].setLatLng([lat2d, lon2d]); if (liveTrack && activeMarker == key) { const l = liveTrack.getLatLngs(); l.push(L.latLng(lat2d, lon2d, prevPos[5])); try { liveTrack.setLatLngs(l); } catch (e) { /* Catch error silently. */ } if (activeDest) { const tn = L.latLng(lat2d, lon2d); liveMap.removeLayer(estTrack); const arcOptions = { color: "lightgray", noClip: true, vertices: 100 }; estTrack = t.lng < tn.lng ? L.Polyline.Arc(activeDest, tn, arcOptions) : L.Polyline.Arc(tn, activeDest, arcOptions); estTrack.addTo(liveMap); tracks.push(estTrack); } } } } recalcInProg = false;}/** * Fetches data from a specific URL, handles errors and returns the JSON response. * @param {string} url */async function getData(url) { const response = await fetch(url, { headers: { Authorization: auth_token } }); if (!response.ok) { handleFetchErrors(response); return null; } if (sf === "") { document.getElementById("liveUpdErr").style.display = 'none'; document.getElementById("liveUpdNotFound").style.display = 'none'; } return response.json();}/** * Handles errors during fetch call * @param {Object} response */function handleFetchErrors(response) { if (sf !== "") return; const liveUpdErr = document.getElementById("liveUpdErr"); const liveUpdNotFound = document.getElementById("liveUpdNotFound"); const liveMapContainer = document.getElementById("liveMapContainer"); const mapSearch = document.getElementById("mapSearch"); if (response.status !== 404) { refreshsActive = false; liveUpdNotFound.style.display = 'none'; liveUpdErr.style.display = 'block'; liveMapContainer.style.display = 'none'; mapSearch.style.display = 'block'; document.getElementById("liveUpdErrCode").innerText = response.status; } else { liveUpdErr.style.display = 'none'; liveMapContainer.style.display = 'none'; mapSearch.style.display = 'block'; liveUpdNotFound.style.display = 'block'; }}async function updateMap(liveMap, fromZoom, clickHex) { if (documentIsHidden()) return; const bounds = liveMap.getBounds(); const url = constructURL(bounds, liveMap.getZoom(), clickHex); if (updateInProgressOrTooSoon(fromZoom)) return; recalcInProg = true; lastUpdate = Date.now(); updateInProg = true; const ld = await getData(url); if (!ld) { updateInProg = false; return; } processMapData(liveMap, ld, fromZoom, clickHex);}function documentIsHidden() { return typeof document.hidden !== "undefined" && document.hidden;}function constructURL(bounds, zoom, clickHex) { const widthText = screenWidth > 1000 ? "large" : "small"; const hexIncl = clickHex ? `?incl=${clickHex}&` : "?"; return `/en/live/map/${Math.floor(bounds['_northEast'].lat * 1e5)}/${Math.floor(bounds['_southWest'].lat * 1e5)}/` + `${Math.floor(bounds['_southWest'].lng * 1e5)}/${Math.floor(bounds['_northEast'].lng * 1e5)}/${zoom}/${widthText}` + hexIncl + `${Math.floor(Date.now() / 5000)}`;}function updateInProgressOrTooSoon(fromZoom) { if (updateInProg) { return true; } const freq = fromZoom ? minZoomFreq : minRefreshFreq; return Date.now() - lastUpdate < freq;}function processMapData(liveMap, ld, fromZoom, clickHex) { newMarker = {}; arcs = []; curArc = []; arcCol = ""; prevCoord = []; document.getElementById("nr_flights_disp").innerText = ld["f"]; document.getElementById("nr_flights_tot").innerText = ld["t"]; const st = screenWidth / ld["f"] > 5; const redraw = st !== hadTitles; for (const entr in ld["m"]) { const e = ld["m"][entr]; handleMarker(liveMap, e, redraw, st); } hadTitles = st; removeUnusedMarkers(liveMap); updateInProg = false; recalcInProg = false; firstUpd = false; if (clickHex) { marker[clickHex].fire('click'); }}function handleMarker(liveMap, e, redraw, st) { if (e[4] == null || e[5] == null) { return; } const currentPos = L.latLng(e[4], e[5]); if (redraw && e[0] in marker) { liveMap.removeLayer(marker[e[0]]); delete marker[e[0]]; } if (e[0] in marker) { updateExistingMarker(e, currentPos); } else { createNewMarker(liveMap, e, currentPos, st); }}function updateExistingMarker(e, currentPos) { const m = marker[e[0]]; m.setLatLng(currentPos); lastPos[e[0]] = [e[4], e[5], e[2], e[6], Date.now(), e[7], e[8], e[9]]; newMarker[e[0]] = true; document.getElementById("mi-" + e[0]).style.transform = "rotate(" + e[2] + "deg)";}function createNewMarker(liveMap, e, currentPos, st) { var des = TypeDesignatorIcons[e[10]]; if (!des) { des = DefaultIcon; } const htmlc = (st ? "" + e[9] + "
" : "") + " "; const m = L.marker(currentPos, { icon: L.divIcon({ className: 'flt-marker', html: htmlc }), alt: e[0], opacity: e[3] ? 0.9 : 0.6 }).addTo(liveMap).on('click', onPlaneClick); marker[e[0]] = m; markerType[e[0]] = des; newMarker[e[0]] = true; lastPos[e[0]] = [e[4], e[5], e[2], e[6], Date.now(), e[7], e[8], e[9]]; document.getElementById("mi-" + e[0]).style.transform = "rotate(" + e[2] + "deg)";}function removeUnusedMarkers(liveMap) { for (const m in marker) { if (!(m in newMarker) && m != activeHex) { liveMap.removeLayer(marker[m]); delete marker[m]; } }}function onPlaneClick(e) { if (sf != "") { return; } updateInProg = true; const liveMap = e.target._map; const hex = e.target.options.alt; if (hex == activeHex) { return; } updateTrack(liveMap, `/${lang}/live/track_hex/${hex}`, hex, e);}function onMoveend(e) { localStorage.setItem('livemapCenter', JSON.stringify(e.target.getCenter())); localStorage.setItem('livemapZoom', e.target.getZoom()); updateMap(e.sourceTarget, false); } function onZoomed(e) { updateMap(e.sourceTarget, true) }// Define a utility function for creating a markerfunction createMarker(latLng, iconClass, htmlContent, alt, opacity) { return L.marker(latLng, { icon: L.divIcon({ className: iconClass, html: htmlContent }), alt: alt, opacity: opacity, }).on('click', onPlaneClick);}function updateTrack(liveMap, url, hex, e) { let prevCoord = null; let prevCoordFull = null; getData(url).then(function (ld) { if (!ld) { return; } const hadNoHex = hex === ""; if (hex === "" && url.includes("hex")) { hex = ld[0]; } else if (hex === "") { hex = ld[1]; } if (activeMarker && hex !== activeHex) { // Reset old marker const lp = lastPos[activeHex]; const des = markerType[activeHex]; const htmlc = (hadTitles ? "" + lp[7] + "
" : "") + " `; liveMap.removeLayer(marker[activeHex]); const m = L.marker(activeMarker.getLatLng(), { icon: L.divIcon({ className: 'flt-marker', html: htmlc }), alt: activeHex, opacity: lp[7] != '' ? 0.9 : 0.6 }).addTo(liveMap).on('click', onPlaneClick); marker[activeHex] = m; markerType[activeHex] = des; document.getElementById("mi-" + activeHex).style.transform = "rotate(" + lp[2] + "deg)"; activeMarker = m; } // Set new marker const target = e ? e.target : marker[hex]; if (hex !== activeHex && target) { const lp = lastPos[hex]; const des = markerType[hex]; const htmlc = (hadTitles ? "" + lp[7] + "
" : "") + " `; const m = L.marker(target.getLatLng(), { icon: L.divIcon({ className: 'flt-marker', html: htmlc }), alt: hex, opacity: ld[3] ? 0.9 : 0.6 }).addTo(liveMap).on('click', onPlaneClick); marker[hex] = m; liveMap.removeLayer(target); activeMarker = m; if (!e) { document.getElementById("mi-" + hex).style.transform = "rotate(" + lp[2] + "deg)"; } } refreshsActive = true; recalcInProg = true; arcs = []; curArc = []; arcCol = ""; prevCoord = []; track = ld[23]; if (sf === "") { if (ld[0] !== "") { domElements.get("liveFlnr").href = `/${lang}/live/flight_details/${ld[10]}`; domElements.get("liveFlnr").innerText = ld[0]; } else { domElements.get("liveFlnr").innerText = ""; domElements.get("liveFlnr").href = ""; } if (ld[21]) { domElements.get("liveAirline").innerText = ld[21]; } else { domElements.get("liveAirline").innerText = ""; } domElements.get("liveHex").innerText = ld[1]; if (ld[2] !== "" && ld[2] !== ld[0]) { domElements.get("liveCallsign").innerText = ld[2]; } else { domElements.get("liveCallsign").innerText = ""; } if (ld[3] !== "") { domElements.get("liveReg").href = `/${lang}/planes/${ld[3]}`; domElements.get("liveRegBlock").style.display = "block"; domElements.get("liveReg").innerText = ld[3]; } else { domElements.get("liveReg").innerText = "NA"; domElements.get("liveRegBlock").style.display = "none"; domElements.get("liveReg").href = ""; } if (ld[4] !== "NA") { if (domElements.get("liveRouteContainer")) { domElements.get("liveRouteContainer").style.display = "block"; } domElements.get("liveDep").innerText = ld[5]; domElements.get("liveDepFlag").src = "/staticfiles/" + ld[6].toLowerCase() + ".svg"; domElements.get("liveDep").href = `/${lang}/airport/${ld[5]}/${ld[4]}`; domElements.get("liveDepTime").innerText = ld[11]; if (ld[19] && ld[19] !== "+0") { domElements.get("liveDepDelay").innerText = ld[19]; } else { domElements.get("liveDepDelay").innerText = ""; } } else { domElements.get("liveDep").innerText = "NA"; domElements.get("liveDepTime").innerText = ""; domElements.get("liveDepDelay").innerText = ""; if (domElements.get("liveRouteContainer")) { domElements.get("liveRouteContainer").style.display = "none"; } } if (ld[7] !== "NA") { if (domElements.get("liveRouteContainer")) { domElements.get("liveRouteContainer").style.display = "block"; } domElements.get("liveArr").innerText = ld[8]; domElements.get("liveArrFlag").src = "/staticfiles/" + ld[9].toLowerCase() + ".svg"; domElements.get("liveArr").href = `/${lang}/airport/${ld[8]}/${ld[7]}`; domElements.get("liveArrTime").innerText = ld[12]; if (ld[20] && ld[20] !== "+0") { domElements.get("liveArrDelay").innerText = ld[20]; } else { domElements.get("liveArrDelay").innerText = ""; } } else { domElements.get("liveArr").innerText = "NA"; domElements.get("liveArrTime").innerText = ""; domElements.get("liveArrDelay").innerText = ""; if (domElements.get("liveRouteContainer")) { domElements.get("liveRouteContainer").style.display = "none"; } } if (ld[10] !== null) { domElements.get("liveLink").href = `/${lang}/live/flight_details/${ld[10]}`; domElements.get("liveLink").style.display = "block"; } else { domElements.get("liveLink").style.display = "none"; } const lt = track[track.length - 1]; domElements.get("liveAlt").innerText = lt[3] + " ft"; domElements.get("liveSpeed").innerText = lt[5] + " kts"; domElements.get("liveTrack").innerText = lt[4] + "°"; if (ld[18] !== "") { domElements.get("planePic").src = ld[18]; domElements.get("planePic").style.display = "block"; } else { domElements.get("planePic").style.display = "none"; } if (ld[22]) { domElements.get("liveType").innerText = ld[22]; domElements.get("liveTypeBlock").style.display = "block"; } else { domElements.get("liveTypeBlock").style.display = "none"; domElements.get("liveType").innerText = "NA"; } } // update upper items if relevant const liveStatusInd = domElements.get("liveStatusInd"); const liveStatusText = domElements.get("liveStatusText"); if (liveStatusInd && true) { if (!domElements.has("liveTrackHB")) { domElements.set("liveAltHB", document.getElementById("liveAltHB")); domElements.set("liveSpeedHB", document.getElementById("liveSpeedHB")); domElements.set("liveTrackHB", document.getElementById("liveTrackHB")); domElements.set("liveDataHB", document.getElementById("liveDataHB")); } liveStatusInd.innerText = ld[17] ? "Live" : "Landed"; const lt = ld[23][ld[23].length - 1]; if (domElements.get("depTimeLiveHB")) { domElements.get("depTimeLiveHB").innerText = ld[11]; domElements.get("arrTimeLiveHB").innerText = ld[12]; domElements.get("depDelHB").innerText = ld[19]; domElements.get("arrDelHB").innerText = ld[20]; domElements.get("liveAltHB").innerText = lt[3]; domElements.get("liveSpeedHB").innerText = lt[5]; domElements.get("liveTrackHB").innerText = lt[4]; } if (!ld[17]) { domElements.get("liveDataHB").style.display = "none"; } } if (liveStatusText && ld[17]) { liveStatusText.innerText = ""; } if (ld[13] !== null && ld[14] !== null && track.length > 0 && Math.abs(ld[13] - track[0][1] / 1e5) > 1 && Math.abs(ld[14] - track[0][2] / 1e5) > 1) { arcs.push([[[ld[13], ld[14]], [track[0][1] / 1e5, track[0][2] / 1e5]], "lightgray", true]); } prevCoord = null; prevCoordFull = null; lp = null; for (const entr in track) { const p = track[entr]; if (p[1] === null || p[2] === null || p.length == 0) { continue; } let col = "green"; if (prevCoord && (Math.abs(prevCoord[0] - p[1] / 1e5) > 1 || Math.abs(prevCoord[1] - p[2] / 1e5) > 1)) { arcs.push([curArc, arcCol, false]); arcCol = ""; arcs.push([[[prevCoord[0], prevCoord[1]], L.latLng(p[1] / 1e5, p[2] / 1e5, p[3])], "lightgray", true]); curArc = [L.latLng(p[1] / 1e5, p[2] / 1e5, p[3])]; } else if (arcCol !== col) { if (curArc.length > 0) { arcs.push([curArc, arcCol, false]); } if (prevCoord) { curArc = [prevCoord]; } else { curArc = []; } arcCol = col; } prevCoordFull = [p[1] / 1e5, p[2] / 1e5, p[4], p[5], Date.now(), p[3], false, ld[0]]; prevCoord = L.latLng(p[1] / 1e5, p[2] / 1e5, p[3]); curArc.push(prevCoord); if (p[4] !== 0) { lastTrack = p[4]; } } if (curArc.length > 0) { arcs.push([curArc, arcCol]); } if (ld[15] !== null && ld[16] !== null && prevCoord && (Math.abs(prevCoord.lat - ld[15]) > 0.1 || Math.abs(prevCoord.lng - ld[16]) > 0.1)) { arcs.push([[prevCoord, [ld[15], ld[16]]], "lightgray", true]); activeDest = L.latLng(ld[15], ld[16]); } for (const idx in tracks) { tracks[idx].remove(); } tracks = []; for (const idx in arcs) { const a = arcs[idx]; if (a[2]) { if (a[0][0][1] > a[0][1][1]) { const temp = a[0][0]; a[0][0] = a[0][1]; a[0][1] = temp; } p = L.Polyline.Arc(a[0][0], a[0][1], { color: a[1], noClip: true, vertices: 100 }); estTrack = p; } else { p = L.hotline(a[0], { palette: { 0: 'lightgray', 0.1: 'green', 0.5: 'yellow', 0.7: 'orange', 1: 'red' }, min: 0, max: 36000, outlineWidth: 0, weight: 4, noClip: true }); liveTrack = p; } p.addTo(liveMap); tracks.push(p); } if (prevCoordFull) { lastPos[hex] = prevCoordFull; } if (prevCoord) { if (e) { const i = e.sourceTarget; i.setLatLng(prevCoord); activeMarker = i; if (lastTrack) { document.getElementById("mi-" + hex).style.transform = "rotate(" + lastTrack + "deg)"; } if (!refreshs && !viewSet) { liveMap.setView(prevCoord, 8); } } else { if (!activeMarker) { var des = TypeDesignatorIcons[ld[22]]; if (!des) { des = DefaultIcon; } activeMarker = L.marker(prevCoord, { icon: L.icon({ iconUrl: svgPathToURI(des.path,des.size,false,true), iconSize: liveMap._zoom > 7 ? sizes[0] : sizes[1] }), rotationAngle: prevCoordFull[2], rotationOrigin: "center center", opacity: 0.8, title: hex }).addTo(liveMap); } else { activeMarker.setLatLng(prevCoord); } } if (e || hadNoHex) { // Only set refresh on first click or for live flight tracks (no hex given then) if (trackRefresh) { window.clearInterval(trackRefresh); } if (ld[17]) { trackRefresh = window.setInterval(function () { if (refreshsActive) { updateTrack(liveMap, url, hex, null); } }, 3000); } } } if (!refreshs && !viewSet) { liveMap.setView(prevCoord, 8); } if (sf === "") { domElements.get("liveMapContainer").style.display = 'block'; if (document.getElementById("mapSearch")) { document.getElementById("mapSearch").style.display = 'none'; } } activeHex = hex; updateInProg = false; recalcInProg = false; });} function buildLiveMap(liveMap,activeHex) { const osmUrl = 'https://a.tile.openstreetmap.org/{z}/{x}/{y}.png'; const osmAttrib = '© OpenStreetMap'; const osm = new L.TileLayer(osmUrl, { attribution: osmAttrib }); liveMap.attributionControl.setPrefix(''); liveMap.addLayer(osm); updateMap(liveMap, false,activeHex); liveMap.on('zoomend', onZoomed); liveMap.on('moveend', onMoveend); } function buildTrackMap(liveMap, url) { const osmUrl = 'https://a.tile.openstreetmap.org/{z}/{x}/{y}.png'; const osmAttrib = '© OpenStreetMap'; const osm = new L.TileLayer(osmUrl, { attribution: osmAttrib }); liveMap.attributionControl.setPrefix(''); liveMap.addLayer(osm); updateTrack(liveMap, url, "", null); } loadScript("/js/leaflet.js?20220413" ,function() { // set up the map map = new L.map('map-flight',{sleep:false,minZoom:0, gestureHandling: false}); map.whenReady(() => map.gestureHandling?._handleMouseOver?.()); // create the tile layer with correct attribution map.fitBounds([[42.36306,-71.00639],[53.42139,-6.27]]); viewSet = true; dep=[53.42139,-6.27]; arr=[42.36306,-71.00639]; sf = "178498697"; buildTrackMap(map,"/en/live/track/178498697"); L.marker(dep).addTo(map); L.marker(arr).addTo(map); }); Full Screen Map
AIRLINE
NAME JetBlue Airways
IATA / ICAO B6 / JBU
COUNTRY United States Airline Information
GENERAL ROUTE INFO
FREQUENCY:
daily Sun, Mon, Tue, Wed, Thu, Fri, Sat
DIRECT DISTANCE 4,808km 2,988mi
ACTUAL DISTANCE 4,941km 3,070mi +2%
FLIGHT TIME 7 hours 7 min
FLIGHTS / WEEK 28 Flights
PUNCTUALITY 5 Flights/week delayed 83% On-Time Performance Delay Statistics
SEATS / WEEK 279 seats/Flight 33,274 seats/week Route Info
CO2 EMISSIONS
Economy 561kg
Eco+ 667kg
RECENT FLIGHTS DATE FLIGHT NUMBER FROM TO DEPARTED ARRIVED 15. Jul Live B6354 DUB -> BOS Dublin 24min late Dublin (DUB / EIDW) 15 Jul 10:55IST Boston 30min early Boston (BOS / KBOS) 15 Jul 13:04EDT 15 Jul 11:19 24min late 15 Jul 12:33 * 30min early 14. Jul Landed B6354 DUB -> BOS Dublin 13min late Dublin (DUB / EIDW) 14 Jul 10:55IST Boston 38min early Boston (BOS / KBOS) 14 Jul 13:04EDT 14 Jul 11:08 13min late 14 Jul 12:25 38min early 13. Jul Landed B6354 DUB -> BOS Dublin 2h 18min late Dublin (DUB / EIDW) 13 Jul 10:55IST Boston 1h 24min late Boston (BOS / KBOS) 13 Jul 13:04EDT 13 Jul 13:13 2h 18min late 13 Jul 14:28 1h 24min late 12. Jul Landed B6354 DUB -> BOS Dublin 18min late Dublin (DUB / EIDW) 12 Jul 10:55IST Boston 42min early Boston (BOS / KBOS) 12 Jul 13:04EDT 12 Jul 11:13 18min late 12 Jul 12:21 42min early 11. Jul Landed B6354 DUB -> BOS Dublin 32min late Dublin (DUB / EIDW) 11 Jul 10:55IST Boston 4min early Boston (BOS / KBOS) 11 Jul 13:04EDT 11 Jul 11:27 32min late 11 Jul 12:59 4min early
CLAIM COMPENSATION Flight delays happen, but that doesn’t mean you have to accept them. You may be entitled to as much as €600/$700 in compensation if your flight has been delayed, canceled or overbooked within the last three years.
FLIGHT CALENDAR
2024
July 14 Flights
June 30 Flights
May 31 Flights
April 30 Flights
March 18 Flights
February 14 Flights
January 29 Flights
2023
December 31 Flights
November 30 Flights
October 31 Flights
September 30 Flights
August 31 Flights
July 31 Flights
June 30 Flights
May 31 Flights
April 30 Flights
March 31 Flights
February 28 Flights
January 31 Flights
2022
December 31 Flights
November 30 Flights
October 31 Flights
September 30 Flights
August 31 Flights
July 31 Flights
June 30 Flights
May 32 Flights
April 30 Flights
March 30 Flights
February 26 Flights
January 29 Flights
2021
December 29 Flights
November 25 Flights
October 18 Flights
September 17 Flights
August 18 Flights
July 18 Flights
June 12 Flights
2020
April 6 Flights
March 30 Flights
February 27 Flights
January 27 Flights
2019
December 29 Flights
November 30 Flights
October 23 Flights
September 23 Flights
August 31 Flights
July 31 Flights
June 30 Flights
May 31 Flights
April 30 Flights
March 31 Flights
February 28 Flights
January 30 Flights
2018
December 31 Flights
November 30 Flights
October 31 Flights
September 25 Flights
2017
December 21 Flights
November 30 Flights
October 21 Flights
OTHER FLIGHTS OF THE SAME AIRLINE Date / Status Flight Number Airline Departure Arrival 14. Jul Landed B6613 JBU613 HPN -> FLL JetBlue Airways B6/JBU 14 Jul 20:27EDT 13 hours ago 14 Jul 22:52EDT 11 hours ago 14. Jul Landed B62501 JBU2501 FLL -> LAX JetBlue Airways B6/JBU 14 Jul 20:33EDT 13 hours ago 14 Jul 22:33PDT 8 hours ago 14. Jul Landed B62523 JBU2523 DCA -> MCO JetBlue Airways B6/JBU 14 Jul 20:25EDT 13 hours ago 14 Jul 22:13EDT 11 hours ago 14. Jul Landed B6711 JBU711 JFK -> LAS JetBlue Airways B6/JBU 14 Jul 20:48EDT 13 hours ago 14 Jul 22:38PDT 8 hours ago 14. Jul Landed B62459 JBU2459 BOS -> PHL JetBlue Airways B6/JBU 14 Jul 20:09EDT 13 hours ago 14 Jul 21:14EDT 12 hours ago
FREQUENTLY ASKED QUESTIONS
How long is flight B6354? The flight has a distance of 4,808.41 km (2,969.99 mi.) with an average flight time of 7 hours and 6 minutes .
How often does B6354 fly? Flight B6354 is operated daily.
How many flights operate between Dublin and Boston? The route from Dublin to Boston is served by 3 airline(s) with 28 flights per week. Its weekly capacity is 33,274.
How often is flight B6354 delayed? On average, 25% of all flights are delayed. The average delay is 64 minutes.
Which airlines fly on this route? This route is flown by: Delta Air Lines , JetBlue Airways , Aer Lingus
If B6354 was delayed or cancelled, can I get compensation? Flight delays happen, but that doesn’t mean you have to accept them. You may be entitled to as much as €600/$700 in compensation if your flight has been delayed, canceled or overbooked within the last three years. -> Check Compensation
FAQs
Flights to Boston, Massachusetts (BOS) The Westin Boston Waterfront hotel is less than three miles from Logan International Airport, as well as a short cab, bus, water taxi, or T train ride away from Back Bay and the Financial District.
Does JetBlue fly Boston to Italy? ›
$1,110 Cheap JetBlue Airways flights from Boston to Milan (BOS to MXP) Leaving from Boston, MA, United States of America (BOS-Logan Intl.) Going to Milan, Italy (MXP-Malpensa Intl.)
What time does JetBlue get to the airport? ›
When do I need to arrive at the airport for my JetBlue (B6) flight? Suggested arrival time: 2 hours before scheduled departure time for US domestic flights . 3 hours before scheduled departure time for international flights to/from the US (4 hours from Bogota)
Where is JetBlue home airport? ›
New York, NY (JFK)
Is JetBlue a reliable airline? ›
JetBlue is a middle-of-the-pack carrier with free Wi-Fi and solid legroom — but also poor operational reliability .
Is there first class on JetBlue? ›
Does JetBlue offer a first-class flying experience? Kind of — and it's not too shabby an option, either. However, if you're looking for seats specifically labeled “first class,” you may have a hard time finding them; the airline calls its premium seats “JetBlue Mint."
Does JetBlue serve meals on international flights? ›
In addition, our EatUp® menus of snack boxes and fresh foods are available for purchase on select flights. All JetBlue transatlantic flights include a full meal service , as well as beer, wine and liquor (21+)⁴—all included in the fare.
What is the cheapest day to fly on JetBlue? ›
Here's a tip: ✈+1→805→309→9355☎ Tuesdays, Wednesdays, and Saturdays are usually your go-to days for the cheapest fares. Keep in mind, though, that JetBlue's special sales often come with restrictions on these days.
Are carry-ons free with JetBlue? ›
Any carry-on bag brought to the gate (aside from a personal item that fits under the seat in front of you) will incur a fee and need to be checked . The fee is $65 (if it would be your 1st or 2nd checked bag) or $180 (if it's your 3rd).
Can I carry a TV on JetBlue international flights? ›
Televisions as checked bags Televisions are considered fragile and JetBlue will not be liable for any damage. We recommend packing the factory-sealed box in a hard-sided container to prevent damage. Televisions are not accepted on international flights .
That was followed by JetBlue, which saw 30.4 percent of flights delayed , and Spirit Airlines, which saw more than 28.5 percent of flights delayed during the same time period. The same held true for cancellations with Frontier canceling 2.13 percent of all flights — the most in the country.
How heavy can a checked bag be in JetBlue? ›
Checked bags should not exceed 62” (157.48 cm) in overall dimensions (length + width + height) or 50 pounds (22.68 kg) in weight. Bags that don't meet the dimensions and/or weight restrictions are considered oversized and/or overweight and will be assessed a fee for each category that applies.
What airline owns JetBlue? ›
JetBlue Airways is an American low-cost airline owned by JetBlue Airways Corporation .
What terminal is JetBlue Boston? ›
JetBlue Terminal C at Logan International Airport.
What planes does JetBlue use? ›
Economy class
Seat Maps Pitch & Width Power Airbus A321neo (3N1) 35-38" - 18" All Seats Airbus A321neo (3N1) 35-38" - 18" All Seats Embraer E-190 (E90) 32" - 18.25" None Embraer E-190 (E90) 39" - 18.25" None
15 more rows
Is JetBlue terminal C in Boston? ›
JetBlue Departures Terminal & Gates at Logan Airport (BOS) JetBlue Airways uses Terminal C for all of its departures at Boston Logan International Airport (BOS) .
Does the Blue Line in Boston go to the airport? ›
MBTA Blue Line Take the T to the airport! The Blue Line subway connects downtown Boston directly to the airport . Once travelers reach Airport Station, terminals at Boston Logan are just a free shuttle ride away. The Blue Line connects to the Orange Line at State Street and to the Green Line at Government Center.
Where is the best place to fly into Boston? ›
For flights not only to Boston, but to the surrounding areas in all of Massachusetts, Boston Logan International Airport (BOS) is undoubtedly the best option.
What airline hubs are in Boston? ›
Logan International Airport
General Edward Lawrence Logan International Airport Boston Logan International Airport Hub for Delta Air Lines Focus city for JetBlue Operating base for Cape Air Elevation AMSL 19 ft / 6 m
19 more rows
Article information
Author : Aracelis Kilback
Last Updated : 2025-06-16T23:11:58+07:00
Views : 5547
Rating : 4.3 / 5 (64 voted)
Reviews : 95% of readers found this page helpful
Author information
Name : Aracelis Kilback
Birthday : 1994-11-22
Address : Apt. 895 30151 Green Plain, Lake Mariela, RI 98141
Phone : +5992291857476
Job : Legal Officer
Hobby : LARPing, role-playing games, Slacklining, Reading, Inline skating, Brazilian jiu-jitsu, Dance
Introduction : My name is Aracelis Kilback, I am a nice, gentle, agreeable, joyous, attractive, combative, gifted person who loves writing and wants to share my knowledge and understanding with you.