The average train between Princeton Junction and Berkeley Heights takes 2h 47m and the fastest train takes 1h 56m. There is a train service every few hours from Princeton Junction to Berkeley Heights. The journey time may be longer on weekends and holidays; use the search form on this page to search for a specific travel date.
Trains run hourly between Princeton Junction and Berkeley Heights. The earliest departure is at 12:15 AM at night, and the last departure from Princeton Junction is at 11:36 PM which arrives into Berkeley Heights at 7:31 AM. All services require a transfer at Secaucus Upper Level and take an average of 2h 47m. The schedules shown below are for the next available departures.
Arrives next day


3h 42m • 2 changes
Arrives next day


7h 55m • 2 changes


3h 17m • 2 changes


3h 20m • 2 changes


3h • 2 changes


3h • 2 changes


2h 15m • 2 changes


3h 17m • 2 changes


3h 20m • 2 changes


3h • 2 changes


2h 15m • 2 changes


2h 16m • 2 changes


2h 9m • 2 changes


2h 3m • 2 changes
Want to know about travelling from Princeton Junction to Berkeley Heights? We have put together a list of the most frequently asked questions from our users such as: What is the cheapest mode of transport? What is the quickest option? How much do tickets usually cost? and many more.
No, there is no direct train from Princeton Junction to Berkeley Heights. However, there are services departing from Princeton Junction station and arriving at Berkeley Heights station via Secaucus Upper Level. The journey, including transfers, takes approximately 2h 47m.
Princeton Junction to Berkeley Heights train services, operated by NJ Transit, depart from Princeton Jct. station.
Princeton Junction to Berkeley Heights train services, operated by NJ Transit, arrive at Summit station.
The distance between Princeton Junction and Berkeley Heights is 43.4 km. The road distance is 107 km.
You can take a train from Princeton Jct. to Berkeley Heights via Secaucus Upper Level and Summit in around 3h 4m.