Route Network
Tangier Ibn Batouta Airport connects 41 destinations worldwide, with Barcelona standing out as its busiest route. The longest nonstop flight is to Istanbul, and the shortest flight is to Málaga.
Route and destination data updated July 10, 2026.
Tangier Ibn Batouta Airport is served by 16 airlines, with Ryanair in the lead at 34% of routes. The top three carriers together cover 69% of routes. eight carriers operate only one route each. A total of 16 airlines operate international routes, compared with three airlines serving domestic routes. Air Arabia Maroc is operating the longest nonstop flight, connecting to Istanbul with a flight time of 4 hrs 40 mins.
Tangier Ibn Batouta Airport provides direct service to 13 countries across two continents. The route network is 17% domestic and 83% international. Spain is the primary international destination.
Delays
- Departures
- 5 min late
- 1 min (+27.6%) vs last 24 hours
- 24h trend
- Arrivals
- 10 min late
- 4 min (+70%) vs last 24 hours
- 24h trend
- Cancelled Departures
- 2 flights (24 hour total)
Jul 12
2026
21:00 - 22:00
- Departure
- on-timeon-timeon-time
- Arrival
- 14 min late14 min late14 minutes late
- Cancelled
- 0
Jul 12
2026
20:00 - 21:00
- Departure
- 45 min late45 min late45 minutes late
- Arrival
- 5 min early5 min early5 minutes early
- Cancelled
- 0
Jul 12
2026
19:00 - 20:00
- Departure
- on-timeon-timeon-time
- Arrival
- 45 min late45 min late45 minutes late
- Cancelled
- 0
Jul 12
2026
18:00 - 19:00
- Departure
- on-timeon-timeon-time
- Arrival
- 40 min late40 min late40 minutes late
- Cancelled
- 0
Jul 12
2026
17:00 - 18:00
- Departure
- on-timeon-timeon-time
- Arrival
- 26 min late26 min late26 minutes late
- Cancelled
- 0
Jul 12
2026
16:00 - 17:00
- Departure
- on-timeon-timeon-time
- Arrival
- 8 min late8 min late8 minutes late
- Cancelled
- 1
Jul 12
2026
15:00 - 16:00
- Departure
- on-timeon-timeon-time
- Arrival
- 8 min late8 min late8 minutes late
- Cancelled
- 1
Jul 12
2026
14:00 - 15:00
- Departure
- on-timeon-timeon-time
- Arrival
- 10 min late10 min late10 minutes late
- Cancelled
- 0
Jul 12
2026
13:00 - 14:00
- Departure
- on-timeon-timeon-time
- Arrival
- 5 min late5 min late5 minutes late
- Cancelled
- 0
Jul 12
2026
12:00 - 13:00
- Departure
- on-timeon-timeon-time
- Arrival
- on-timeon-timeon-time
- Cancelled
- 0
Jul 12
2026
11:00 - 12:00
- Departure
- on-timeon-timeon-time
- Arrival
- on-timeon-timeon-time
- Cancelled
- 0
Jul 12
2026
10:00 - 11:00
- Departure
- on-timeon-timeon-time
- Arrival
- on-timeon-timeon-time
- Cancelled
- 0
Jul 12
2026
09:00 - 10:00
- Departure
- on-timeon-timeon-time
- Arrival
- on-timeon-timeon-time
- Cancelled
- 0
Jul 12
2026
08:00 - 09:00
- Departure
- on-timeon-timeon-time
- Arrival
- on-timeon-timeon-time
- Cancelled
- 0
Jul 12
2026
06:00 - 07:00
- Departure
- on-timeon-timeon-time
- Arrival
- on-timeon-timeon-time
- Cancelled
- 0
Jul 12
2026
05:00 - 06:00
- Departure
- on-timeon-timeon-time
- Arrival
- on-timeon-timeon-time
- Cancelled
- 0
Jul 12
2026
04:00 - 05:00
- Departure
- ———
- Arrival
- on-timeon-timeon-time
- Cancelled
- 0
Jul 12
2026
03:00 - 04:00
- Departure
- ———
- Arrival
- on-timeon-timeon-time
- Cancelled
- 0
Jul 12
2026
02:00 - 03:00
- Departure
- on-timeon-timeon-time
- Arrival
- on-timeon-timeon-time
- Cancelled
- 0
Jul 12
2026
01:00 - 02:00
- Departure
- on-timeon-timeon-time
- Arrival
- on-timeon-timeon-time
- Cancelled
- 0
Jul 12
2026
00:00 - 01:00
- Departure
- on-timeon-timeon-time
- Arrival
- on-timeon-timeon-time
- Cancelled
- 0
Jul 11
2026
23:00 - 00:00
- Departure
- 52 min late52 min late52 minutes late
- Arrival
- 15 min late15 min late15 minutes late
- Cancelled
- 0
| Time | Departure | Arrival | Cancelled |
|---|---|---|---|
|
21:00 - 22:00 |
on-timeon-timeon-time | 14 min late14 min late14 minutes late | 0 |
|
20:00 - 21:00 |
45 min late45 min late45 minutes late | 5 min early5 min early5 minutes early | 0 |
|
19:00 - 20:00 |
on-timeon-timeon-time | 45 min late45 min late45 minutes late | 0 |
|
18:00 - 19:00 |
on-timeon-timeon-time | 40 min late40 min late40 minutes late | 0 |
|
17:00 - 18:00 |
on-timeon-timeon-time | 26 min late26 min late26 minutes late | 0 |
|
16:00 - 17:00 |
on-timeon-timeon-time | 8 min late8 min late8 minutes late | 1 |
|
15:00 - 16:00 |
on-timeon-timeon-time | 8 min late8 min late8 minutes late | 1 |
|
14:00 - 15:00 |
on-timeon-timeon-time | 10 min late10 min late10 minutes late | 0 |
|
13:00 - 14:00 |
on-timeon-timeon-time | 5 min late5 min late5 minutes late | 0 |
|
12:00 - 13:00 |
on-timeon-timeon-time | on-timeon-timeon-time | 0 |
|
11:00 - 12:00 |
on-timeon-timeon-time | on-timeon-timeon-time | 0 |
|
10:00 - 11:00 |
on-timeon-timeon-time | on-timeon-timeon-time | 0 |
|
09:00 - 10:00 |
on-timeon-timeon-time | on-timeon-timeon-time | 0 |
|
08:00 - 09:00 |
on-timeon-timeon-time | on-timeon-timeon-time | 0 |
|
06:00 - 07:00 |
on-timeon-timeon-time | on-timeon-timeon-time | 0 |
|
05:00 - 06:00 |
on-timeon-timeon-time | on-timeon-timeon-time | 0 |
|
04:00 - 05:00 |
——— | on-timeon-timeon-time | 0 |
|
03:00 - 04:00 |
——— | on-timeon-timeon-time | 0 |
|
02:00 - 03:00 |
on-timeon-timeon-time | on-timeon-timeon-time | 0 |
|
01:00 - 02:00 |
on-timeon-timeon-time | on-timeon-timeon-time | 0 |
|
00:00 - 01:00 |
on-timeon-timeon-time | on-timeon-timeon-time | 0 |
|
23:00 - 00:00 |
52 min late52 min late52 minutes late | 15 min late15 min late15 minutes late | 0 |
- Departures
- 4 min late
- 1 min (+30.9%) vs last week
- 7d trend
- Arrivals
- 6 min late
- 1 min (-8.3%) vs last week
- 7d trend
- Cancelled Departures
- 6 flights (7 day total)
Jul 11
2026
- Departure
- 7 min late7 min late7 minutes late
- Arrival
- 5 min late5 min late5 minutes late
- Cancelled
- 0
Jul 10
2026
- Departure
- on-timeon-timeon-time
- Arrival
- 7 min late7 min late7 minutes late
- Cancelled
- 6
Jul 9
2026
- Departure
- 8 min late8 min late8 minutes late
- Arrival
- 7 min late7 min late7 minutes late
- Cancelled
- 0
Jul 8
2026
- Departure
- 2 min late2 min late2 minutes late
- Arrival
- 3 min late3 min late3 minutes late
- Cancelled
- 0
| Date | Departure | Arrival | Cancelled |
|---|---|---|---|
|
Jul 11, 2026 |
7 min late7 min late7 minutes late | 5 min late5 min late5 minutes late | 0 |
|
Jul 10, 2026 |
on-timeon-timeon-time | 7 min late7 min late7 minutes late | 6 |
|
Jul 9, 2026 |
8 min late8 min late8 minutes late | 7 min late7 min late7 minutes late | 0 |
|
Jul 8, 2026 |
2 min late2 min late2 minutes late | 3 min late3 min late3 minutes late | 0 |
- Departures
- 4 min late
- 3 min (+190.2%) vs last 30 days
- 30d trend
- Arrivals
- 6 min late
- 2 min (+43%) vs last 30 days
- 30d trend
- Cancelled Departures
- 9 flights (30 day total)
Jul 11
2026
- Departure
- 7 min late7 min late7 minutes late
- Arrival
- 5 min late5 min late5 minutes late
- Cancelled
- 0
Jul 10
2026
- Departure
- on-timeon-timeon-time
- Arrival
- 7 min late7 min late7 minutes late
- Cancelled
- 6
Jul 9
2026
- Departure
- 8 min late8 min late8 minutes late
- Arrival
- 7 min late7 min late7 minutes late
- Cancelled
- 0
Jul 8
2026
- Departure
- 2 min late2 min late2 minutes late
- Arrival
- 3 min late3 min late3 minutes late
- Cancelled
- 0
Jul 4
2026
- Departure
- ———
- Arrival
- 6 min late6 min late6 minutes late
- Cancelled
- 0
Jul 3
2026
- Departure
- 2 min late2 min late2 minutes late
- Arrival
- 2 min early2 min early2 minutes early
- Cancelled
- 0
Jul 2
2026
- Departure
- on-timeon-timeon-time
- Arrival
- 5 min late5 min late5 minutes late
- Cancelled
- 0
Jul 1
2026
- Departure
- 12 min late12 min late12 minutes late
- Arrival
- 16 min late16 min late16 minutes late
- Cancelled
- 0
Jun 30
2026
- Departure
- 4 min late4 min late4 minutes late
- Arrival
- 3 min late3 min late3 minutes late
- Cancelled
- 0
Jun 29
2026
- Departure
- 3 min late3 min late3 minutes late
- Arrival
- 8 min late8 min late8 minutes late
- Cancelled
- 0
Jun 28
2026
- Departure
- on-timeon-timeon-time
- Arrival
- 7 min late7 min late7 minutes late
- Cancelled
- 2
Jun 27
2026
- Departure
- 15 min late15 min late15 minutes late
- Arrival
- 13 min late13 min late13 minutes late
- Cancelled
- 1
Jun 26
2026
- Departure
- 2 min late2 min late2 minutes late
- Arrival
- 5 min late5 min late5 minutes late
- Cancelled
- 0
Jun 25
2026
- Departure
- 11 min late11 min late11 minutes late
- Arrival
- 7 min late7 min late7 minutes late
- Cancelled
- 0
Jun 24
2026
- Departure
- 3 min late3 min late3 minutes late
- Arrival
- 3 min late3 min late3 minutes late
- Cancelled
- 0
Jun 23
2026
- Departure
- 12 min late12 min late12 minutes late
- Arrival
- 15 min late15 min late15 minutes late
- Cancelled
- 0
Jun 22
2026
- Departure
- 10 min late10 min late10 minutes late
- Arrival
- 12 min late12 min late12 minutes late
- Cancelled
- 0
Jun 21
2026
- Departure
- on-timeon-timeon-time
- Arrival
- 3 min late3 min late3 minutes late
- Cancelled
- 0
Jun 20
2026
- Departure
- 1 min late1 min late1 minutes late
- Arrival
- 4 min late4 min late4 minutes late
- Cancelled
- 0
Jun 19
2026
- Departure
- 1 min late1 min late1 minutes late
- Arrival
- 4 min late4 min late4 minutes late
- Cancelled
- 0
Jun 18
2026
- Departure
- 8 min late8 min late8 minutes late
- Arrival
- 20 min late20 min late20 minutes late
- Cancelled
- 0
Jun 17
2026
- Departure
- 4 min late4 min late4 minutes late
- Arrival
- 2 min late2 min late2 minutes late
- Cancelled
- 0
Jun 16
2026
- Departure
- on-timeon-timeon-time
- Arrival
- 6 min late6 min late6 minutes late
- Cancelled
- 0
Jun 15
2026
- Departure
- on-timeon-timeon-time
- Arrival
- on-timeon-timeon-time
- Cancelled
- 0
Jun 14
2026
- Departure
- on-timeon-timeon-time
- Arrival
- 1 min early1 min early1 minutes early
- Cancelled
- 0
Jun 13
2026
- Departure
- 2 min late2 min late2 minutes late
- Arrival
- on-timeon-timeon-time
- Cancelled
- 0
Jun 12
2026
- Departure
- on-timeon-timeon-time
- Arrival
- on-timeon-timeon-time
- Cancelled
- 0
| Date | Departure | Arrival | Cancelled |
|---|---|---|---|
|
Jul 11, 2026 |
7 min late7 min late7 minutes late | 5 min late5 min late5 minutes late | 0 |
|
Jul 10, 2026 |
on-timeon-timeon-time | 7 min late7 min late7 minutes late | 6 |
|
Jul 9, 2026 |
8 min late8 min late8 minutes late | 7 min late7 min late7 minutes late | 0 |
|
Jul 8, 2026 |
2 min late2 min late2 minutes late | 3 min late3 min late3 minutes late | 0 |
|
Jul 4, 2026 |
——— | 6 min late6 min late6 minutes late | 0 |
|
Jul 3, 2026 |
2 min late2 min late2 minutes late | 2 min early2 min early2 minutes early | 0 |
|
Jul 2, 2026 |
on-timeon-timeon-time | 5 min late5 min late5 minutes late | 0 |
|
Jul 1, 2026 |
12 min late12 min late12 minutes late | 16 min late16 min late16 minutes late | 0 |
|
Jun 30, 2026 |
4 min late4 min late4 minutes late | 3 min late3 min late3 minutes late | 0 |
|
Jun 29, 2026 |
3 min late3 min late3 minutes late | 8 min late8 min late8 minutes late | 0 |
|
Jun 28, 2026 |
on-timeon-timeon-time | 7 min late7 min late7 minutes late | 2 |
|
Jun 27, 2026 |
15 min late15 min late15 minutes late | 13 min late13 min late13 minutes late | 1 |
|
Jun 26, 2026 |
2 min late2 min late2 minutes late | 5 min late5 min late5 minutes late | 0 |
|
Jun 25, 2026 |
11 min late11 min late11 minutes late | 7 min late7 min late7 minutes late | 0 |
|
Jun 24, 2026 |
3 min late3 min late3 minutes late | 3 min late3 min late3 minutes late | 0 |
|
Jun 23, 2026 |
12 min late12 min late12 minutes late | 15 min late15 min late15 minutes late | 0 |
|
Jun 22, 2026 |
10 min late10 min late10 minutes late | 12 min late12 min late12 minutes late | 0 |
|
Jun 21, 2026 |
on-timeon-timeon-time | 3 min late3 min late3 minutes late | 0 |
|
Jun 20, 2026 |
1 min late1 min late1 minutes late | 4 min late4 min late4 minutes late | 0 |
|
Jun 19, 2026 |
1 min late1 min late1 minutes late | 4 min late4 min late4 minutes late | 0 |
|
Jun 18, 2026 |
8 min late8 min late8 minutes late | 20 min late20 min late20 minutes late | 0 |
|
Jun 17, 2026 |
4 min late4 min late4 minutes late | 2 min late2 min late2 minutes late | 0 |
|
Jun 16, 2026 |
on-timeon-timeon-time | 6 min late6 min late6 minutes late | 0 |
|
Jun 15, 2026 |
on-timeon-timeon-time | on-timeon-timeon-time | 0 |
|
Jun 14, 2026 |
on-timeon-timeon-time | 1 min early1 min early1 minutes early | 0 |
|
Jun 13, 2026 |
2 min late2 min late2 minutes late | on-timeon-timeon-time | 0 |
|
Jun 12, 2026 |
on-timeon-timeon-time | on-timeon-timeon-time | 0 |
Global Rankings
Runways
| Runway | Length | Width | Surface |
|---|---|---|---|
| 11,476 ft 3,498 m 11,476 ft · 3,498 m | 148 ft 45 m 148 ft · 45 m | Asphalt | |
| 11,476 ft 3,498 m 11,476 ft · 3,498 m | 148 ft 45 m 148 ft · 45 m | Asphalt | |
| 6,562 ft 2,000 m 6,562 ft · 2,000 m | 98 ft 30 m 98 ft · 30 m | Closed | |
| 6,562 ft 2,000 m 6,562 ft · 2,000 m | 98 ft 30 m 98 ft · 30 m | Closed |
Runway Length
2 aircraft cannot operate at Tangier Ibn Batouta Airport due to runway length constraints. The airport’s longest runway is 11,476 ft (3,498 m), which is below the typical takeoff or landing distance required by the aircraft listed here.
| Aircraft | Takeoff | Landing |
|---|---|---|
| Antonov An-225 Mriya | 11,483 ft 3,500 m 11,483 ft · 3,500 m | 10,827 ft 3,300 m 10,827 ft · 3,300 m |
| McDonnell Douglas DC-8-71 | 11,499 ft 3,505 m 11,499 ft · 3,505 m | 5,909 ft 1,801 m 5,909 ft · 1,801 m |
Operational Context
Tangier Ibn Batouta (IATA: TNG) operates around 37 flights per day to 42 nonstop destinations. Its network includes 7 domestic and 34 international routes, with Ryanair as the leading carrier and Barcelona currently the busiest connection. From TNG, passengers can reach 13 countries across 2 continents, and the longest runway measures 3,498 m (11,476 ft).