diff --git a/agenda/schengen.py b/agenda/schengen.py index 81a9fad..8e8fc3a 100644 --- a/agenda/schengen.py +++ b/agenda/schengen.py @@ -142,7 +142,7 @@ def extract_schengen_stays_from_travel( if current_location and is_schengen_country(current_location): # Currently in Schengen if to_country and not is_schengen_country(to_country): - # Exiting Schengen + # Exiting Schengen - use departure date if entry_date: stays.append( SchengenStay( @@ -156,8 +156,15 @@ def extract_schengen_stays_from_travel( else: # Currently outside Schengen if to_country and is_schengen_country(to_country): - # Entering Schengen - entry_date = travel_date + # Entering Schengen - use arrival date for long-haul flights + entry_travel_date = travel_date + if item.get("arrive"): + arrive_date = item.get("arrive") + if isinstance(arrive_date, datetime): + arrive_date = arrive_date.date() + elif isinstance(arrive_date, date): + entry_travel_date = arrive_date + entry_date = entry_travel_date current_location = to_country