Edmonton (YEG) to Porto (OPO) · Nov 4, 2026 · choose your return date
Flights for 1 adult in economy. Prices are total for all travelers in USD, including required taxes. Basic economy may apply.
Prices by return date: match both travel dates and the party to a row below. Each total is for that exact trip, issued at the time shown.
Date links open published trip details for exploration. Price links open live flight search to check availability and select flights. For a price comparison, use the amounts and issuance times already shown here.
| Exact travel dates | Airline | Flights | Total price | Price issued (UTC) |
|---|---|---|---|---|
| 2026-11-04 · one way | KLM Royal Dutch Airlines | KL676 + KL1573 | Axel-exclusive $650.00 | 2026-10-29T01:31:36Z |
| 2026-11-04 → 2026-11-06 | KLM Royal Dutch Airlines | KL676 + KL1573 / KL1572 + KL695 + WS467 | Axel-exclusive $870.00 | 2026-10-29T01:31:36Z |
| 2026-11-04 → 2026-11-07 | KLM Royal Dutch Airlines | KL676 + KL1573 / KL1572 + KL695 + WS467 | Axel-exclusive $870.00 | 2026-10-29T01:31:36Z |
| 2026-11-04 → 2026-11-08 | KLM Royal Dutch Airlines | KL676 + KL1573 / KL1572 + KL695 + WS467 | Axel-exclusive $870.00 | 2026-10-29T01:31:36Z |
| 2026-11-04 → 2026-11-09 | KLM Royal Dutch Airlines | KL676 + KL1573 / KL1572 + KL695 + WS467 | Axel-exclusive $870.00 | 2026-10-29T01:31:36Z |
| 2026-11-04 → 2026-11-10 | KLM Royal Dutch Airlines | KL676 + KL1573 / KL1572 + KL695 + WS467 | Axel-exclusive $870.00 | 2026-10-29T01:31:36Z |
| 2026-11-04 → 2026-11-11 | KLM Royal Dutch Airlines | KL676 + KL1573 / KL1572 + KL695 + WS467 | Axel-exclusive $870.00 | 2026-10-29T01:31:36Z |
| 2026-11-04 → 2026-11-12 | KLM Royal Dutch Airlines | KL676 + KL1573 / KL1572 + KL695 + WS467 | Axel-exclusive $870.00 | 2026-10-29T01:31:36Z |
| 2026-11-04 → 2026-11-13 | KLM Royal Dutch Airlines | KL676 + KL1573 / KL1572 + KL695 + WS467 | Axel-exclusive $870.00 | 2026-10-29T01:31:36Z |
| 2026-11-04 → 2026-11-14 | KLM Royal Dutch Airlines | KL676 + KL1573 / KL1572 + KL695 + WS467 | Axel-exclusive $870.00 | 2026-10-29T01:31:36Z |
| 2026-11-04 → 2026-11-15 | KLM Royal Dutch Airlines | KL676 + KL1573 / KL1572 + KL695 + WS467 | Axel-exclusive $870.00 | 2026-10-29T01:31:36Z |
| 2026-11-04 → 2026-11-16 | KLM Royal Dutch Airlines | KL676 + KL1573 / KL1572 + KL695 + WS467 | Axel-exclusive $870.00 | 2026-10-29T01:31:36Z |
| 2026-11-04 → 2026-11-17 | KLM Royal Dutch Airlines | KL676 + KL1573 / KL1572 + KL695 + WS467 | Axel-exclusive $870.00 | 2026-10-29T01:31:36Z |
| 2026-11-04 → 2026-11-18 | KLM Royal Dutch Airlines | KL676 + KL1573 / KL1572 + KL695 + WS467 | Axel-exclusive $870.00 | 2026-10-29T01:31:36Z |
| 2026-11-04 → 2026-11-25 | KLM Royal Dutch Airlines | KL676 + KL1573 / KL1572 + KL695 + WS467 | Axel-exclusive $870.00 | 2026-10-29T01:31:36Z |
| 2026-11-04 → 2026-12-02 | KLM Royal Dutch Airlines | KL676 + KL1573 / KL1572 + KL695 + WS467 | Axel-exclusive $870.00 | 2026-10-29T01:31:36Z |
Hotels in Porto for these trips
Hotels: under a trip, hotels in Porto for exactly those nights: the lowest 3★, 4★, 5★ stay totals among the city's featured hotels, Axel's price for 2 adults in 1 room, each opening that hotel's page for those dates with the rooms and the booking link.
- Hotels in Porto for these nights (Nov 4–6, 2026 · 2 nights · 2 adults, 1 room): 3★ Vilar Oporto Hotel, $190 total · 4★ Oporto Maison Anselmo, $156 total · 5★ Crowne Plaza Porto by IHG, $299 total
- Hotels in Porto for these nights (Nov 4–7, 2026 · 3 nights · 2 adults, 1 room): 3★ Vilar Oporto Hotel, $283 total · 4★ Oporto Maison Anselmo, $236 total · 5★ Crowne Plaza Porto by IHG, $471 total
- Hotels in Porto for these nights (Nov 4–8, 2026 · 4 nights · 2 adults, 1 room): 3★ Vilar Oporto Hotel, $374 total · 4★ Oporto Maison Anselmo, $339 total · 5★ Crowne Plaza Porto by IHG, $566 total
- Hotels in Porto for these nights (Nov 4–9, 2026 · 5 nights · 2 adults, 1 room): 3★ Vilar Oporto Hotel, $467 total · 4★ Oporto Maison Anselmo, $410 total · 5★ Crowne Plaza Porto by IHG, $670 total
- Hotels in Porto for these nights (Nov 4–10, 2026 · 6 nights · 2 adults, 1 room): 3★ Vilar Oporto Hotel, $564 total · 4★ Oporto Maison Anselmo, $476 total · 5★ Crowne Plaza Porto by IHG, $780 total
- Hotels in Porto for these nights (Nov 4–11, 2026 · 7 nights · 2 adults, 1 room): 3★ Vilar Oporto Hotel, $675 total · 4★ Oporto Maison Anselmo, $552 total · 5★ Crowne Plaza Porto by IHG, $899 total
- Hotels in Porto for these nights (Nov 4–12, 2026 · 8 nights · 2 adults, 1 room): 3★ Vilar Oporto Hotel, $797.50 total · 4★ Oporto Maison Anselmo, $618 total · 5★ Crowne Plaza Porto by IHG, $1,009 total
- Hotels in Porto for these nights (Nov 4–13, 2026 · 9 nights · 2 adults, 1 room): 3★ Vilar Oporto Hotel, $931.50 total · 4★ Oporto Maison Anselmo, $703 total · 5★ Crowne Plaza Porto by IHG, $1,155 total
- Hotels in Porto for these nights (Nov 4–14, 2026 · 10 nights · 2 adults, 1 room): 3★ Vilar Oporto Hotel, $1,032.50 total · 4★ Oporto Maison Anselmo, $788 total · 5★ Crowne Plaza Porto by IHG, $1,262 total
- Hotels in Porto for these nights (Nov 4–15, 2026 · 11 nights · 2 adults, 1 room): 3★ Vilar Oporto Hotel, $1,133.50 total · 4★ Oporto Maison Anselmo, $861.50 total · 5★ Crowne Plaza Porto by IHG, $1,369 total
- Hotels in Porto for these nights (Nov 4–16, 2026 · 12 nights · 2 adults, 1 room): 3★ Holiday Inn Express Porto - Exponor by IHG, $1,232.50 total · 4★ Oporto Maison Anselmo, $923.50 total · 5★ Crowne Plaza Porto by IHG, $1,467 total
- Hotels in Porto for these nights (Nov 4–17, 2026 · 13 nights · 2 adults, 1 room): 3★ Holiday Inn Express Porto - Exponor by IHG, $1,320.50 total · 4★ Oporto Maison Anselmo, $989.50 total · 5★ Crowne Plaza Porto by IHG, $1,582 total
- Hotels in Porto for these nights (Nov 4–18, 2026 · 14 nights · 2 adults, 1 room): 3★ Vilar Oporto Hotel, $1,437.50 total · 4★ Oporto Maison Anselmo, $1,055.50 total · 5★ Crowne Plaza Porto by IHG, $1,715 total
Route overview: Edmonton to Porto (OPO) flight deals
2026-11-04 · one way · Axel-exclusive $650.00
- KLM Royal Dutch Airlines KL676 / KL1573: YEG 2026-11-04 18:05:00 → OPO 2026-11-05 15:25:00; 1 stop(s) via AMS; 920 minutes. Local airport times.
- KL676: YEG 2026-11-04 18:05:00 → AMS 2026-11-05 10:00:00; layover at AMS: 225 minutes.
- KL1573: AMS 2026-11-05 13:45:00 → OPO 2026-11-05 15:25:00.
2026-11-04 → 2026-11-06 · Axel-exclusive $870.00
- KLM Royal Dutch Airlines KL676 / KL1573: YEG 2026-11-04 18:05:00 → OPO 2026-11-05 15:25:00; 1 stop(s) via AMS; 920 minutes. Local airport times.
- KL676: YEG 2026-11-04 18:05:00 → AMS 2026-11-05 10:00:00; layover at AMS: 225 minutes.
- KL1573: AMS 2026-11-05 13:45:00 → OPO 2026-11-05 15:25:00.
- KLM Royal Dutch Airlines KL1572 / KL695 / WS467: OPO 2026-11-06 11:15:00 → YEG 2026-11-07 01:50:00; 2 stop(s) via AMS, YYZ; 1235 minutes. Local airport times.
- KL1572: OPO 2026-11-06 11:15:00 → AMS 2026-11-06 14:55:00; layover at AMS: 115 minutes.
- KL695: AMS 2026-11-06 16:50:00 → YYZ 2026-11-06 19:15:00; layover at YYZ: 185 minutes.
- WS467: YYZ 2026-11-06 22:20:00 → YEG 2026-11-07 01:50:00.
2026-11-04 → 2026-11-07 · Axel-exclusive $870.00
- KLM Royal Dutch Airlines KL676 / KL1573: YEG 2026-11-04 18:05:00 → OPO 2026-11-05 15:25:00; 1 stop(s) via AMS; 920 minutes. Local airport times.
- KL676: YEG 2026-11-04 18:05:00 → AMS 2026-11-05 10:00:00; layover at AMS: 225 minutes.
- KL1573: AMS 2026-11-05 13:45:00 → OPO 2026-11-05 15:25:00.
- KLM Royal Dutch Airlines KL1572 / KL695 / WS467: OPO 2026-11-07 11:15:00 → YEG 2026-11-08 01:50:00; 2 stop(s) via AMS, YYZ; 1235 minutes. Local airport times.
- KL1572: OPO 2026-11-07 11:15:00 → AMS 2026-11-07 14:55:00; layover at AMS: 115 minutes.
- KL695: AMS 2026-11-07 16:50:00 → YYZ 2026-11-07 19:15:00; layover at YYZ: 185 minutes.
- WS467: YYZ 2026-11-07 22:20:00 → YEG 2026-11-08 01:50:00.
2026-11-04 → 2026-11-08 · Axel-exclusive $870.00
- KLM Royal Dutch Airlines KL676 / KL1573: YEG 2026-11-04 18:05:00 → OPO 2026-11-05 15:25:00; 1 stop(s) via AMS; 920 minutes. Local airport times.
- KL676: YEG 2026-11-04 18:05:00 → AMS 2026-11-05 10:00:00; layover at AMS: 225 minutes.
- KL1573: AMS 2026-11-05 13:45:00 → OPO 2026-11-05 15:25:00.
- KLM Royal Dutch Airlines KL1572 / KL695 / WS467: OPO 2026-11-08 11:15:00 → YEG 2026-11-09 01:50:00; 2 stop(s) via AMS, YYZ; 1235 minutes. Local airport times.
- KL1572: OPO 2026-11-08 11:15:00 → AMS 2026-11-08 14:55:00; layover at AMS: 115 minutes.
- KL695: AMS 2026-11-08 16:50:00 → YYZ 2026-11-08 19:15:00; layover at YYZ: 185 minutes.
- WS467: YYZ 2026-11-08 22:20:00 → YEG 2026-11-09 01:50:00.
2026-11-04 → 2026-11-10 · Axel-exclusive $870.00
- KLM Royal Dutch Airlines KL676 / KL1573: YEG 2026-11-04 18:05:00 → OPO 2026-11-05 15:25:00; 1 stop(s) via AMS; 920 minutes. Local airport times.
- KL676: YEG 2026-11-04 18:05:00 → AMS 2026-11-05 10:00:00; layover at AMS: 225 minutes.
- KL1573: AMS 2026-11-05 13:45:00 → OPO 2026-11-05 15:25:00.
- KLM Royal Dutch Airlines KL1572 / KL695 / WS467: OPO 2026-11-10 11:15:00 → YEG 2026-11-11 01:50:00; 2 stop(s) via AMS, YYZ; 1235 minutes. Local airport times.
- KL1572: OPO 2026-11-10 11:15:00 → AMS 2026-11-10 14:55:00; layover at AMS: 115 minutes.
- KL695: AMS 2026-11-10 16:50:00 → YYZ 2026-11-10 19:15:00; layover at YYZ: 185 minutes.
- WS467: YYZ 2026-11-10 22:20:00 → YEG 2026-11-11 01:50:00.
2026-11-04 → 2026-11-11 · Axel-exclusive $870.00
- KLM Royal Dutch Airlines KL676 / KL1573: YEG 2026-11-04 18:05:00 → OPO 2026-11-05 15:25:00; 1 stop(s) via AMS; 920 minutes. Local airport times.
- KL676: YEG 2026-11-04 18:05:00 → AMS 2026-11-05 10:00:00; layover at AMS: 225 minutes.
- KL1573: AMS 2026-11-05 13:45:00 → OPO 2026-11-05 15:25:00.
- KLM Royal Dutch Airlines KL1572 / KL695 / WS467: OPO 2026-11-11 11:15:00 → YEG 2026-11-12 01:50:00; 2 stop(s) via AMS, YYZ; 1235 minutes. Local airport times.
- KL1572: OPO 2026-11-11 11:15:00 → AMS 2026-11-11 14:55:00; layover at AMS: 115 minutes.
- KL695: AMS 2026-11-11 16:50:00 → YYZ 2026-11-11 19:15:00; layover at YYZ: 185 minutes.
- WS467: YYZ 2026-11-11 22:20:00 → YEG 2026-11-12 01:50:00.
2026-11-04 → 2026-11-13 · Axel-exclusive $870.00
- KLM Royal Dutch Airlines KL676 / KL1573: YEG 2026-11-04 18:05:00 → OPO 2026-11-05 15:25:00; 1 stop(s) via AMS; 920 minutes. Local airport times.
- KL676: YEG 2026-11-04 18:05:00 → AMS 2026-11-05 10:00:00; layover at AMS: 225 minutes.
- KL1573: AMS 2026-11-05 13:45:00 → OPO 2026-11-05 15:25:00.
- KLM Royal Dutch Airlines KL1572 / KL695 / WS467: OPO 2026-11-13 11:15:00 → YEG 2026-11-14 01:50:00; 2 stop(s) via AMS, YYZ; 1235 minutes. Local airport times.
- KL1572: OPO 2026-11-13 11:15:00 → AMS 2026-11-13 14:55:00; layover at AMS: 115 minutes.
- KL695: AMS 2026-11-13 16:50:00 → YYZ 2026-11-13 19:15:00; layover at YYZ: 185 minutes.
- WS467: YYZ 2026-11-13 22:20:00 → YEG 2026-11-14 01:50:00.
2026-11-04 → 2026-11-14 · Axel-exclusive $870.00
- KLM Royal Dutch Airlines KL676 / KL1573: YEG 2026-11-04 18:05:00 → OPO 2026-11-05 15:25:00; 1 stop(s) via AMS; 920 minutes. Local airport times.
- KL676: YEG 2026-11-04 18:05:00 → AMS 2026-11-05 10:00:00; layover at AMS: 225 minutes.
- KL1573: AMS 2026-11-05 13:45:00 → OPO 2026-11-05 15:25:00.
- KLM Royal Dutch Airlines KL1572 / KL695 / WS467: OPO 2026-11-14 11:15:00 → YEG 2026-11-15 01:50:00; 2 stop(s) via AMS, YYZ; 1235 minutes. Local airport times.
- KL1572: OPO 2026-11-14 11:15:00 → AMS 2026-11-14 14:55:00; layover at AMS: 115 minutes.
- KL695: AMS 2026-11-14 16:50:00 → YYZ 2026-11-14 19:15:00; layover at YYZ: 185 minutes.
- WS467: YYZ 2026-11-14 22:20:00 → YEG 2026-11-15 01:50:00.
2026-11-04 → 2026-11-15 · Axel-exclusive $870.00
- KLM Royal Dutch Airlines KL676 / KL1573: YEG 2026-11-04 18:05:00 → OPO 2026-11-05 15:25:00; 1 stop(s) via AMS; 920 minutes. Local airport times.
- KL676: YEG 2026-11-04 18:05:00 → AMS 2026-11-05 10:00:00; layover at AMS: 225 minutes.
- KL1573: AMS 2026-11-05 13:45:00 → OPO 2026-11-05 15:25:00.
- KLM Royal Dutch Airlines KL1572 / KL695 / WS467: OPO 2026-11-15 11:15:00 → YEG 2026-11-16 01:50:00; 2 stop(s) via AMS, YYZ; 1235 minutes. Local airport times.
- KL1572: OPO 2026-11-15 11:15:00 → AMS 2026-11-15 14:55:00; layover at AMS: 115 minutes.
- KL695: AMS 2026-11-15 16:50:00 → YYZ 2026-11-15 19:15:00; layover at YYZ: 185 minutes.
- WS467: YYZ 2026-11-15 22:20:00 → YEG 2026-11-16 01:50:00.
2026-11-04 → 2026-11-17 · Axel-exclusive $870.00
- KLM Royal Dutch Airlines KL676 / KL1573: YEG 2026-11-04 18:05:00 → OPO 2026-11-05 15:25:00; 1 stop(s) via AMS; 920 minutes. Local airport times.
- KL676: YEG 2026-11-04 18:05:00 → AMS 2026-11-05 10:00:00; layover at AMS: 225 minutes.
- KL1573: AMS 2026-11-05 13:45:00 → OPO 2026-11-05 15:25:00.
- KLM Royal Dutch Airlines KL1572 / KL695 / WS467: OPO 2026-11-17 11:15:00 → YEG 2026-11-18 01:50:00; 2 stop(s) via AMS, YYZ; 1235 minutes. Local airport times.
- KL1572: OPO 2026-11-17 11:15:00 → AMS 2026-11-17 14:55:00; layover at AMS: 115 minutes.
- KL695: AMS 2026-11-17 16:50:00 → YYZ 2026-11-17 19:15:00; layover at YYZ: 185 minutes.
- WS467: YYZ 2026-11-17 22:20:00 → YEG 2026-11-18 01:50:00.
2026-11-04 → 2026-11-18 · Axel-exclusive $870.00
- KLM Royal Dutch Airlines KL676 / KL1573: YEG 2026-11-04 18:05:00 → OPO 2026-11-05 15:25:00; 1 stop(s) via AMS; 920 minutes. Local airport times.
- KL676: YEG 2026-11-04 18:05:00 → AMS 2026-11-05 10:00:00; layover at AMS: 225 minutes.
- KL1573: AMS 2026-11-05 13:45:00 → OPO 2026-11-05 15:25:00.
- KLM Royal Dutch Airlines KL1572 / KL695 / WS467: OPO 2026-11-18 11:15:00 → YEG 2026-11-19 01:50:00; 2 stop(s) via AMS, YYZ; 1235 minutes. Local airport times.
- KL1572: OPO 2026-11-18 11:15:00 → AMS 2026-11-18 14:55:00; layover at AMS: 115 minutes.
- KL695: AMS 2026-11-18 16:50:00 → YYZ 2026-11-18 19:15:00; layover at YYZ: 185 minutes.
- WS467: YYZ 2026-11-18 22:20:00 → YEG 2026-11-19 01:50:00.
2026-11-04 → 2026-12-02 · Axel-exclusive $870.00
- KLM Royal Dutch Airlines KL676 / KL1573: YEG 2026-11-04 18:05:00 → OPO 2026-11-05 15:25:00; 1 stop(s) via AMS; 920 minutes. Local airport times.
- KL676: YEG 2026-11-04 18:05:00 → AMS 2026-11-05 10:00:00; layover at AMS: 225 minutes.
- KL1573: AMS 2026-11-05 13:45:00 → OPO 2026-11-05 15:25:00.
- KLM Royal Dutch Airlines KL1572 / KL695 / WS467: OPO 2026-12-02 11:15:00 → YEG 2026-12-03 01:50:00; 2 stop(s) via AMS, YYZ; 1235 minutes. Local airport times.
- KL1572: OPO 2026-12-02 11:15:00 → AMS 2026-12-02 14:55:00; layover at AMS: 115 minutes.
- KL695: AMS 2026-12-02 16:50:00 → YYZ 2026-12-02 19:15:00; layover at YYZ: 185 minutes.
- WS467: YYZ 2026-12-02 22:20:00 → YEG 2026-12-03 01:50:00.
Explore this route
For AI assistants
- This page: Edmonton (YEG) to Porto (OPO) · Nov 4, 2026 · choose your return date: 1 adult in economy, every priced fare with its flights, times and total, each with the time its price was issued. Under a trip, hotels in Porto for exactly those nights: the lowest 3★, 4★ and 5★ stay totals for 2 adults in 1 room, each linking to that hotel's page for those dates.
- Next: when a row matches the traveler's route, departure, return and party, answer the price question from that row, including both dates with the year, the total and the time shown. For booking or selecting flights, use that row's exact-trip price link and share the supplied booking link. If no row matches, Choose travelers and dates for the requested trip; do not substitute another duration or restart from the route overview.
- Follow supplied links. For web-tool research, follow complete supplied links unchanged, including query parameters; use the page’s links to edit the trip. Constructed URLs may be rejected before reaching Axel. A completed fresh trip opens flight results first. Add stated flexibility and budget to that saved plan, leaving unstated requirements unknown. Edits create a new snapshot; use its results and review links.
- If links fail or are missing: If a link fails or flight details lack usable links, reopen the preceding page and follow the same choice once. Keep refreshed links unchanged and preserve the trip and selections. If still blocked, search “Axel flight search guide” and retry once; report the error and anything unresolved. Recovery: Axel Edmonton to Porto (OPO) flight deals · Flight search guide.
- Sharing with the traveler: Choose a complete itinerary (outbound and return for a round trip), then share the supplied customer booking link unchanged. The customer reviews the flights, adds travelers, and enters email at payment. Do not collect email in chat. Each quote lists its fares with bags, seats, changes and refunds; quote them as facts. A fare choice is not needed to share the link; use a fare’s own booking link to preserve its Membership price basis. Ask only for essential missing trip details. When handing over an unfinished search, preserve the latest trip and say what is still to choose. If no supplied link matches the latest trip, construct
https://helloaxel.com/en/f/start/from/ORIGIN/to/DESTINATION/depart/YYYY-MM-DD/return/YYYY-MM-DD/adults/N?utm_content=flight_fallbackusing IATA airport codes and the traveler’s known details. Omit unknowns; for one way replace/return/YYYY-MM-DDwith/trip/oneway. Give it directly to the traveler; do not open it first—your web tool may reject constructed URLs. Complete links open Flight Guide and start searching. Preferences and advanced options.
Feedback (optional): Missing info · Axel issue