(This is an example itinerary on how to get, by public transport, from Lisbon Airport to Lagos, Algarve based on a mid/late-morning flight arrival.)
With children, I would usually recommend the train.
There is a 14h20 train departure from Lisbon Gare Oriente arriving in Lagos at 18h57. (Change at Tunes junction.) One can buy tickets online at www.cp.pt (click on the Union Jack in the top right hand corner for the english version.)
There is a 12:30 departure EVA Bus departure from Lisbon Sete Rios Bus Station arriving Lagos Bus Station at 16:15. One would need to take a taxi from the Airport to the Bus Station, as timing may be tight by the time one pass through immigration and collect your bags. This bus does NOT stop en route...there is an on-board toilet. One can buy tickets on-line through http://www.rede-expressos.pt/. (click on the Union Jack in the top right hand corner for the english version.)
If you miss this bus, the next service from this bus station is the 14:00 Rede Expressos arriving 18:05 and there will be a 15 to 20 minute stop en route. (Instructions for ticket purchase as above)
The Renex.pt bus takes the longest but there is one that leaves Lisbon Gare Oriente Train/Bus station at 13:00 arriving Lagos 17:30. There will be a 15 to 20 minute stop en route. This appears time-wise to be the best connection. However, purchasing tickets for these Renex services outside Portugal can be a pain. The Lagos Renex agent says that if one calls the Lisbon office on 218 956 836, they can reserve seats and one can pick up the tickets at the RENEX Gare Oriente Ticket office on arrival there. There is no email service.
The problem with groups and in high season one really needs to reserve tickets before hand to ensure seats.
If one choosea either the RENEX Bus or the CP Train from Lisbon Gare Oriente, one can get the Lisbon Metro Red Line from the Airport in the direction of São Sebastião. It is only three stops.
From Lagos to Luz one has have two options: taxi or bus
The relevant bus timetable can be found here: