N31
Lothian Buses
N31 bus timetable: Bonnyrigg to Edinburgh Haymarket
Bonnyrigg ↔ Edinburgh Haymarket
Route map
N31 live route map
See the route, stops, and live buses currently on this line.
84 stops
Live buses loading
Map ready
Loading the route map...
Bonnyrigg → Edinburgh Haymarket
1 trip · first 01:03 · last 01:03
Mon–Fri
Live Valid 2026-06-03 – 2027-06-02
Swipe sideways to see later trips.
Stop
01:03
Edinburgh Haymarket
01:03
Poltonhall, Dalhousie Chesters
opposite
01:06
Poltonhall, Cockpen Place
opposite
01:06
Poltonhall, Skeltiemuir Avenue
opposite
01:07
01:07
Bonnyrigg, Hazel Drive
opposite
01:07
01:08
01:08
01:08
01:08
Broomieknowe Gardens
opposite
01:09
Lasswade, Elm Row
south-west bound
01:10
01:10
Wadingburn, Lasswade Road
westbound
01:11
01:11
01:13
Gilmerton Dykes Road
opposite
01:14
Gilmerton, The Murrays
adjacent
01:14
01:15
01:15
Gracemount, Ellen's Glen Road
opposite
01:16
Gracemount, Liberton Hospital
opposite
01:16
Liberton, Malbet Park
opposite
01:16
01:17
Liberton, Kirk Park
near
01:17
Liberton, Mossgiel Walk
opposite
01:18
01:19
Nether Liberton, Mid Liberton
opposite
01:20
Nether Liberton, Lady Road
opposite
01:20
Mayfield, Suffolk Road
south-east bound
01:21
01:21
Mayfield Gardens
north-west bound
01:22
Mayfield, Minto Street
north-west bound
01:23
Mayfield, Salisbury Place
before
01:23
Newington Road
north-west bound
01:24
South Side, Bernard Terrace
opposite
01:24
01:25
South Side, Surgeons' Hall
opposite
01:26
Old Town, South Bridge
N-Bound 2
01:27
01:30
01:31
Edinburgh Haymarket → Bonnyrigg
1 trip · first 00:20 · last 00:20
Mon–Fri
Live Valid 2026-06-03 – 2027-06-02
Swipe sideways to see later trips.
Stop
00:20
Edinburgh Haymarket
Haymarket, West Maitland Street
Stop HC
00:20
00:22
Edinburgh, Princes Street (west)
Stop PC
00:24
00:28
Old Town, South Bridge
S-bound 2
00:32
South Side, Surgeons' Hall
just after
00:33
00:34
00:35
Newington Road
south-east bound
00:36
Mayfield, Salisbury Place
opposite
00:37
Mayfield, Minto Street
south-east bound
00:37
Mayfield Gardens
south-east bound
00:38
Mayfield, East Savile Road
before
00:39
Mayfield, Suffolk Road
north-west bound
00:40
00:41
Liberton, Gordon Terrace
opposite
00:42
00:43
Liberton, Kirk Park
opposite
00:44
Liberton, Kirkgate
after
00:44
00:45
Liberton, Malbet Park
before
00:45
00:46
00:46
Gracemount High School
opposite
00:47
00:47
Gilmerton, The Murrays
opposite
00:48
00:49
Gilmerton, West Edge Farm
opposite
00:49
Lasswade, Wester Melville
opposite
00:51
Wadingburn, Lasswade Road
eastbound
00:53
Lasswade, Laird and Dog
opposite
00:54
Lasswade, Elm Row
north-east bound
00:54
00:55
Bonnyrigg, Rockville Terrace
opposite
00:56
Bonnyrigg, Park Road
opposite
00:56
00:57
00:57
00:58
00:58
00:59
Bonnyrigg, Burnbrae Road
opposite
01:00
Bonnyrigg, Sawmill Terrace
opposite
01:01
01:01
01:02
Timetable data from Lothian Buses, refreshed 2026-06-12 · Source: Traveline National Dataset (TNDS) · Service code LOTH_N31.
All stops shown
44 stops- Haymarket, West Maitland Street Stop HC
- Edinburgh West End, Shandwick Place Stop SA
- Edinburgh, Princes Street (west) Stop PC
- Edinburgh, Princes Street (Scott Mon.) Stop PJ
- Old Town, South Bridge S-bound 2
- South Side, Surgeons' Hall just after
- South Side, St Patrick Square after
- South Side, Bernard Terrace after
- Newington Road south-east bound
- Mayfield, Salisbury Place opposite
- Mayfield, Minto Street south-east bound
- Mayfield Gardens south-east bound
- Mayfield, East Savile Road before
- Mayfield, Suffolk Road north-west bound
- Nether Liberton, Lady Road after
- Liberton, Gordon Terrace opposite
- Liberton, Mossgiel Walk at
- Liberton, Kirk Park opposite
- Liberton, Kirkgate after
- Liberton, Yewlands Gardens at
- Liberton, Malbet Park before
- Gracemount, Liberton Hospital at
- Gracemount, Ellen's Glen Road before
- Gracemount High School opposite
- Gracemount, Gilmerton Dykes Street before
- Gilmerton, The Murrays opposite
- Gilmerton Dykes Road at
- Gilmerton, West Edge Farm opposite
- Lasswade, Wester Melville opposite
- Wadingburn, Lasswade Road eastbound
- Lasswade, Laird and Dog opposite
- Lasswade, Elm Row north-east bound
- Broomieknowe Gardens at
- Bonnyrigg, Rockville Terrace opposite
- Bonnyrigg, Park Road opposite
- Bonnyrigg Toll at
- Bonnyrigg, Waverley Terrace at
- Bonnyrigg, Wolsey Avenue near
- Bonnyrigg, Bairds Way at
- Cockpen, Brixwold Bank at
- Bonnyrigg, Burnbrae Road opposite
- Bonnyrigg, Sawmill Terrace opposite
- Bonnyrigg, Burnbrae Walk at
- Bonnyrigg, Burnbrae Avenue near