Transport within Brazil is overwhelmingly road based, accounting for about 95% of travel. Thus, the Brazilian bus service is fairly good with high quality buses connecting most major cities.
To go from Guarulhos to Ribeirão Preto by bus you first need to get to the São Paulo Bus Station, known as Terminal Rodoviário Tietê (pronounced Tee eh teh) or simply as Rodoviária, which means bus station in Portuguese, (pronounced Hodohveeahrea). To do so, you can take a blue and red shuttle bus operated by the company Airport Service (the same one which runs buses to Congonhas). Be sure to ask for a bus to Terminal Rodoviário Tietê when buying your ticket because this company also runs buses to other destinations within São Paulo. There is approximately one bus per hour. You can also go to Tietê Station by taxi. If you want to go by taxi you should avoid getting ordinary taxis and take a blue and white (azul e branco) or red and white (vermelho e branco) radio taxi. Under good traffic conditions the bus or taxi ride from Guarulhos to Tietê Station takes about 45 minutes.
Tietê Bus Station is the largest and busiest bus station in Brazil. There are hundreds of buses serving virtually every corner of Brazil and some South American countries. The bus station is also connected with a subway (metro) station, also called Tietê Station, so you will see a lot of commuters walking around. There are two bus companies which run buses to Ribeirão Preto: Rápido Ribeirão Preto and Viação Cometa. The buses run from 6:00 am to 1:00 am approximately every half an hour. To buy your ticket you would be better off going to the Information Desk (Balcão de Informações) located in the upper floor and ask them where are the ticket desks of the two companies. After buying your ticket be sure to know the number and location of the platform from which your bus will depart (they are located downstairs). Notice: Since Tietê Station is a crowded area you should always watch your personal belongings carefully.
The bus ride from São Paulo to Ribeirão Preto lasts about four and a half hours. The rides have a 20 minute stop in the middle of the journey. The buses are equipped with air-conditioning and toilets. Once in Ribeirão Preto, the bus makes two stops. The first is at the so-called Mini-Rodoviária de Ribeirão Preto and the second is at the main bus station in downtown Ribeirão Preto, which is also the end of the trip. It is better to drop off the bus at the main station. If there is nobody waiting for you at the station, it is better to leave the arrival platform and go downstairs straight to the front of the station where there are taxis you can take to your hotel.