Through Hungary
First you need to get to Mukachevo to change trains to Budapest:
- from Kyiv - train #81 (Kyiv 18:29, Mukachevo 09:15);
- from Zaporizhzhia and Dnipro - train #4 (Zaporizhzhia 16:48, Dnipro 19:10, Mukachevo 14:15);
- from Odesa - train #38 (Odesa 14:58, Mukachevo 08:01);
- from Kharkiv - train #17 (Kharkiv 14:07, Mukachevo 09:34) or train #45 (Kharkiv 13:43, Mukachevo 13:23).
The cost of the ticket is from 800 to 1400 UAH, you can buy tickets in the app "Ukrzaliznytsia" or at the station ticket office.
Two direct trains depart daily from Mukachevo to Budapest:
- #33 "Latorica" Mukachevo - Budapest.
- Departure from Mukachevo at 12:30, arrival at Budapest-Nyugati station at 18:37;
- #31 "Latorica" Mukachevo - Budapest.
- Departure from Mukachevo at 16:30, Budapest-Nyugati at 22:37.
The cost of the ticket is about 800 hryvnia, you can buy a ticket only on the spot at the ticket office at the station. The train "Latorica" leaves from the station "Zapadnaya", which is located 500m from the station Mukachevo - keep this in mind to not miss the train.
Since the train arrives in the evening and there are no evening flights to Spain, you will have to spend the night in Budapest - wait a few hours for the plane at the airport, most flights to Spain are in the early morning.
You can get to the airport by bus. From the city center (from the stop "Deak Ferenc ter M") every 20 minutes around the clock to the airport runs bus number 100 - the fare is 1580 forints (about 3.5 euros).
What are the flights from Budapest?
The cheapest flight is to Barcelona from €29 one way, slightly more expensive to Costa del Asaar, Valencia, Alicante and Palma de Mallorca from €44, even more expensive to Malaga, Madrid and Tenerife from €70 one way. Of course, if you buy tickets in advance.