Transdev has buses leaving at least hourly for Braga (€3.15, 50 minutes) Monday through Saturday, and eight buses on Sunday. It also has services to Porto (€5.10, 50 minutes) running approximately hourly on weekdays but less often on weekends, and to Lisbon (€20.50, five hours) daily.
Rodonorte heads for Amarante (€7.60, one hour), Vila Real (€8.50, two hours) and Bragança (€14.50, four hours).
Get Bus has six buses daily that do the 50-minute run between the Porto airport and Guimarães, in each direction. The one-way fare is €8 (€4 for children); return is €14 (€8 for children).
Guimarães is the terminus of a branch of Porto’s wide suburbano network. Commuter trains potter out to Guimarães from Porto (€3.10, 75 minutes) 11 to 16 times daily. Try to avoid the once-daily intercidade (express) train, which costs €11.70 and departs at 7.43am.