A PHP Error was encountered

Severity: Deprecated Notice

Message: GuzzleHttp\Promise\queue(): Implicitly marking parameter $assign as nullable is deprecated, the explicit nullable type must be used instead

Filename: src/functions.php

Line Number: 24

Backtrace:

File: /home/iqeakxb/dev/application/vendor/guzzlehttp/promises/src/functions_include.php
Line: 5
Function: _error_handler

File: /home/iqeakxb/dev/application/vendor/guzzlehttp/promises/src/functions_include.php
Line: 5
Function: require

File: /home/iqeakxb/dev/application/vendor/composer/autoload_real.php
Line: 41
Function: require

File: /home/iqeakxb/dev/application/vendor/composer/autoload_real.php
Line: 45
Function: {closure:ComposerAutoloaderInit7b8580dd9b41833d4ba8f76a0ac16d19::getLoader():37}

File: /home/iqeakxb/dev/application/vendor/autoload.php
Line: 25
Function: getLoader

File: /home/iqeakxb/dev/index.php
Line: 293
Function: require_once

A PHP Error was encountered

Severity: Deprecated Notice

Message: GuzzleHttp\Promise\each(): Implicitly marking parameter $onFulfilled as nullable is deprecated, the explicit nullable type must be used instead

Filename: src/functions.php

Line Number: 260

Backtrace:

File: /home/iqeakxb/dev/application/vendor/guzzlehttp/promises/src/functions_include.php
Line: 5
Function: _error_handler

File: /home/iqeakxb/dev/application/vendor/guzzlehttp/promises/src/functions_include.php
Line: 5
Function: require

File: /home/iqeakxb/dev/application/vendor/composer/autoload_real.php
Line: 41
Function: require

File: /home/iqeakxb/dev/application/vendor/composer/autoload_real.php
Line: 45
Function: {closure:ComposerAutoloaderInit7b8580dd9b41833d4ba8f76a0ac16d19::getLoader():37}

File: /home/iqeakxb/dev/application/vendor/autoload.php
Line: 25
Function: getLoader

File: /home/iqeakxb/dev/index.php
Line: 293
Function: require_once

A PHP Error was encountered

Severity: Deprecated Notice

Message: GuzzleHttp\Promise\each(): Implicitly marking parameter $onRejected as nullable is deprecated, the explicit nullable type must be used instead

Filename: src/functions.php

Line Number: 0

Backtrace:

File: /home/iqeakxb/dev/application/vendor/guzzlehttp/promises/src/functions_include.php
Line: 5
Function: _error_handler

File: /home/iqeakxb/dev/application/vendor/guzzlehttp/promises/src/functions_include.php
Line: 5
Function: require

File: /home/iqeakxb/dev/application/vendor/composer/autoload_real.php
Line: 41
Function: require

File: /home/iqeakxb/dev/application/vendor/composer/autoload_real.php
Line: 45
Function: {closure:ComposerAutoloaderInit7b8580dd9b41833d4ba8f76a0ac16d19::getLoader():37}

File: /home/iqeakxb/dev/application/vendor/autoload.php
Line: 25
Function: getLoader

File: /home/iqeakxb/dev/index.php
Line: 293
Function: require_once

A PHP Error was encountered

Severity: Deprecated Notice

Message: GuzzleHttp\Promise\each_limit(): Implicitly marking parameter $onFulfilled as nullable is deprecated, the explicit nullable type must be used instead

Filename: src/functions.php

Line Number: 285

Backtrace:

File: /home/iqeakxb/dev/application/vendor/guzzlehttp/promises/src/functions_include.php
Line: 5
Function: _error_handler

File: /home/iqeakxb/dev/application/vendor/guzzlehttp/promises/src/functions_include.php
Line: 5
Function: require

File: /home/iqeakxb/dev/application/vendor/composer/autoload_real.php
Line: 41
Function: require

File: /home/iqeakxb/dev/application/vendor/composer/autoload_real.php
Line: 45
Function: {closure:ComposerAutoloaderInit7b8580dd9b41833d4ba8f76a0ac16d19::getLoader():37}

File: /home/iqeakxb/dev/application/vendor/autoload.php
Line: 25
Function: getLoader

File: /home/iqeakxb/dev/index.php
Line: 293
Function: require_once

A PHP Error was encountered

Severity: Deprecated Notice

Message: GuzzleHttp\Promise\each_limit(): Implicitly marking parameter $onRejected as nullable is deprecated, the explicit nullable type must be used instead

Filename: src/functions.php

Line Number: 0

Backtrace:

File: /home/iqeakxb/dev/application/vendor/guzzlehttp/promises/src/functions_include.php
Line: 5
Function: _error_handler

File: /home/iqeakxb/dev/application/vendor/guzzlehttp/promises/src/functions_include.php
Line: 5
Function: require

File: /home/iqeakxb/dev/application/vendor/composer/autoload_real.php
Line: 41
Function: require

File: /home/iqeakxb/dev/application/vendor/composer/autoload_real.php
Line: 45
Function: {closure:ComposerAutoloaderInit7b8580dd9b41833d4ba8f76a0ac16d19::getLoader():37}

File: /home/iqeakxb/dev/application/vendor/autoload.php
Line: 25
Function: getLoader

File: /home/iqeakxb/dev/index.php
Line: 293
Function: require_once

A PHP Error was encountered

Severity: Deprecated Notice

Message: GuzzleHttp\Promise\each_limit_all(): Implicitly marking parameter $onFulfilled as nullable is deprecated, the explicit nullable type must be used instead

Filename: src/functions.php

Line Number: 307

Backtrace:

File: /home/iqeakxb/dev/application/vendor/guzzlehttp/promises/src/functions_include.php
Line: 5
Function: _error_handler

File: /home/iqeakxb/dev/application/vendor/guzzlehttp/promises/src/functions_include.php
Line: 5
Function: require

File: /home/iqeakxb/dev/application/vendor/composer/autoload_real.php
Line: 41
Function: require

File: /home/iqeakxb/dev/application/vendor/composer/autoload_real.php
Line: 45
Function: {closure:ComposerAutoloaderInit7b8580dd9b41833d4ba8f76a0ac16d19::getLoader():37}

File: /home/iqeakxb/dev/application/vendor/autoload.php
Line: 25
Function: getLoader

File: /home/iqeakxb/dev/index.php
Line: 293
Function: require_once

A PHP Error was encountered

Severity: Warning

Message: ini_set(): Session ini settings cannot be changed after headers have already been sent

Filename: Session/Session.php

Line Number: 301

Backtrace:

File: /home/iqeakxb/dev/application/controllers/site/Controller_ophorus_blog.php
Line: 32
Function: __construct

File: /home/iqeakxb/dev/index.php
Line: 293
Function: require_once

A PHP Error was encountered

Severity: Warning

Message: session_set_cookie_params(): Session cookie parameters cannot be changed after headers have already been sent

Filename: Session/Session.php

Line Number: 326

Backtrace:

File: /home/iqeakxb/dev/application/controllers/site/Controller_ophorus_blog.php
Line: 32
Function: __construct

File: /home/iqeakxb/dev/index.php
Line: 293
Function: require_once

A PHP Error was encountered

Severity: Warning

Message: ini_set(): Session ini settings cannot be changed after headers have already been sent

Filename: Session/Session.php

Line Number: 353

Backtrace:

File: /home/iqeakxb/dev/application/controllers/site/Controller_ophorus_blog.php
Line: 32
Function: __construct

File: /home/iqeakxb/dev/index.php
Line: 293
Function: require_once

A PHP Error was encountered

Severity: Warning

Message: ini_set(): Session ini settings cannot be changed after headers have already been sent

Filename: Session/Session.php

Line Number: 363

Backtrace:

File: /home/iqeakxb/dev/application/controllers/site/Controller_ophorus_blog.php
Line: 32
Function: __construct

File: /home/iqeakxb/dev/index.php
Line: 293
Function: require_once

A PHP Error was encountered

Severity: Warning

Message: ini_set(): Session ini settings cannot be changed after headers have already been sent

Filename: Session/Session.php

Line Number: 364

Backtrace:

File: /home/iqeakxb/dev/application/controllers/site/Controller_ophorus_blog.php
Line: 32
Function: __construct

File: /home/iqeakxb/dev/index.php
Line: 293
Function: require_once

A PHP Error was encountered

Severity: Warning

Message: ini_set(): Session ini settings cannot be changed after headers have already been sent

Filename: Session/Session.php

Line Number: 365

Backtrace:

File: /home/iqeakxb/dev/application/controllers/site/Controller_ophorus_blog.php
Line: 32
Function: __construct

File: /home/iqeakxb/dev/index.php
Line: 293
Function: require_once

A PHP Error was encountered

Severity: Warning

Message: ini_set(): Session ini settings cannot be changed after headers have already been sent

Filename: Session/Session.php

Line Number: 366

Backtrace:

File: /home/iqeakxb/dev/application/controllers/site/Controller_ophorus_blog.php
Line: 32
Function: __construct

File: /home/iqeakxb/dev/index.php
Line: 293
Function: require_once

A PHP Error was encountered

Severity: Warning

Message: session_set_save_handler(): Session save handler cannot be changed after headers have already been sent

Filename: Session/Session.php

Line Number: 110

Backtrace:

File: /home/iqeakxb/dev/application/controllers/site/Controller_ophorus_blog.php
Line: 32
Function: __construct

File: /home/iqeakxb/dev/index.php
Line: 293
Function: require_once

A PHP Error was encountered

Severity: Warning

Message: session_start(): Session cannot be started after headers have already been sent

Filename: Session/Session.php

Line Number: 137

Backtrace:

File: /home/iqeakxb/dev/application/controllers/site/Controller_ophorus_blog.php
Line: 32
Function: __construct

File: /home/iqeakxb/dev/index.php
Line: 293
Function: require_once

A PHP Error was encountered

Severity: Deprecated Notice

Message: Mobile_Detect::__construct(): Implicitly marking parameter $headers as nullable is deprecated, the explicit nullable type must be used instead

Filename: mobiledetectlib/Mobile_Detect.php

Line Number: 888

Backtrace:

File: /home/iqeakxb/dev/application/vendor/composer/ClassLoader.php
Line: 576
Function: _error_handler

File: /home/iqeakxb/dev/application/vendor/composer/ClassLoader.php
Line: 576
Function: include

File: /home/iqeakxb/dev/application/vendor/composer/ClassLoader.php
Line: 427
Function: {closure:Composer\Autoload\ClassLoader::initializeIncludeClosure():575}

File: /home/iqeakxb/dev/application/models/Model_checks.php
Line: 137
Function: loadClass

File: /home/iqeakxb/dev/application/controllers/site/Controller_ophorus_blog.php
Line: 33
Function: checkAgent

File: /home/iqeakxb/dev/index.php
Line: 293
Function: require_once

A PHP Error was encountered

Severity: Warning

Message: Cannot modify header information - headers already sent by (output started at /home/iqeakxb/dev/system/core/Exceptions.php:291)

Filename: models/Model_headers.php

Line Number: 27

Backtrace:

File: /home/iqeakxb/dev/application/models/Model_headers.php
Line: 27
Function: header_remove

File: /home/iqeakxb/dev/application/controllers/site/Controller_ophorus_blog.php
Line: 115
Function: putHEADERS

File: /home/iqeakxb/dev/index.php
Line: 293
Function: require_once

A PHP Error was encountered

Severity: Warning

Message: Cannot modify header information - headers already sent by (output started at /home/iqeakxb/dev/system/core/Exceptions.php:291)

Filename: TEMPLATES/header.php

Line Number: 6

Backtrace:

File: /home/iqeakxb/dev/application/views/site/TEMPLATES/header.php
Line: 6
Function: header_remove

File: /home/iqeakxb/dev/application/views/site/ophorus_site_blog_article.php
Line: 6
Function: view

File: /home/iqeakxb/dev/application/controllers/site/Controller_ophorus_blog.php
Line: 144
Function: view

File: /home/iqeakxb/dev/index.php
Line: 293
Function: require_once

Ophorus : 20 Years, 20 Milestones: A Journey Through Time with Ophorus -->
loading Ophorus Please wait
USE PROMO CODE HELLOSPRING AND RECEIVE 10% DISCOUNT ON A SELECTION OF TOURS
logo Ophorus Tours Your order is being processed, please wait loading Ophorus
Ophorus events

Celebrating 20 Years of Ophorus: Our Journey Through Milestones

This year, we celebrate a very special milestone: 20 years of passion, service, and unforgettable experiences! From humble beginnings as a passenger transport company in Toulouse, we've grown into a leading inbound travel agency.

At the heart of this story are two people: Nancy and Christophe, passionate travelers and guides who believed in offering authentic, local, and meaningful experiences. From guiding small groups through the streets of southwest France, they have built a team, a brand, and a vision and continue to lead the agency today with the same energy and purpose as day one.

To celebrate this 20-year milestone, we’re sharing “20 Years in 20 Events”, a timeline of the defining moments that made Ophorus what it is today.

Nancy & Christophe

 

  • 2005 – Where It All Begins

Ophorus is born in Toulouse, founded as a passenger transport company focused on small-group tours. The first destination is officially launched, and a vision for quality, human-scale travel begins to take shape.

  • 2008 – Bordeaux Joins the Map

We expand west to open our Bordeaux destination, a key region that will become central to our identity, especially with its world-renowned wine heritage.

  • 2010 – Welcome to the Dordogne

We venture into the heart of southwest France with the launch of our Sarlat destination, unlocking unforgettable tours through the Dordogne’s castles, caves, and cuisine.

  • 2013 – A Major Milestone

We officially become a receptive travel agency, registered with Atout France, and launch operations in Strasbourg, bringing Alsace into the Ophorus experience.

  • 2015 – Bordeaux Becomes Home

The company headquarters moves from Toulouse to Bordeaux, with new offices opening in Le Bouscat. A new chapter begins.

  • 2016 – Colmar Completes Alsace

Colmar, one of Alsace’s most charming towns, becomes our second hub in the region — completing our presence across the Alsatian wine route.

  • 2019 – Normandy Bound

We expand to Bayeux, offering travelers intimate access to the D-Day beaches, Mont Saint-Michel, and the stories of Normandy.

  • 2022 – Provence, at Last

Aix-en-Provence becomes our newest destination in the south, where art, lavender, and hilltop villages welcome guests to the heart of Provence.

  • 2023 – Castles & Vines

We open Loire Valley operations, launching tours through France’s most iconic castles and scenic vineyard landscapes.

  • 2024 – A Fresh Start

We move our headquarters to Bruges (Gironde), just outside Bordeaux, a move that reflects both growth and a renewed focus on quality of life and collaboration.

  • 2025 – Full Circle & New Horizons

We return to our roots with the reopening of Toulouse and launch a long-awaited new region: Burgundy, with its legendary wines and timeless villages.

 

…and 9 Other Moments That Defined Our Story

  • 2014 – Going Global

Our tours are listed on Viator, marking a key moment of international visibility and accessibility to global travelers.

  • 2018 – Structuring for Growth

We create our first dedicated operations team, laying the groundwork for smoother logistics, guide management, and destination coordination.

  • 2020 – Adapting in Uncertain Times

With global travel on pause, we adapt quickly, prioritizing private formats, reinforcing health protocols, and focusing on client care and flexibility.

  • 2020–2021 – Rebranding & New Digital Identity

A complete visual rebrand is launched alongside a new website, offering a more intuitive user experience and reflecting our growth and premium positioning.

  • 2022 – First full season after COVID

A fresh momentum returns, and we relaunch full operations across destinations with growing international demand and a renewed focus on small-group excellence.

  • 2024 – Our First Company Seminar

We bring the entire team together for the first-ever company seminar in Bordeaux, combining reflection, strategy, and celebration with our office teams from across France.

  • 2025 – A National Gathering in Strasbourg

Our second seminar unites both office teams and guides from all destinations in Strasbourg, a powerful moment of connection and shared purpose, reflecting the human side of everything we do.

  • 2025 – Enhanced Communication & Launch of the Ophorus App

To stay connected with our travelers and offer an even smoother experience, 2025 marked a new digital chapter for Ophorus. We diversified our communication tools and proudly launched the Ophorus mobile app, designed to help travelers manage their bookings, get real-time updates, and enhance their journey with just a few taps.

  • 2025 – Celebrating 20 Years

Two decades of unforgettable experiences, strong partnerships, and thousands of happy travelers and the best is yet to come.

 

As we celebrate this milestone, we want to express our deepest gratitude to everyone who has been part of the Ophorus story, our wonderful clients, passionate guides, dedicated team members, and trusted partners. Your support, trust, and enthusiasm have shaped who we are today. Here's to the memories we've made, the journeys we've shared, and the exciting adventures still to come. Merci from the bottom of our hearts!

 

 

SHARE

Temps d'exécution :

A PHP Error was encountered

Severity: Warning

Message: Undefined variable $execution_time

Filename: PARTS/_ophorus_performances.php

Line Number: 2

Backtrace:

File: /home/iqeakxb/dev/application/views/site/PARTS/_ophorus_performances.php
Line: 2
Function: _error_handler

File: /home/iqeakxb/dev/application/views/site/TEMPLATES/footer.php
Line: 3
Function: view

File: /home/iqeakxb/dev/application/views/site/ophorus_site_blog_article.php
Line: 60
Function: view

File: /home/iqeakxb/dev/application/controllers/site/Controller_ophorus_blog.php
Line: 144
Function: view

File: /home/iqeakxb/dev/index.php
Line: 293
Function: require_once

secondes

Mémoire utilisée :

A PHP Error was encountered

Severity: Warning

Message: Undefined variable $memory_usage

Filename: PARTS/_ophorus_performances.php

Line Number: 3

Backtrace:

File: /home/iqeakxb/dev/application/views/site/PARTS/_ophorus_performances.php
Line: 3
Function: _error_handler

File: /home/iqeakxb/dev/application/views/site/TEMPLATES/footer.php
Line: 3
Function: view

File: /home/iqeakxb/dev/application/views/site/ophorus_site_blog_article.php
Line: 60
Function: view

File: /home/iqeakxb/dev/application/controllers/site/Controller_ophorus_blog.php
Line: 144
Function: view

File: /home/iqeakxb/dev/index.php
Line: 293
Function: require_once

0.00 Ko

Ophorus trusted reviews

Secured payments

Ophorus trusted reviews

easy cancellation

Ophorus trusted reviews

trusted reviews