Iceland itineraries: 4 routes to volcanoes, waterfalls and geothermal pools

Iceland is small enough to pack a lot into even a short trip. Here are four itineraries that will take you to beaches, mountains, volcanoes and so much more.

Feb 28, 2025 - 13:40
 0
Iceland itineraries: 4 routes to volcanoes, waterfalls and geothermal pools

Active volcanoes, rushing waterfalls and steaming geothermal pools ⁠– Iceland packs a lot of wild landscapes into a small island. It’s also home to the cool and cultural capital Reykjavík, which keeps travelers occupied with fascinating museums and great dining choices. Each season also provides unique experiences to Iceland, with winter offering chances to see the northern lights, and summer providing long, sunny days of exploration. 

All of this makes Iceland a great place for travelers, who can pack some pretty epic experiences into even a short trip. That’s why we’ve created four incredible itineraries for Iceland, ranging from five to seven days (though each can be extended with more time or additional stops). 

If you’re looking to plan a perfect Icelandic adventure, here are four itineraries to consider.Exception: The parser function of type "canto_diptych" is not defined. Define your custom parser functions as: https://github.com/shuqikhor/editorjs-html-php#extend-for-custom-blocks in /code/vendor/sqkhor/editorjs-html/src/edjsHTML.php:70 Stack trace: #0 /code/vendor/sqkhor/editorjs-html/src/edjsHTML.php(17): edjsHTML::parse_function_error('canto_diptych') #1 [internal function]: edjsHTML::parse_block(Array) #2 /code/web/modules/custom/editorjs_custom_plugins/src/Parser/CustomParser.php(28): array_map(Array, Array) #3 /code/web/modules/custom/aws_event_pipeline/src/Mappers/v1/ArticleMapper.php(123): Drupal\editorjs_custom_plugins\Parser\CustomParser::parse(Array) #4 /code/web/modules/custom/aws_event_pipeline/src/AwsFormatter.php(168): Drupal\aws_event_pipeline\Mappers\v1\ArticleMapper->toAwsPayload(Object(Drupal\node\Entity\Node)) #5 /code/web/modules/custom/aws_event_pipeline/src/AwsFormatter.php(151): Drupal\aws_event_pipeline\AwsFormatter->getPayload(Object(Drupal\node\Entity\Node), Array) #6 /code/web/modules/custom/aws_event_pipeline/src/AwsEventSync.php(174): Drupal\aws_event_pipeline\AwsFormatter->getAwsMessage(Object(Drupal\node\Entity\Node), Object(Drupal\aws_event_pipeline\AwsEvent\AwsEvent), Array) #7 /code/web/modules/custom/aws_event_pipeline/src/Plugin/QueueWorker/AepQueueProcessor.php(177): Drupal\aws_event_pipeline\AwsEventSync->sendToAws(Object(Drupal\node\Entity\Node), Object(Drupal\aws_event_pipeline\AwsEvent\AwsEvent)) #8 /code/web/modules/contrib/ultimate_cron/src/QueueWorker.php(111): Drupal\aws_event_pipeline\Plugin\QueueWorker\AepQueueProcessor->processItem(Object(Drupal\aws_event_pipeline\AwsEvent\AwsEvent)) #9 [internal function]: Drupal\ultimate_cron\QueueWorker->queueCallback(Object(Drupal\ultimate_cron\Entity\CronJob)) #10 /code/web/modules/contrib/ultimate_cron/src/Entity/CronJob.php(325): call_user_func(Array, Object(Drupal\ultimate_cron\Entity\CronJob)) #11 /code/web/modules/contrib/ultimate_cron/src/Entity/CronJob.php(471): Drupal\ultimate_cron\Entity\CronJob->invokeCallback() #12 /code/web/modules/contrib/ultimate_cron/src/Plugin/ultimate_cron/Launcher/SerialLauncher.php(213): Drupal\ultimate_cron\Entity\CronJob->run(Object(Drupal\Core\StringTranslation\TranslatableMarkup)) #13 /code/web/modules/contrib/ultimate_cron/src/Plugin/ultimate_cron/Launcher/SerialLauncher.php(334): Drupal\ultimate_cron\Plugin\ultimate_cron\Launcher\SerialLauncher->launch(Object(Drupal\ultimate_cron\Entity\CronJob)) #14 /code/web/modules/contrib/ultimate_cron/src/Plugin/ultimate_cron/Launcher/SerialLauncher.php(309): Drupal\ultimate_cron\Plugin\ultimate_cron\Launcher\SerialLauncher->runThread('6089646', 1, Array) #15 /code/web/modules/contrib/ultimate_cron/src/UltimateCron.php(64): Drupal\ultimate_cron\Plugin\ultimate_cron\Launcher\SerialLauncher->launchJobs(Array) #16 /code/web/modules/contrib/ultimate_cron/src/ProxyClass/UltimateCron.php(70): Drupal\ultimate_cron\UltimateCron->run() #17 /code/web/core/modules/system/src/CronController.php(46): Drupal\ultimate_cron\ProxyClass\UltimateCron->run() #18 [internal function]: Drupal\system\CronController->run() #19 /code/web/core/lib/Drupal/Core/EventSubscriber/EarlyRenderingControllerWrapperSubscriber.php(123): call_user_func_array(Array, Array) #20 /code/web/core/lib/Drupal/Core/Render/Renderer.php(592): Drupal\Core\EventSubscriber\EarlyRenderingControllerWrapperSubscriber->Drupal\Core\EventSubscriber\{closure}() #21 /code/web/core/lib/Drupal/Core/EventSubscriber/EarlyRenderingControllerWrapperSubscriber.php(124): Drupal\Core\Render\Renderer->executeInRenderContext(Object(Drupal\Core\Render\RenderContext), Object(Closure)) #22 /code/web/core/lib/Drupal/Core/EventSubscriber/EarlyRenderingControllerWrapperSubscriber.php(97): Drupal\Core\EventSubscriber\EarlyRenderingControllerWrapperSubscriber->wrapControllerExecutionInRenderContext(Array, Array) #23 /code/vendor/symfony/http-kernel/HttpKernel.php(181): Drupal\Core\EventSubscriber\EarlyRenderingControllerWrapperSubscriber->Drupal\Core\EventSubscriber\{closure}() #24 /code/vendor/symfony/http-kernel/HttpKernel.php(76): Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object(Symfony\Component\HttpFoundation\Request), 1) #25 /code/web/modules/contrib/redirect_after_login/src/RedirectMiddleware.php(44): Symfony\Component\HttpKernel\HttpKernel->handle(Object(Symfony\Component\HttpFoundation\Request), 1, true) #26 /code/web/core/lib/Drupal/Core/StackMiddleware/Session.php(58): Drupal\redirect_after_login\RedirectMiddleware->handle(Object(Symfony\Component\HttpFoundation\Request), 1, true) #27 /code/web/core/lib/Drupal/Core/StackMiddleware/KernelPreHandle.php(48): Drupal\Core\StackMiddleware\Session->handle(Object(Symfony\Component\HttpFoundation\Request), 1, true) #28 /code/web/core/modules/page_cache/src/StackMiddleware/PageCache.php(191): Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object(Symfony\Component\HttpFoundation\Request), 1, true) #29 /code/web/core/modules/page_cache/src/StackMiddleware/PageCache.php(128): Drupal\page_cache\StackMiddleware\PageCache->fetch(Object(Symfony\Component\HttpFoundation\Request), 1, true) #30 /code/web/core/modules/page_cache/src/StackMiddleware/PageCache.php(82): Drupal\page_cache\StackMiddleware\PageCache->lookup(Object(Symfony\Component\HttpFoundation\Request), 1, true) #31 /code/vendor/asm89/stack-cors/src/Cors.php(53): Drupal\page_cache\StackMiddleware\PageCache->handle(Object(Symfony\Component\HttpFoundation\Request), 1, true) #32 /code/web/core/lib/Drupal/Core/StackMiddleware/ReverseProxyMiddleware.php(48): Asm89\Stack\Cors->handle(Object(Symfony\Component\HttpFoundation\Request), 1, true) #33 /code/web/core/lib/Drupal/Core/StackMiddleware/NegotiationMiddleware.php(51): Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object(Symfony\Component\HttpFoundation\Request), 1, true) #34 /code/web/core/lib/Drupal/Core/StackMiddleware/StackedHttpKernel.php(51): Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object(Symfony\Component\HttpFoundation\Request), 1, true) #35 /code/web/core/lib/Drupal/Core/DrupalKernel.php(704): Drupal\Core\StackMiddleware\StackedHttpKernel->handle(Object(Symfony\Component\HttpFoundation\Request), 1, true) #36 /code/web/index.php(19): Drupal\Core\DrupalKernel->handle(Object(Symfony\Component\HttpFoundation\Request)) #37 {main}

1. Explore Reykjavík and the southwest

5-day itinerary 
Distance: 476km (296 miles) 

Iceland is small enough to pack a lot into even a short trip. Base yourself in Reykjavík during this five-day itinerary for easy access to Iceland's top natural wonders. Explore magnificent waterfalls, hot springs and lava fields by day, and spend the evenings meandering the streets of Iceland's liveliest city.

Reykjavík: 1½ days

This walkable capital city, filled with independent restaurants, one-of-a-kind boutiques and public art, will be your home base. Spend the first day and a half orienting yourself with a dive into Icelandic history at the Settlement Exhibition or the Abær Open Air Museum, catching a show at the Harpa concert hall and enjoying a Michelin-star meal.

Head to the Old Harbour to spend a few hours searching for whales, puffins or the northern lights. It's always possible to see whales. For puffins, visit between May and August, and sail in the evenings when the birds have returned to their burrows. For the northern lights, visit between September and April.

The Golden Circle: 1 day

From Reykjavík, take yourself on a day tour of Iceland's top three sights: Þingvellir National Park, Gullfoss falls, and the Geysir geothermal area. Rent a car for flexibility or join one of several guided Golden Circle tours. All of these stop at the three key sites, and some itineraries include excursions like snowmobiling and ice caving.

Kerið Crater: 1 day

Drive one hour from Reykjavík to Kerið Crater, an overlooked natural wonder. Start the day with an easy hike around the colorful caldera. It should take under an hour, but you may struggle to pull away from these views.

Detour: Spend the afternoon exploring caves and riding horses across the red lava fields in Heiðmörk Nature Reserve (three hours).

Langjökull Glacier: 1 day 

Leave Reykjavík early for a full day of adventure on Langjökull, Iceland’s second-largest glacier (a 2½-hour drive). Book a tour to ride a massive eight-wheel monster truck across this majestic chunk of ice. Grab a pair of crampons and spend an hour with a guide wandering the world’s longest human-made ice tunnel. Notice the colors; you’ll see everything from cloudy white to deep blue.

Blue Lagoon: half-day

On your way from Reykjavík to Keflavík International Airport, give yourself at least two hours to enjoy this idyllic geothermal lagoon among the lava fields. Plan for longer if you’d like a massage, float therapy or to soak in the warm blue-tinted water rich with silica mud for just a few more minutes. If you’re not driving, schedule an airport bus transfer with a Blue Lagoon stop and store your luggage at the lagoon.Exception: The parser function of type "canto_diptych" is not defined. Define your custom parser functions as: https://github.com/shuqikhor/editorjs-html-php#extend-for-custom-blocks in /code/vendor/sqkhor/editorjs-html/src/edjsHTML.php:70 Stack trace: #0 /code/vendor/sqkhor/editorjs-html/src/edjsHTML.php(17): edjsHTML::parse_function_error('canto_diptych') #1 [internal function]: edjsHTML::parse_block(Array) #2 /code/web/modules/custom/editorjs_custom_plugins/src/Parser/CustomParser.php(28): array_map(Array, Array) #3 /code/web/modules/custom/aws_event_pipeline/src/Mappers/v1/ArticleMapper.php(123): Drupal\editorjs_custom_plugins\Parser\CustomParser::parse(Array) #4 /code/web/modules/custom/aws_event_pipeline/src/AwsFormatter.php(168): Drupal\aws_event_pipeline\Mappers\v1\ArticleMapper->toAwsPayload(Object(Drupal\node\Entity\Node)) #5 /code/web/modules/custom/aws_event_pipeline/src/AwsFormatter.php(151): Drupal\aws_event_pipeline\AwsFormatter->getPayload(Object(Drupal\node\Entity\Node), Array) #6 /code/web/modules/custom/aws_event_pipeline/src/AwsEventSync.php(174): Drupal\aws_event_pipeline\AwsFormatter->getAwsMessage(Object(Drupal\node\Entity\Node), Object(Drupal\aws_event_pipeline\AwsEvent\AwsEvent), Array) #7 /code/web/modules/custom/aws_event_pipeline/src/Plugin/QueueWorker/AepQueueProcessor.php(177): Drupal\aws_event_pipeline\AwsEventSync->sendToAws(Object(Drupal\node\Entity\Node), Object(Drupal\aws_event_pipeline\AwsEvent\AwsEvent)) #8 /code/web/modules/contrib/ultimate_cron/src/QueueWorker.php(111): Drupal\aws_event_pipeline\Plugin\QueueWorker\AepQueueProcessor->processItem(Object(Drupal\aws_event_pipeline\AwsEvent\AwsEvent)) #9 [internal function]: Drupal\ultimate_cron\QueueWorker->queueCallback(Object(Drupal\ultimate_cron\Entity\CronJob)) #10 /code/web/modules/contrib/ultimate_cron/src/Entity/CronJob.php(325): call_user_func(Array, Object(Drupal\ultimate_cron\Entity\CronJob)) #11 /code/web/modules/contrib/ultimate_cron/src/Entity/CronJob.php(471): Drupal\ultimate_cron\Entity\CronJob->invokeCallback() #12 /code/web/modules/contrib/ultimate_cron/src/Plugin/ultimate_cron/Launcher/SerialLauncher.php(213): Drupal\ultimate_cron\Entity\CronJob->run(Object(Drupal\Core\StringTranslation\TranslatableMarkup)) #13 /code/web/modules/contrib/ultimate_cron/src/Plugin/ultimate_cron/Launcher/SerialLauncher.php(334): Drupal\ultimate_cron\Plugin\ultimate_cron\Launcher\SerialLauncher->launch(Object(Drupal\ultimate_cron\Entity\CronJob)) #14 /code/web/modules/contrib/ultimate_cron/src/Plugin/ultimate_cron/Launcher/SerialLauncher.php(309): Drupal\ultimate_cron\Plugin\ultimate_cron\Launcher\SerialLauncher->runThread('6089646', 1, Array) #15 /code/web/modules/contrib/ultimate_cron/src/UltimateCron.php(64): Drupal\ultimate_cron\Plugin\ultimate_cron\Launcher\SerialLauncher->launchJobs(Array) #16 /code/web/modules/contrib/ultimate_cron/src/ProxyClass/UltimateCron.php(70): Drupal\ultimate_cron\UltimateCron->run() #17 /code/web/core/modules/system/src/CronController.php(46): Drupal\ultimate_cron\ProxyClass\UltimateCron->run() #18 [internal function]: Drupal\system\CronController->run() #19 /code/web/core/lib/Drupal/Core/EventSubscriber/EarlyRenderingControllerWrapperSubscriber.php(123): call_user_func_array(Array, Array) #20 /code/web/core/lib/Drupal/Core/Render/Renderer.php(592): Drupal\Core\EventSubscriber\EarlyRenderingControllerWrapperSubscriber->Drupal\Core\EventSubscriber\{closure}() #21 /code/web/core/lib/Drupal/Core/EventSubscriber/EarlyRenderingControllerWrapperSubscriber.php(124): Drupal\Core\Render\Renderer->executeInRenderContext(Object(Drupal\Core\Render\RenderContext), Object(Closure)) #22 /code/web/core/lib/Drupal/Core/EventSubscriber/EarlyRenderingControllerWrapperSubscriber.php(97): Drupal\Core\EventSubscriber\EarlyRenderingControllerWrapperSubscriber->wrapControllerExecutionInRenderContext(Array, Array) #23 /code/vendor/symfony/http-kernel/HttpKernel.php(181): Drupal\Core\EventSubscriber\EarlyRenderingControllerWrapperSubscriber->Drupal\Core\EventSubscriber\{closure}() #24 /code/vendor/symfony/http-kernel/HttpKernel.php(76): Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object(Symfony\Component\HttpFoundation\Request), 1) #25 /code/web/modules/contrib/redirect_after_login/src/RedirectMiddleware.php(44): Symfony\Component\HttpKernel\HttpKernel->handle(Object(Symfony\Component\HttpFoundation\Request), 1, true) #26 /code/web/core/lib/Drupal/Core/StackMiddleware/Session.php(58): Drupal\redirect_after_login\RedirectMiddleware->handle(Object(Symfony\Component\HttpFoundation\Request), 1, true) #27 /code/web/core/lib/Drupal/Core/StackMiddleware/KernelPreHandle.php(48): Drupal\Core\StackMiddleware\Session->handle(Object(Symfony\Component\HttpFoundation\Request), 1, true) #28 /code/web/core/modules/page_cache/src/StackMiddleware/PageCache.php(191): Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object(Symfony\Component\HttpFoundation\Request), 1, true) #29 /code/web/core/modules/page_cache/src/StackMiddleware/PageCache.php(128): Drupal\page_cache\StackMiddleware\PageCache->fetch(Object(Symfony\Component\HttpFoundation\Request), 1, true) #30 /code/web/core/modules/page_cache/src/StackMiddleware/PageCache.php(82): Drupal\page_cache\StackMiddleware\PageCache->lookup(Object(Symfony\Component\HttpFoundation\Request), 1, true) #31 /code/vendor/asm89/stack-cors/src/Cors.php(53): Drupal\page_cache\StackMiddleware\PageCache->handle(Object(Symfony\Component\HttpFoundation\Request), 1, true) #32 /code/web/core/lib/Drupal/Core/StackMiddleware/ReverseProxyMiddleware.php(48): Asm89\Stack\Cors->handle(Object(Symfony\Component\HttpFoundation\Request), 1, true) #33 /code/web/core/lib/Drupal/Core/StackMiddleware/NegotiationMiddleware.php(51): Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object(Symfony\Component\HttpFoundation\Request), 1, true) #34 /code/web/core/lib/Drupal/Core/StackMiddleware/StackedHttpKernel.php(51): Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object(Symfony\Component\HttpFoundation\Request), 1, true) #35 /code/web/core/lib/Drupal/Core/DrupalKernel.php(704): Drupal\Core\StackMiddleware\StackedHttpKernel->handle(Object(Symfony\Component\HttpFoundation\Request), 1, true) #36 /code/web/index.php(19): Drupal\Core\DrupalKernel->handle(Object(Symfony\Component\HttpFoundation\Request)) #37 {main}

2. Go on a south coast adventure 

6-day itinerary 
Distance: 932km (579 miles) 

Six days is enough time to get to know Iceland's south coast without feeling rushed. Check out a glacial lagoon. Ride horses on the beach. Go paragliding, hiking or chasing waterfalls. Eat farm-to-table meals. Try hot springs bread. Soak in a lagoon. Go inside a volcano, and make memories you’ll never forget.

Reykjavík: 1 day

Spend your first night in Reykjavík. Unwind from a long flight with a luxurious dip in the Sky Lagoon. For dinner, have a traditional lamb hot dog, a Michelin-star meal or fresh fish of the day. Visit a bar or two on Laugavegur St, or call it an early night and have brunch at a Miðborg café before heading out on the Ring Road toward Seljalandsfoss.

Seljalandsfoss: 1 day 

Drive 40 minutes to stop at the Hveragerði geothermal area to try fresh Icelandic rye baked over a hot spring before heading to Seljalandsfoss (roughly one-hour drive). When you get to Seljalandsfoss, expect about an hour to hike around it. Continue to Vík (one hour). 

Detour: Hike to the top of Skógafoss, the misty waterfall that’s become a popular filming location (three hours).

Vík: 1 day

Use Vík as your home base for two days while exploring this stretch of the south coast. Spend the first day sampling its restaurants while also visiting black-sand beaches like Reynisfjara, a magnificent coastline and a fairy-tale church.

Jökulsárlón: 1 day

Take a day trip from Vík to see the glittering icebergs that have washed up at Fellsfjara (Diamond Beach). Marvel at the glorious blue Jökulsárlón glacial lagoon and take a tour to get up close to the giant chunks of ice.

Detour: Stop at the Fjaðrárgljúfur Canyon on your way back to Vík. It looks like a serpent carved into the earth and is worth the detour (three hours). 

Katla Geopark: 1 day

From Vík, head out on an off-road adventure on a super-jeep tour of Katla Geopark (a 35-minute drive). Take a journey deep into the Katla Ice Cave. Go ice climbing or snowmobiling across Mýrdalsjökull glacier. The specially modified vehicle you'll need to access these areas aren't available for rent, so sign up for a guided tour.

Vestmannaeyjar: 1 day

Have an early breakfast in Vík and head west on Rte 1. Drive to Landeyjahöfn and take the ferry to Vestmannaeyjar to look for puffins and visit the Eldheimar Museum. Take the ferry back and stop in Selfoss at the Old Dairy food hall for dinner on your way to Keflavík International Airport.

Detour: If you have time, stop at Leif the Lucky Bridge and cross the rift between the North American and Eurasian tectonic plates (one hour).Exception: The parser function of type "canto_collage" is not defined. Define your custom parser functions as: https://github.com/shuqikhor/editorjs-html-php#extend-for-custom-blocks in /code/vendor/sqkhor/editorjs-html/src/edjsHTML.php:70 Stack trace: #0 /code/vendor/sqkhor/editorjs-html/src/edjsHTML.php(17): edjsHTML::parse_function_error('canto_collage') #1 [internal function]: edjsHTML::parse_block(Array) #2 /code/web/modules/custom/editorjs_custom_plugins/src/Parser/CustomParser.php(28): array_map(Array, Array) #3 /code/web/modules/custom/aws_event_pipeline/src/Mappers/v1/ArticleMapper.php(123): Drupal\editorjs_custom_plugins\Parser\CustomParser::parse(Array) #4 /code/web/modules/custom/aws_event_pipeline/src/AwsFormatter.php(168): Drupal\aws_event_pipeline\Mappers\v1\ArticleMapper->toAwsPayload(Object(Drupal\node\Entity\Node)) #5 /code/web/modules/custom/aws_event_pipeline/src/AwsFormatter.php(151): Drupal\aws_event_pipeline\AwsFormatter->getPayload(Object(Drupal\node\Entity\Node), Array) #6 /code/web/modules/custom/aws_event_pipeline/src/AwsEventSync.php(174): Drupal\aws_event_pipeline\AwsFormatter->getAwsMessage(Object(Drupal\node\Entity\Node), Object(Drupal\aws_event_pipeline\AwsEvent\AwsEvent), Array) #7 /code/web/modules/custom/aws_event_pipeline/src/Plugin/QueueWorker/AepQueueProcessor.php(177): Drupal\aws_event_pipeline\AwsEventSync->sendToAws(Object(Drupal\node\Entity\Node), Object(Drupal\aws_event_pipeline\AwsEvent\AwsEvent)) #8 /code/web/modules/contrib/ultimate_cron/src/QueueWorker.php(111): Drupal\aws_event_pipeline\Plugin\QueueWorker\AepQueueProcessor->processItem(Object(Drupal\aws_event_pipeline\AwsEvent\AwsEvent)) #9 [internal function]: Drupal\ultimate_cron\QueueWorker->queueCallback(Object(Drupal\ultimate_cron\Entity\CronJob)) #10 /code/web/modules/contrib/ultimate_cron/src/Entity/CronJob.php(325): call_user_func(Array, Object(Drupal\ultimate_cron\Entity\CronJob)) #11 /code/web/modules/contrib/ultimate_cron/src/Entity/CronJob.php(471): Drupal\ultimate_cron\Entity\CronJob->invokeCallback() #12 /code/web/modules/contrib/ultimate_cron/src/Plugin/ultimate_cron/Launcher/SerialLauncher.php(213): Drupal\ultimate_cron\Entity\CronJob->run(Object(Drupal\Core\StringTranslation\TranslatableMarkup)) #13 /code/web/modules/contrib/ultimate_cron/src/Plugin/ultimate_cron/Launcher/SerialLauncher.php(334): Drupal\ultimate_cron\Plugin\ultimate_cron\Launcher\SerialLauncher->launch(Object(Drupal\ultimate_cron\Entity\CronJob)) #14 /code/web/modules/contrib/ultimate_cron/src/Plugin/ultimate_cron/Launcher/SerialLauncher.php(309): Drupal\ultimate_cron\Plugin\ultimate_cron\Launcher\SerialLauncher->runThread('6089646', 1, Array) #15 /code/web/modules/contrib/ultimate_cron/src/UltimateCron.php(64): Drupal\ultimate_cron\Plugin\ultimate_cron\Launcher\SerialLauncher->launchJobs(Array) #16 /code/web/modules/contrib/ultimate_cron/src/ProxyClass/UltimateCron.php(70): Drupal\ultimate_cron\UltimateCron->run() #17 /code/web/core/modules/system/src/CronController.php(46): Drupal\ultimate_cron\ProxyClass\UltimateCron->run() #18 [internal function]: Drupal\system\CronController->run() #19 /code/web/core/lib/Drupal/Core/EventSubscriber/EarlyRenderingControllerWrapperSubscriber.php(123): call_user_func_array(Array, Array) #20 /code/web/core/lib/Drupal/Core/Render/Renderer.php(592): Drupal\Core\EventSubscriber\EarlyRenderingControllerWrapperSubscriber->Drupal\Core\EventSubscriber\{closure}() #21 /code/web/core/lib/Drupal/Core/EventSubscriber/EarlyRenderingControllerWrapperSubscriber.php(124): Drupal\Core\Render\Renderer->executeInRenderContext(Object(Drupal\Core\Render\RenderContext), Object(Closure)) #22 /code/web/core/lib/Drupal/Core/EventSubscriber/EarlyRenderingControllerWrapperSubscriber.php(97): Drupal\Core\EventSubscriber\EarlyRenderingControllerWrapperSubscriber->wrapControllerExecutionInRenderContext(Array, Array) #23 /code/vendor/symfony/http-kernel/HttpKernel.php(181): Drupal\Core\EventSubscriber\EarlyRenderingControllerWrapperSubscriber->Drupal\Core\EventSubscriber\{closure}() #24 /code/vendor/symfony/http-kernel/HttpKernel.php(76): Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object(Symfony\Component\HttpFoundation\Request), 1) #25 /code/web/modules/contrib/redirect_after_login/src/RedirectMiddleware.php(44): Symfony\Component\HttpKernel\HttpKernel->handle(Object(Symfony\Component\HttpFoundation\Request), 1, true) #26 /code/web/core/lib/Drupal/Core/StackMiddleware/Session.php(58): Drupal\redirect_after_login\RedirectMiddleware->handle(Object(Symfony\Component\HttpFoundation\Request), 1, true) #27 /code/web/core/lib/Drupal/Core/StackMiddleware/KernelPreHandle.php(48): Drupal\Core\StackMiddleware\Session->handle(Object(Symfony\Component\HttpFoundation\Request), 1, true) #28 /code/web/core/modules/page_cache/src/StackMiddleware/PageCache.php(191): Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object(Symfony\Component\HttpFoundation\Request), 1, true) #29 /code/web/core/modules/page_cache/src/StackMiddleware/PageCache.php(128): Drupal\page_cache\StackMiddleware\PageCache->fetch(Object(Symfony\Component\HttpFoundation\Request), 1, true) #30 /code/web/core/modules/page_cache/src/StackMiddleware/PageCache.php(82): Drupal\page_cache\StackMiddleware\PageCache->lookup(Object(Symfony\Component\HttpFoundation\Request), 1, true) #31 /code/vendor/asm89/stack-cors/src/Cors.php(53): Drupal\page_cache\StackMiddleware\PageCache->handle(Object(Symfony\Component\HttpFoundation\Request), 1, true) #32 /code/web/core/lib/Drupal/Core/StackMiddleware/ReverseProxyMiddleware.php(48): Asm89\Stack\Cors->handle(Object(Symfony\Component\HttpFoundation\Request), 1, true) #33 /code/web/core/lib/Drupal/Core/StackMiddleware/NegotiationMiddleware.php(51): Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object(Symfony\Component\HttpFoundation\Request), 1, true) #34 /code/web/core/lib/Drupal/Core/StackMiddleware/StackedHttpKernel.php(51): Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object(Symfony\Component\HttpFoundation\Request), 1, true) #35 /code/web/core/lib/Drupal/Core/DrupalKernel.php(704): Drupal\Core\StackMiddleware\StackedHttpKernel->handle(Object(Symfony\Component\HttpFoundation\Request), 1, true) #36 /code/web/index.php(19): Drupal\Core\DrupalKernel->handle(Object(Symfony\Component\HttpFoundation\Request)) #37 {main}

3. Drive the Ring Road around Iceland

7-day itinerary
Distance: 956km (594 miles) 

This itinerary will take you around the entire country in a week. From artsy Reykjavík and the wild Snæfellsnes Peninsula to a whale haven and endless stretches of black-sand beaches, experience every scene and season as you circle the country, even if you don’t have much time.

Reykjavík: 1 day

Spend your first night in Reykjavík preparing for an unforgettable trip on Rte 1, the scenic Ring Road that loops around Iceland. Unwind in the Sky Lagoon after a long flight. Have a Michelin-star meal, a Bill Clinton–approved hot dog or langoustine soup for dinner and set out on the road trip of a lifetime after breakfast.

Snæfallsnes Peninsula: 1 day 

Head out early to drive the Snæfellsnes Peninsula (two hours). This is one of Iceland's most scenic drives. See the volcano that inspired Jules Verne and Kirkjufell, the cone-shaped mountain that’s the most photographed in Iceland. Drive on to Akureyri. 

Akureyri: half-day

Stop in Akureyri to wander the charming streets of Old Town where many buildings are finished with corrugated iron to protect them from harsh weather. See mid-century stained-glass windows at the striking Akureyri Church, or step back in time at Gásir which hosts a medieval festival each July. Drive one hour to Húsavík in the evening or early the next morning. 

Húsavík: 1 day

Spend your morning on a whale-watching boat tour. Prepare to be charmed by humpback whales, minke whales, porpoises and dolphin pods. Keep an eye out for the rare giant blue whale, as you're most likely to see this species here. After lunch in town, get back on the Ring Road to Seyðisfjörður (a three-hour drive).

Seyðisfjörður: 1 day

Follow the rainbow path to the light blue church in the charming village of Seyðisfjörður. Don’t miss the Tvísöngur sound sculpture or the chance to experience a thriving local arts scene. Get ready to drive three hours from Seyðisfjörður to Höfn.

Detour: Stop in Djúpivogur to check out 34 granite eggs lined up along the shore. Each represents a species of bird that nests here (one hour). 

Höfn: 1 day

Let Höfn, Iceland's langoustine fishing capital, welcome you with a fresh seafood dinner. Peak langoustine season is from mid-May to August. Each July, the town hosts a festival celebrating this type of lobster. Get ready to drive about three hours from Höfn to Vík.

Vík: 1½ days

Finish with a day in Vík. Have breakfast overlooking the rugged coastline and check out the views from its charming small-town church. Ride horses on the beach, take a scenic hike or go paragliding over magnificent rock formations before flying out of Keflavík International Airport (a three-hour drive from Vík).Exception: The parser function of type "canto_diptych" is not defined. Define your custom parser functions as: https://github.com/shuqikhor/editorjs-html-php#extend-for-custom-blocks in /code/vendor/sqkhor/editorjs-html/src/edjsHTML.php:70 Stack trace: #0 /code/vendor/sqkhor/editorjs-html/src/edjsHTML.php(17): edjsHTML::parse_function_error('canto_diptych') #1 [internal function]: edjsHTML::parse_block(Array) #2 /code/web/modules/custom/editorjs_custom_plugins/src/Parser/CustomParser.php(28): array_map(Array, Array) #3 /code/web/modules/custom/aws_event_pipeline/src/Mappers/v1/ArticleMapper.php(123): Drupal\editorjs_custom_plugins\Parser\CustomParser::parse(Array) #4 /code/web/modules/custom/aws_event_pipeline/src/AwsFormatter.php(168): Drupal\aws_event_pipeline\Mappers\v1\ArticleMapper->toAwsPayload(Object(Drupal\node\Entity\Node)) #5 /code/web/modules/custom/aws_event_pipeline/src/AwsFormatter.php(151): Drupal\aws_event_pipeline\AwsFormatter->getPayload(Object(Drupal\node\Entity\Node), Array) #6 /code/web/modules/custom/aws_event_pipeline/src/AwsEventSync.php(174): Drupal\aws_event_pipeline\AwsFormatter->getAwsMessage(Object(Drupal\node\Entity\Node), Object(Drupal\aws_event_pipeline\AwsEvent\AwsEvent), Array) #7 /code/web/modules/custom/aws_event_pipeline/src/Plugin/QueueWorker/AepQueueProcessor.php(177): Drupal\aws_event_pipeline\AwsEventSync->sendToAws(Object(Drupal\node\Entity\Node), Object(Drupal\aws_event_pipeline\AwsEvent\AwsEvent)) #8 /code/web/modules/contrib/ultimate_cron/src/QueueWorker.php(111): Drupal\aws_event_pipeline\Plugin\QueueWorker\AepQueueProcessor->processItem(Object(Drupal\aws_event_pipeline\AwsEvent\AwsEvent)) #9 [internal function]: Drupal\ultimate_cron\QueueWorker->queueCallback(Object(Drupal\ultimate_cron\Entity\CronJob)) #10 /code/web/modules/contrib/ultimate_cron/src/Entity/CronJob.php(325): call_user_func(Array, Object(Drupal\ultimate_cron\Entity\CronJob)) #11 /code/web/modules/contrib/ultimate_cron/src/Entity/CronJob.php(471): Drupal\ultimate_cron\Entity\CronJob->invokeCallback() #12 /code/web/modules/contrib/ultimate_cron/src/Plugin/ultimate_cron/Launcher/SerialLauncher.php(213): Drupal\ultimate_cron\Entity\CronJob->run(Object(Drupal\Core\StringTranslation\TranslatableMarkup)) #13 /code/web/modules/contrib/ultimate_cron/src/Plugin/ultimate_cron/Launcher/SerialLauncher.php(334): Drupal\ultimate_cron\Plugin\ultimate_cron\Launcher\SerialLauncher->launch(Object(Drupal\ultimate_cron\Entity\CronJob)) #14 /code/web/modules/contrib/ultimate_cron/src/Plugin/ultimate_cron/Launcher/SerialLauncher.php(309): Drupal\ultimate_cron\Plugin\ultimate_cron\Launcher\SerialLauncher->runThread('6089646', 1, Array) #15 /code/web/modules/contrib/ultimate_cron/src/UltimateCron.php(64): Drupal\ultimate_cron\Plugin\ultimate_cron\Launcher\SerialLauncher->launchJobs(Array) #16 /code/web/modules/contrib/ultimate_cron/src/ProxyClass/UltimateCron.php(70): Drupal\ultimate_cron\UltimateCron->run() #17 /code/web/core/modules/system/src/CronController.php(46): Drupal\ultimate_cron\ProxyClass\UltimateCron->run() #18 [internal function]: Drupal\system\CronController->run() #19 /code/web/core/lib/Drupal/Core/EventSubscriber/EarlyRenderingControllerWrapperSubscriber.php(123): call_user_func_array(Array, Array) #20 /code/web/core/lib/Drupal/Core/Render/Renderer.php(592): Drupal\Core\EventSubscriber\EarlyRenderingControllerWrapperSubscriber->Drupal\Core\EventSubscriber\{closure}() #21 /code/web/core/lib/Drupal/Core/EventSubscriber/EarlyRenderingControllerWrapperSubscriber.php(124): Drupal\Core\Render\Renderer->executeInRenderContext(Object(Drupal\Core\Render\RenderContext), Object(Closure)) #22 /code/web/core/lib/Drupal/Core/EventSubscriber/EarlyRenderingControllerWrapperSubscriber.php(97): Drupal\Core\EventSubscriber\EarlyRenderingControllerWrapperSubscriber->wrapControllerExecutionInRenderContext(Array, Array) #23 /code/vendor/symfony/http-kernel/HttpKernel.php(181): Drupal\Core\EventSubscriber\EarlyRenderingControllerWrapperSubscriber->Drupal\Core\EventSubscriber\{closure}() #24 /code/vendor/symfony/http-kernel/HttpKernel.php(76): Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object(Symfony\Component\HttpFoundation\Request), 1) #25 /code/web/modules/contrib/redirect_after_login/src/RedirectMiddleware.php(44): Symfony\Component\HttpKernel\HttpKernel->handle(Object(Symfony\Component\HttpFoundation\Request), 1, true) #26 /code/web/core/lib/Drupal/Core/StackMiddleware/Session.php(58): Drupal\redirect_after_login\RedirectMiddleware->handle(Object(Symfony\Component\HttpFoundation\Request), 1, true) #27 /code/web/core/lib/Drupal/Core/StackMiddleware/KernelPreHandle.php(48): Drupal\Core\StackMiddleware\Session->handle(Object(Symfony\Component\HttpFoundation\Request), 1, true) #28 /code/web/core/modules/page_cache/src/StackMiddleware/PageCache.php(191): Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object(Symfony\Component\HttpFoundation\Request), 1, true) #29 /code/web/core/modules/page_cache/src/StackMiddleware/PageCache.php(128): Drupal\page_cache\StackMiddleware\PageCache->fetch(Object(Symfony\Component\HttpFoundation\Request), 1, true) #30 /code/web/core/modules/page_cache/src/StackMiddleware/PageCache.php(82): Drupal\page_cache\StackMiddleware\PageCache->lookup(Object(Symfony\Component\HttpFoundation\Request), 1, true) #31 /code/vendor/asm89/stack-cors/src/Cors.php(53): Drupal\page_cache\StackMiddleware\PageCache->handle(Object(Symfony\Component\HttpFoundation\Request), 1, true) #32 /code/web/core/lib/Drupal/Core/StackMiddleware/ReverseProxyMiddleware.php(48): Asm89\Stack\Cors->handle(Object(Symfony\Component\HttpFoundation\Request), 1, true) #33 /code/web/core/lib/Drupal/Core/StackMiddleware/NegotiationMiddleware.php(51): Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object(Symfony\Component\HttpFoundation\Request), 1, true) #34 /code/web/core/lib/Drupal/Core/StackMiddleware/StackedHttpKernel.php(51): Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object(Symfony\Component\HttpFoundation\Request), 1, true) #35 /code/web/core/lib/Drupal/Core/DrupalKernel.php(704): Drupal\Core\StackMiddleware\StackedHttpKernel->handle(Object(Symfony\Component\HttpFoundation\Request), 1, true) #36 /code/web/index.php(19): Drupal\Core\DrupalKernel->handle(Object(Symfony\Component\HttpFoundation\Request)) #37 {main}

4. See the best of the west coast

5-day itinerary
Distance: 517km (321 miles) 

Let your imagination run wild on a day trip to the Snæfellsnes Peninsula. See the volcano that inspired a Jules Verne novel and the picturesque mountain that’s become a Game of Thrones regular. Take a scenic hike. Sample fresh-baked hverabrauð (hot spring bread) and walk from Europe to North America.

Reykjavík: 1 day

Spend your first two nights in Reykjavík. Have fresh Icelandic fish and chips, visit a local museum, check out street art and shop adorable boutiques. Depending on when you're traveling, chase the northern lights or revel in the midnight sun.

Þingvellir National Park: 1 day

Take a day trip to Þingvellir National Park and dive into the Silfra Fissure for an unforgettable swim between tectonic plates. See the birthplace of modern democracy and the first home of Iceland's Alþingi. Go horse riding, traverse lava fields or simply enjoy the views.

Laugarvatn Fontana: half-day

Head to Laugarvatn Fontana, where, at this relaxed geothermal spa and bakery, the specialty of the house is Icelandic lava bread: a rye that's been baked in the sand by the heat of hot springs. Try some of this traditional hverabrauð with fresh Icelandic butter after a long soak in a warm pool and a quick dip in the cold lake. This complex is less crowded than the Sky Lagoon and Blue Lagoon, and admission is a fraction of the price. Head to Hveragerði (a 40-minute drive) for the rest of the day.  

Hveragerði: half-day

Hike the Reykjadalur Valley in Hveragerði and reward yourself with a soak in a warm geothermal river. Check out steaming vents and bubbling mud pools along a meandering two-mile path that passes canyons and waterfalls as its cuts through this colourful valley. There are public bathrooms at the trailhead. Spend the night in town, and stop for locally-made ice cream at Bongó ísbúð or Ísbúðin okkar.

Grindavík: 1 day

Drive 55 minutes from Hveragerði to Grindavik to check out this small fishing town. From here, hike the Fagradalsfjall lava fields where eruptions have become increasingly frequent in recent years. Or learn about saltfish at the Kvikan museum, and dine on fresh cod at Hjá Höllu or Salthúsið.

Blue Lagoon: half-day

The next morning, take yourself on a relaxing trip and step into the light blue water of the Blue Lagoon. Bask in its warmth while slathering your skin with mineral-rich silica mud, and treat yourself to an in-water massage or Michelin-star meal.

Leif the Lucky Bridge: half-day

For the rest of the day, drive 25 minutes to the Leif the Lucky Bridge. There’s no other place in the world where you can walk from Europe to North America. This spot along the Mid-Atlantic Ridge on the Reykjanes Peninsula is a place where the North American and Eurasian tectonic plates meet. Use the Leif the Lucky bridge to walk across the continental rift or explore the sandy fissure between the plates.