// Adds dimensions UUID, Author and Topic into GA4
Thursday, June 11, 2026
25 C
Singapore

Earlier start for cross-border buses 160 and 170/170X from JB Checkpoint from Sept 15

SINGAPORE: From September 15, 2025, passengers travelling from Johor Bahru to Singapore will be able to catch cross-border buses 160 and 170/170X a little earlier in the morning.

On weekdays, excluding public holidays, the first bus for both services will now leave Johor Bahru Checkpoint (bus stop 46219) at 4:50 a.m., ten minutes earlier than the current 5:00 a.m. start.

What this means for commuters

For thousands of people who cross the Causeway daily for work or school, those extra 10 minutes could make a real difference. An earlier first bus gives commuters more breathing space to clear immigration, get ahead of the morning crowd, and reach their destinations on time.

Services 160 and 170/170X are among the busiest cross-border routes, linking Johor Bahru with key points in Singapore such as Kranji MRT, Queen Street Terminal, and Bukit Batok. The new schedule is expected to give early travellers more flexibility and a smoother start to their day.

IMG 0685
Photo: SBS Transit SG Official Website
- Advertisement -

Hot this week

SDP chief Chee Soon Juan says he did well at Sembawang West in GE2025 because Singaporeans recognize authenticity

SDP chief Chee Soon Juan spoke to Walid Abdullah on a recent Teh Tarik episode on "Staying true to your principles, to the people, and to yourself." The host asked him why he thought he did well at...

GE20925 candidate says multiple rows of shoes outside flats could cause Singapore to be overcrowded like Hong Kong

On the SG Opposition Facebook page, a man posted a photo of pairs of shoes outside a residential corridor. "While this image alone does not prove overcrowding, it raises questions about corridor ob...

Popular Categories

document.addEventListener("DOMContentLoaded", () => { const trigger = document.getElementById("ads-trigger"); if ('IntersectionObserver' in window && trigger) { const observer = new IntersectionObserver((entries, observer) => { entries.forEach(entry => { if (entry.isIntersecting) { lazyLoader(); // You should define lazyLoader() elsewhere or inline here observer.unobserve(entry.target); // Run once } }); }, { rootMargin: '800px', threshold: 0.1 }); observer.observe(trigger); } else { // Fallback setTimeout(lazyLoader, 3000); } });
// //
Enable Notifications OK No thanks