{% extends "base.html" %} {% from "macros.html" import trip_link with context %} {% block title %}{{ conf.name }} - Edward Betts{% endblock %} {% block style %} {% endblock %} {% block content %}
{{ conf.display_date }}{% if not conf.has_exact_dates %} {{ conf.date_status }}{% endif %}
{% if conf.url %}{% endif %}{{ conf.location }}{% if conf.country and get_country(conf.country) %} · {{ get_country(conf.country).flag }} {{ get_country(conf.country).name }}{% endif %}
{% if conf.venue %}{{ conf.venue }}
{% endif %} {% if conf.address %}{{ conf.address }}
{% endif %} {% if conf.latitude is defined and conf.longitude is defined and conf.latitude is not none and conf.longitude is not none %}View venue on map ({{ conf.latitude }}, {{ conf.longitude }})
{% elif conf.venue or conf.address %} {% endif %} {% if conf.series_detail %}Series: {{ conf.series_detail.name }}
{% endif %} {% if conf.linked_trip %}{{ trip_link(conf.linked_trip) }}
{% endif %}{{ cooldown }}
{% endif %} {% if eligible %} {% if conf.date_status == 'tentative' %}Using tentative conference dates: {{ conf.start_date|conference_date }} – {{ conf.end_date|conference_date }}.
{% endif %}{% if short_haul %}Direct flights from Bristol first. Start the day before and return the day after; if no flights are found, check progressively further dates, up to four days each side. Each direction stops at the nearest date with flights. London is checked if either direction has no Bristol flights.{% else %}Flights from London, departing two days before and returning the day after the conference. If none are found, try departing one day earlier. Direct or one-stop flights first.{% endif %}
{% if resolved_airport %}Destination: {{ resolved_name }}{% if resolved_name != resolved_airport %} ({{ resolved_airport }}){% endif %}
{% endif %} {% if default_google_flights and (not cached or not cached.searches) %}Open in Google Flights ↗Round trip: {{ default_google_flights.departure|conference_date }} – {{ default_google_flights.return|conference_date }}
{% endif %} {% if resolution_error %}{{ resolution_error }}
{% endif %}{% if suggested %}Suggested {{ suggested }}: {{ airport_reason }}. Enter a city, airport name or IATA code to choose another airport.{% else %}{{ airport_reason }}{% endif %}
Direct flights first, with British Airways preferred within each stop count. Other airlines are included. Two-stop flights from London are checked only if no direct or one-stop options are found.
Prices in GBP for one adult, economy. Each direction is priced separately. Results are cached for six hours; updates within that time reuse the cache.
{% else %}Flight lookup is available for future conferences overseas or in Belfast with confirmed or tentative dates and an in-person venue.
{% endif %} {% if cached %}Last updated:
{% if cached.error %}{{ cached.error }}{% if cached.searches %} Showing previously cached results.{% endif %}
{% if cached.error_details %}{{ cached.error_details }}
{% endif %}Open in Google Flights ↗Round trip: {{ search.google_flights.departure|conference_date }} – {{ search.google_flights.return|conference_date }}
{% for label, rows, days in [('Outbound', search.outbound, search.outbound_dates), ('Return', search.inbound, search.inbound_dates)] %}Departure and arrival times are local to each airport.
{% endif %} {% if rows %}| Departure | Arrival | Flight | Stops | Duration | Price |
|---|---|---|---|---|---|
| {% for leg in flight.legs %}{{ leg.airline }} {{ leg.number }} ({{ leg.origin }}–{{ leg.destination }}){% if not loop.last %} {% endif %}{% endfor %} |
{{ 'Direct' if flight.stops == 0 else flight.stops|string ~ (' stop' if flight.stops == 1 else ' stops') }} | {% if flight.duration is defined %}{{ flight.duration // 60 }}h {{ flight.duration % 60 }}m{% else %}—{% endif %} | {% if flight.price is not none %}{{ '£' if flight.currency == 'GBP' else flight.currency ~ ' ' }}{{ '%.2f'|format(flight.price) }}{% else %}Check price{% endif %} ↗ |
{{ 'No direct flights found' if search.origin == 'BRS' else 'No suitable flights found' }}{% if days %} for departures on {{ days|map('conference_date')|join(', ') }}{% else %}: no eligible departure dates{% endif %}.{% if search.origin == 'BRS' and days %} Direct flights may not operate every day.{% endif %}
{% endif %} {% endfor %} {% endfor %} {% endif %}