Tower Transit Bus Service 969 is a trunk route between Woodlands Bus Interchange and Tampines Interchange, passing through Admiralty, Gambas Avenue, Yishun, Khatib and Tampines Concourse. The popular route plies a long express sector along the SLE and TPE, offering the fastest bus connection between Tampines and Khatib/Yishun.

| Route Overview | ||||||||||||
| Route |
Woodlands Integrated Transport Hub ↔ Tampines Bus Interchange |
|||||||||||
| Passes Through | Woodlands Ave 7, Gambas Ave, Yishun Ave 2, SLE, TPE, Tampines Concourse | |||||||||||
| Route Length | Towards Tampines: 27.4 km | Towards Woodlands: 27.0 km | ||||||||||
| Travelling Time | 70 mins | |||||||||||
| Operator Information | ||||||||||||
| BCM Route Package | Sembawang–Yishun Bus Package | |||||||||||
| Current Operator | Tower Transit Singapore Pte Ltd (Tower Transit Singapore) |
|||||||||||
| Current Depot | Mandai Bus Depot | |||||||||||
| Current Fleet | Single-deck & Double-deck buses | |||||||||||
| Operating Hours | ||||||||||||
| Departure Times from Woodlands |
Weekdays & Saturdays | Sundays / Public Holidays |
||||||||||
| 05:30 – 23:45 | 05:45 – 23:45 | |||||||||||
| Departure Times from Tampines |
Weekdays & Saturdays | Sundays / Public Holidays |
||||||||||
| 05:30 – 23:45 | 05:45 – 23:45 | |||||||||||
| Operating Frequency | ||||||||||||
| From Woodlands | 6:30am–8.30am | 8.31am–4.59pm | 5.00pm–7.00pm | After 7.00pm | ||||||||
| Weekdays | 4 – 8 mins | 4 – 9 mins | 5 – 12 mins | 8 – 12 mins | ||||||||
| Saturdays | 10 – 11 mins | 9 – 11 mins | 9 – 11 mins | 9 – 15 mins | ||||||||
| Sundays / Public Holidays | 11 – 12 mins | 11 – 12 mins | 12 mins | 12 – 15 mins | ||||||||
| From Tampines | 6:30am–8.30am | 8.31am–4.59pm | 5.00pm–7.00pm | After 7.00pm | ||||||||
| Weekdays | 7 – 10 mins | 5 – 10 mins | 5 – 6 mins | 5 – 9 mins | ||||||||
| Saturdays | 10 – 13 mins | 9 – 12 mins | 10 mins | 9 – 13 mins | ||||||||
| Sundays / Public Holidays | 12 – 13 mins | 11 – 12 mins | 11 – 12 mins | 11 – 13 mins | ||||||||
| Fare Information |
||||||||||||
| Fare | Charges regular distance fares |
|||||||||||
Service 969 is an inter-town route serving between the housing estates around Woodlands, Yishun and Tampines. The route is frequented as a fast connection between Yishun and Tampines owing to its express sector along the Seletar Expressway (SLE) and Tampines Expressway (TPE). The route also calls at TPE (Bef / Aft Punggol Rd) for convenient transfers to and from other TPE Corridor bus services.
As the fastest public transport link between Tampines and Yishun, this service experiences good demand all day round with significantly higher demand during peak hours. Many buses are added during peak periods to cope with the demand increase, and high capacity double-deck buses were deployed from August 2014 to cope with peak hour loads. The journey between Yishun and Tampines takes around 40 minutes during off-peak periods.
MRT Stations Served:
Special Departures:
- Sembawang Rd (Blk 114) → Tampines Int
Weekdays: 05:40, 05:45, 05:53, 06:03 & 06:07
Saturdays: 05:40 - Yishun Ave 2 (Opp Yishun Stn) → Tampines Int
Weekdays: 06:41, 07:28 & 18:15 - Yishun Ave 2 (Yishun Stn) → Woodlands Int
Weekdays: 06:32
Short Trip Service
- Service 969A: Tampines Int → Yishun Ave 2 (Yishun Stn)
Weekdays, except Public Holidays: 08:10 & 17:13
Gallery (Tower Transit):
Gallery (SMRT Buses) at Page 2.
Poster Gallery:
Operator History
- 2001 – 2004: Trans-Island Bus Services Ltd
- 2004 – 18 Sep 2021: SMRT Buses Ltd
- 19 Sep 2021 – Present: Tower Transit Singapore Pte Ltd
Route History
- 2001 (15 Apr): Introduced between Woodlands Regional Int and Tampines Int
- 2002: Serves the bus stop outside Blk 923 along Yishun Ave 2, skipping the bus stop outside Northpoint Shop Ctr
- 2013 (07 Jul): Designated wheelchair-accessible bus service (WAB)
- 2014 (05 Oct): Serves additional pair of bus stops before and after Punggol Rd along TPE
- 2016 (12 Mar): Amended to Woodlands Temp Int
- 2016 (18 Dec): Amended to ply Tampines Ave 9 and Tampines Concourse
- 2020 (22 Mar): Serves a new pair of bus stops near Sembawang Ave along Gambas Ave
- 2021 (13 Jun): Amended to Woodlands Integrated Transport Hub
- 2021 (19 Sep): Operations transferred to Tower Transit under the Sembawang-Yishun Bus Package
- 2021 (03 Oct): Serves a new pair of bus stops before & opposite Gambas Cres along Gambas Ave
- 2021 (12 Dec): Temporarily amended to Woodlands Temp Int due to road closure of east entrance to Woodlands Integrated Transport Hub
- 2021 (22 Dec): Amended to ply the realigned Tampines Ave 12, skipping part of Tampines Ave 9
- 2021 (26 Dec): Amended back to Woodlands Integrated Transport Hub
- 2022 (09 Oct): Serves new bus stops opposite Blk 631B, before Blk 631B & outside Blk 637 CP along Tampines Ave 12
- 2022 (30 Oct): Serves a new bus stop opposite Blk 638A along Tampines Ave 12
- 2022 (11 Dec): Temporarily amended to Woodlands Temp Int due to road closure of east exit from Woodlands Integrated Transport Hub
- 2022 (25 Dec): Amended back to Woodlands Integrated Transport Hub
- 2026 (28 Mar): Amended to ply an extended section of Woodlands Ave 7 & Woodlands Ave 10 with the partial closure of Gambas Ave to facilitate the construction of North-South Corridor.
Back to Bus Services
Back to Bus Articles

On 2 October 2025 at 5.20pm. I was waiting at bus stop outside Northcomd I
Building. Gambas AVE. Two 969 came at the same time and 2mins later another 969 came along. I was actually waiting for 965 which only came after the three 969 passed by. I am wondering how such arrangements could make sense. Isn’t it a waste of manpower to have three 969 coming together almost the same time. Maybe the company management can look into this problem.
Thanks
Thanks to the jam at Gambas… Go and figure it out… 969 is a heavy loading bus svc thus the high frequency during peak hours… 965 off peak is 12-14 mins and the loadings can’t match 969…but why whine over it? Some countries off peak range between 20-35 mins or bus and here commuters complain non stop.
969 should be full DD.
PM Off-peak frequency is no longer up to 12mins, it’s usually around 15mins. Sometimes if can go up to 17mins or 20mins if the bus captain is behind schedule.