Close Menu
    Facebook X (Twitter) Instagram
    • Home
    • Contact Us
    • About Us
    • Privacy Policy
    • Terms Of Service
    • Advertisement
    Wednesday, July 15
    Facebook X (Twitter) Instagram Pinterest Vimeo
    ABS Africa TV
    • Breaking News
    • Trending
    • Africa News
    • World News
    • Features
    • Technology
    • More
      • Sports
      • Politics
      • Culture
      • Lifestyle
      • Travel
      • Business
      • Environment
      • Legal
      • Health
      • Cameroon
      • Ambazonia
      • AfroSingles
      • Environ/Climate
      • Editorial
      • The Leak Magazine
    • Donate
    Subscription
    ABS Africa TV
    Home»Travel»Garissa Airstrip upgrade attracts new airline as expanded facilities increase flight options
    Travel

    Garissa Airstrip upgrade attracts new airline as expanded facilities increase flight options

    Martin AkumaBy Martin AkumaJuly 14, 2026No Comments10 Mins Read
    Facebook Twitter Pinterest LinkedIn Tumblr Email
    Garissa Airstrip upgrade attracts new airline as expanded facilities increase flight options
    Share
    Facebook Twitter LinkedIn Pinterest Email
    Post Views: 21

    Garissa Airstrip upgrade attracts new airline as expanded facilities increase flight options

    The upgraded Garissa Airstrip will boost connectivity with new Nairobi-Garissa flights, expanding travel options and supporting trade and investment. (Photo: Handout)

    Listen to article

    4 min listen
    Audio reading is not supported on this browser.
    Ready

    Thanks for listening. Continue with a related story, or tap the speaker icon on the next page to listen.

    Garissa Referral Hospital ends theft after security overhaul, draws interest from other counties

    Abdirahman Khalif

     · 

    5 days agoRead nextOpens a fresh page.

    The upgraded Garissa Airstrip has attracted a second scheduled airline, with four weekly Nairobi-Garissa flights expected to improve regional connectivity, trade and investment.

    The recent expansion of Garissa Airstrip is beginning to transform air travel in northern Kenya, with the upgraded facility attracting a new airline just weeks after the improved runway became operational.
    The development is expected to boost flight options for passengers travelling between Nairobi and Garissa while supporting trade, investment and broader economic growth in the region.
    Skyward Express has announced it will launch scheduled flights between Nairobi and Garissa, becoming the latest airline to serve the route after years in which Freedom Airlines was the county’s main scheduled operator.

    More To Read

    • Garissa Referral Hospital ends theft after security overhaul, draws interest from other counties
    • KURA allocates Sh400 million for road upgrades in Garissa’s Bura and Balambala
    • Nairobi, Mombasa among counties with highest long-overdue pending bills
    • Garissa leaders convene security meeting after wave of stabbings, phone thefts
    • Renegade Air suspends Wajir flights temporarily over ongoing runway maintenance works
    • KUPPET raises alarm over teacher safety in North Eastern, urges action

    The move is being seen as an early sign that the upgraded airstrip is attracting more airline operators to invest in Garissa.
    Ahead of the launch, officials from Skyward Express paid a courtesy call on the Garissa County Government, where they met a county delegation led by Roads, Transport and Public Works Executive Committee Member Nassir Mohamed Aden. The discussions centred on the airline’s planned operations and the opportunities created by the upgraded airport infrastructure.
    The airline is set to begin commercial operations with its inaugural flight on Friday, August 7. It will then operate four weekly flights on Mondays, Wednesdays, Fridays and Sundays, offering travellers a faster alternative to the roughly six-hour road journey between Nairobi and Garissa.

    Latest Stories

    • Lakes that ‘breathe’ ancient carbon: A surprising find in the Congo Basin
    • Ebola reaches major transport hub of Kisangani as DR Congo outbreak expands across five provinces
    • US launches campaign to block ICC probes of American officials and military, citing threat to sovereignty
    • Africa’s youth are finding jobs – but not the ones they imagined

    Speaking during the visit, Skyward Express delegation leader Augustine Mogoi said the airline had acquired an additional aircraft to support the new route and was preparing for future expansion as passenger demand grows.
    He said the improvements at Garissa Airstrip now allow the airline to deploy both its 37-seater and 50-seater aircraft on the route.
    “We will handle departures and arrivals from Wilson Airport where we have a dedicated terminal for our passengers, including a VIP lounge for the convenience, speed of access and comfort of our customers,” Mogoi said.
    Mogoi also praised the Garissa County Government for investing in a passenger terminal, noting that many airport projects prioritise runway expansion while overlooking passenger facilities, even though terminals are where travellers spend most of their time and where much of an airport’s daily operations take place.
    The expansion of Garissa Airstrip was jointly funded by the Garissa County Government and the Kenya Airports Authority. Under the partnership, the county government built a new passenger terminal, while the Kenya Airports Authority upgraded the operational side of the airport by extending the runway to 1.2 kilometres and widening it to 23 metres.
    The project also included the construction of two 55-metre taxiways, a 230-metre aircraft parking apron and two turn pads.
    The upgrades have improved aircraft movement within the airstrip and increased its capacity to handle more flights.
    The enhanced infrastructure now enables the airstrip to accommodate larger aircraft, creating opportunities for more airlines to introduce scheduled services to Garissa. County officials believe the project will strengthen Garissa’s position as an aviation hub for northern Kenya and neighbouring regions.
    They also expect the improved air connectivity to boost trade, tourism, investment and the hospitality sector in Garissa and neighbouring Tana River County.
    According to county officials, the additional flights will make travel easier for residents, investors, development partners and business people travelling between Garissa, Nairobi and other parts of the country.
    The arrival of a second scheduled airline is expected to increase competition on the route, giving passengers more travel options while improving access to the region.

    Other Topics To Read

    Top Stories Today

    • Fuel prices remain unchanged as EPRA retains pump rates for another month
    • Study finds Congo Basin lakes ‘breathing’ ancient carbon into atmosphere
    • Ebola reaches major transport hub of Kisangani as DRC outbreak expands across five provinces
    • US launches campaign to block ICC probes of American officials and military
    • Africa’s youth are finding jobs – but not the ones they imagined
    • Ong’ondo Were murder trial witness says he was paid Sh50,000 after shooting

    `;
    }

    return “;
    }

    function commentActionsMarkup(comment, canComment) {
    const likeLabel = comment.liked_by_me ? ‘Liked’ : ‘Like’;
    const likeCount = Number(comment.like_count || 0) > 0
    ? “
    : ”;

    const likeButton = canComment && comment.status === ‘approved’
    ? “
    : “;

    const replyButton = canComment && comment.status === ‘approved’
    ? “
    : ”;

    return `

    `;
    }

    function commentMarkup(comment, canComment, isReply = false) {
    const pendingBadge = comment.status && comment.status !== ‘approved’
    ? “
    : ”;

    const edited = comment.is_edited
    ? “
    : ”;

    const repliesHtml = Array.isArray(comment.replies) && comment.replies.length
    ? `

    `
    : “;

    return `

    `;
    }

    function replyFormMarkup(commentId) {
    return `

    `;
    }

    function setNotice(widget, message, type = ‘info’) {
    const notice = widget.querySelector(‘[data-role=”notice”]’);
    if (!notice) return;

    if (!message) {
    notice.hidden = true;
    notice.textContent = ”;
    notice.classList.remove(‘is-error’);
    return;
    }

    notice.hidden = false;
    notice.textContent = message;
    notice.classList.toggle(‘is-error’, type === ‘error’);
    }

    function setCount(widget, total) {
    const count = widget.querySelector(‘[data-role=”count”]’);
    if (!count) return;

    const num = Number(total || 0);
    count.textContent = num === 1 ? ‘1 comment’ : `${num} comments`;
    }

    function openReplyBox(widget, commentId) {
    widget.querySelectorAll(‘[data-role=”reply-box”]’).forEach(box => {
    box.hidden = true;
    box.innerHTML = ”;
    });

    const targetItem = widget.querySelector(`.ev-comments__item[data-comment-id=”${commentId}”]`);
    if (!targetItem) return;

    const replyBox = targetItem.querySelector(‘[data-role=”reply-box”]’);
    if (!replyBox) return;

    replyBox.hidden = false;
    replyBox.innerHTML = replyFormMarkup(commentId);

    const textarea = replyBox.querySelector(‘textarea’);
    if (textarea) textarea.focus();
    }

    function closeReplyBox(container) {
    if (!container) return;
    container.hidden = true;
    container.innerHTML = ”;
    }

    async function initCommentsWidget(widget) {
    const state = {
    articleId: Number(widget.dataset.articleId),
    loadUrl: widget.dataset.loadUrl,
    storeUrl: widget.dataset.storeUrl,
    commentsBaseUrl: widget.dataset.commentsBaseUrl,
    canComment: widget.dataset.canComment === ‘1’,
    page: 1,
    perPage: 10,
    sort: ‘newest’,
    total: 0,
    hasMore: false,
    busy: false
    };

    const list = widget.querySelector(‘[data-role=”list”]’);
    const loading = widget.querySelector(‘[data-role=”loading”]’);
    const empty = widget.querySelector(‘[data-role=”empty”]’);
    const loadMoreBtn = widget.querySelector(‘[data-role=”load-more”]’);
    const sortSelect = widget.querySelector(‘[data-role=”sort”]’);
    const composerForm = widget.querySelector(‘[data-role=”composer-form”]’);

    async function loadComments(reset = true) {
    if (state.busy) return;

    state.busy = true;
    setNotice(widget, ”);
    loading.hidden = false;

    if (reset) {
    state.page = 1;
    list.innerHTML = ”;
    empty.hidden = true;
    }

    try {
    const url = new URL(state.loadUrl, window.location.origin);
    url.searchParams.set(‘page’, state.page);
    url.searchParams.set(‘per_page’, state.perPage);
    url.searchParams.set(‘sort’, state.sort);

    const response = await requestJson(url.toString(), {
    method: ‘GET’,
    headers: {
    ‘Accept’: ‘application/json’,
    ‘X-Requested-With’: ‘XMLHttpRequest’
    }
    });

    const items = Array.isArray(response.data) ? response.data : [];
    const meta = response.meta || {};

    state.total = Number(meta.total || 0);
    state.hasMore = !!meta.has_more;

    setCount(widget, state.total);

    if (reset) {
    list.innerHTML = ”;
    }

    if (!items.length && reset) {
    empty.hidden = false;
    } else {
    empty.hidden = true;
    list.insertAdjacentHTML(
    ‘beforeend’,
    items.map(item => commentMarkup(item, state.canComment, false)).join(”)
    );
    }

    loadMoreBtn.hidden = !state.hasMore;
    } catch (error) {
    if (!list.children.length) {
    empty.hidden = false;
    empty.textContent = ‘Unable to load comments right now.’;
    }
    setNotice(widget, error.message || ‘Unable to load comments.’, ‘error’);
    } finally {
    loading.hidden = true;
    state.busy = false;
    }
    }

    async function submitTopLevelComment(form) {
    const textarea = form.querySelector(‘textarea[name=”content”]’);
    const button = form.querySelector(‘[data-role=”submit-comment”]’);

    if (!textarea) return;

    const content = textarea.value.trim();
    if (!content) return;

    const originalText = button ? button.textContent : ”;

    try {
    if (button) {
    button.disabled = true;
    button.textContent = ‘Posting…’;
    }

    const response = await requestJson(state.storeUrl, {
    method: ‘POST’,
    headers: buildJsonHeaders(),
    body: JSON.stringify({
    article_id: state.articleId,
    content: content,
    source_url: window.location.href
    })
    });

    textarea.value = ”;

    if (response?.data) {
    list.insertAdjacentHTML(
    ‘afterbegin’,
    commentMarkup(response.data, state.canComment, false)
    );
    empty.hidden = true;

    if ((response.data.status || ”) === ‘approved’) {
    state.total += 1;
    setCount(widget, state.total);
    }
    }

    setNotice(widget, response.message || ‘Comment posted successfully.’);
    } catch (error) {
    setNotice(widget, error.message || ‘Unable to post comment.’, ‘error’);
    } finally {
    if (button) {
    button.disabled = false;
    button.textContent = originalText || ‘Post comment’;
    }
    }
    }

    async function submitReply(form) {
    const commentId = Number(form.dataset.commentId || 0);
    const textarea = form.querySelector(‘textarea[name=”content”]’);
    const button = form.querySelector(‘.ev-comments__reply-submit’);

    if (!commentId || !textarea) return;

    const content = textarea.value.trim();
    if (!content) return;

    const originalText = button ? button.textContent : ”;

    try {
    if (button) {
    button.disabled = true;
    button.textContent = ‘Posting…’;
    }

    const response = await requestJson(`${state.commentsBaseUrl}/${commentId}/reply`, {
    method: ‘POST’,
    headers: buildJsonHeaders(),
    body: JSON.stringify({
    article_id: state.articleId,
    content: content,
    source_url: window.location.href
    })
    });

    if (response?.data) {
    const parentItem = widget.querySelector(`.ev-comments__item[data-comment-id=”${commentId}”]`);
    if (parentItem) {
    const repliesWrap = parentItem.querySelector(‘.ev-comments__replies’);
    if (repliesWrap) {
    repliesWrap.insertAdjacentHTML(
    ‘beforeend’,
    commentMarkup(response.data, state.canComment, true)
    );
    }
    }
    }

    closeReplyBox(form.closest(‘[data-role=”reply-box”]’));
    setNotice(widget, response.message || ‘Reply posted successfully.’);
    } catch (error) {
    setNotice(widget, error.message || ‘Unable to post reply.’, ‘error’);
    } finally {
    if (button) {
    button.disabled = false;
    button.textContent = originalText || ‘Post reply’;
    }
    }
    }

    async function toggleLike(button) {
    const commentId = Number(button.dataset.commentId || 0);
    if (!commentId) return;

    const originalHtml = button.innerHTML;

    try {
    button.disabled = true;
    button.innerHTML = ‘Working…’;

    const response = await requestJson(`${state.commentsBaseUrl}/${commentId}/like`, {
    method: ‘POST’,
    headers: buildJsonHeaders(),
    body: JSON.stringify({})
    });

    const liked = !!response?.data?.liked;
    const likeCount = Number(response?.data?.like_count || 0);

    button.classList.toggle(‘is-liked’, liked);
    button.innerHTML = `${liked ? ‘Liked’ : ‘Like’} ${likeCount > 0 ? “ : ”}`;
    } catch (error) {
    button.innerHTML = originalHtml;
    setNotice(widget, error.message || ‘Unable to update like.’, ‘error’);
    } finally {
    button.disabled = false;
    }
    }

    if (composerForm) {
    composerForm.addEventListener(‘submit’, function (e) {
    e.preventDefault();
    submitTopLevelComment(composerForm);
    });
    }

    if (sortSelect) {
    sortSelect.addEventListener(‘change’, function () {
    state.sort = this.value || ‘newest’;
    loadComments(true);
    });
    }

    if (loadMoreBtn) {
    loadMoreBtn.addEventListener(‘click’, function () {
    if (state.busy || !state.hasMore) return;
    state.page += 1;
    loadComments(false);
    });
    }

    widget.addEventListener(‘click’, function (e) {
    const likeBtn = e.target.closest(‘[data-action=”toggle-like”]’);
    if (likeBtn) {
    e.preventDefault();
    toggleLike(likeBtn);
    return;
    }

    const replyBtn = e.target.closest(‘[data-action=”toggle-reply”]’);
    if (replyBtn) {
    e.preventDefault();
    openReplyBox(widget, Number(replyBtn.dataset.commentId || 0));
    return;
    }

    const cancelReplyBtn = e.target.closest(‘[data-action=”cancel-reply”]’);
    if (cancelReplyBtn) {
    e.preventDefault();
    closeReplyBox(cancelReplyBtn.closest(‘[data-role=”reply-box”]’));
    }
    });

    widget.addEventListener(‘submit’, function (e) {
    const replyForm = e.target.closest(‘.ev-comments__reply-form’);
    if (replyForm) {
    e.preventDefault();
    submitReply(replyForm);
    }
    });

    loadComments(true);
    }

    document.addEventListener(‘DOMContentLoaded’, function () {
    document.querySelectorAll(‘.ev-comments’).forEach(initCommentsWidget);
    });
    })();

    Trending

    Viwandani MCA Aaron Kang’ara Wangare charged over violent Donholm robbery and property damageCity Affairs
    |Carolyne Kubwa
    |6 hours ago
    Lakes that ‘breathe’ ancient carbon: A surprising find in the Congo BasinClimate Change
    |The Conversation
    |2 hours ago

    US launches campaign to block ICC probes of American officials and military, citing threat to sovereignty

    US launches campaign to block ICC probes of American officials and military, citing threat to sovereigntyWorld
    |Bashir Mbuthia
    |3 hours ago

    Spotify data: Nairobi emerges as Africa's top Gen Z music streaming city

    Spotify data: Nairobi emerges as Africa’s top Gen Z music streaming cityTechnology
    |Margaret Wanjiru
    |12 hours ago
    DRC Ebola outbreak becomes third-largest ever as unknown transmission chains fuel spreadHealth
    |Bashir Mbuthia
    |8 hours ago
    IG Kanja deploys over 1,000 police officers to secure Ol Kalou by-electionNews
    |Mary Wambui
    |12 hours ago
    World Cup history: A timeline of Africa’s greatest moments on the fieldSports
    |The Conversation
    |9 hours ago

    World Bank asks Kenya to improve use of public funds amid rising debt concerns

    World Bank asks Kenya to improve use of public funds amid rising debt concernsNews
    |Lucy Mumbi
    |13 hours ago

    Dry weather to dominate Kenya as selected counties brace for rainfall

    Dry weather to dominate Kenya as selected counties brace for rainfallNews
    |Lucy Mumbi
    |17 hours ago
    Former LSK president Faith Odhiambo calls for action against organisers and funders of political violenceNews
    |Rachael Mutabasi
    |18 hours ago

    airline Airstrip attracts Garissa upgrade
    Share. Facebook Twitter Pinterest LinkedIn Tumblr Email
    Martin Akuma
    • Website

    Related Posts

    Why Presidential Villas in Maasai Mara are Seeing Growing Family Demand

    July 15, 2026

    London Aligns With Manchester, Birmingham and Edinburgh Travelers as US, Canada, Australia, India and Africa Issue Gulf Advisories With Millions of Passengers Facing Rerouting, Travel Insurance Concerns and Flight Disruption Risks

    July 14, 2026

    Ethiopian Airlines Connects Mauritius With Africa, Europe, Asia, Middle East and Americas as New Addis Ababa Route Launches With Three Weekly Flights, Strengthening Tourism Growth, Business Travel, Regional Mobility and Global Passenger Connectivity

    July 14, 2026
    Leave A Reply Cancel Reply

    Search
    Latest Post

    What inspired U.S. Bank volunteers at the 2026 Special Olympics USA Games

    July 15, 2026

    Military chaplains gather for West African Religious Affairs Symposium in Ghana

    July 15, 2026

    FutbolConect eyes African football revolution

    July 15, 2026

    Zimbabwean Captain soars with Emirates

    July 15, 2026

    Why Presidential Villas in Maasai Mara are Seeing Growing Family Demand

    July 15, 2026

    Subscribe to Updates

    Get the latest creative news from FooBar about art, design and business.

    • Facebook
    • Twitter
    • Pinterest
    • Instagram
    • YouTube
    • TikTok
    ABS TV and ABS Network News is a leading Pan-African 24/7 broadcasting network delivering nonstop news, talk shows, lifestyle programs, and digital media content worldwide through Satellite, Streaming Platforms, and Roku TV.
     
    Based in the United States, we connect Africa to the world while empowering creators, journalists, and brands through innovative media and broadcasting services.
    Facebook X (Twitter) Pinterest WhatsApp Instagram

    Our Picks

    Africa News

    What inspired U.S. Bank volunteers at the 2026 Special Olympics USA Games

    Features

    Military chaplains gather for West African Religious Affairs Symposium in Ghana

    Trending

    FutbolConect eyes African football revolution

    Most Popular

    Breaking News

    Zimbabwean Captain soars with Emirates

    Travel

    Why Presidential Villas in Maasai Mara are Seeing Growing Family Demand

    Environment

    Africans are not green

    © 2026 Copyright. All Rights Reserved by ABSAFRICATV
    • Privacy Policy
    • Terms of Services

    Type above and press Enter to search. Press Esc to cancel.

    We use cookies to ensure that we give you the best experience on our website. If you continue to use this site we will assume that you are happy with it.