Vacations with Python + ADK

Vacations with Python + ADK

June 2, 2026

Already got freedom in time?

https://aegis-freedom.pages.dev/

For simple static pages, Playwright is usually overkill. Prefer fetch, curl, cheerio, BeautifulSoup, or an API if available. Use Playwright when browser behavior matters.

Be careful with robots.txt, site terms, rate limits, login-protected content, personal data, and aggressive parallel scraping. Scraping with a browser is heavier and easier to get blocked if you hit a site hard.

https://github.com/dawarich-app/atlas

Your favorite offline self-hostable maps. City, Country, Planet, you choose.

https://atlas.dawarich.app/docs/quickstart

git clone /poc
cd ./poc/z-poc-trip-planner-v4
#https://github.com/JAlcocerT/poc/tree/main/z-poc-trip-planner-v4

Which I have statically deployed at: https://17e286bf.trip-planner-9lt.pages.dev/

Tl;DR

You should probably know the WHY you are going somewhere first.

This will just reply to the where/how.

[AI] Vacation Planning - Recommendations, Costs, Weather

Python App to explore vacAItion destination. LLMs ❤️ Data. While exploring Agents

Intro

Following the TripPlanner, I thought that bringing cost of living data was a good idea.

For the cost of living data, we can take online info…

Because weather and cost is all that matter, right?

This one goes for these people that claim to love Asia, without explainin’ why :)

Open Source Perplexity like AI search engine with real-time citations, streaming responses, and live data powered by Firecrawl

AI search engine with web, news, and images. You will need firecrawl and groq Apis.

https://wanderlog.com/

https://selfh.st/apps/?search=trip

trip software https://jalcocert.github.io/JAlcocerT/tech-for-a-trip/#trip-planner Travel pack

https://jalcocert.github.io/JAlcocerT/geo-maps-and-data/

Wanderer supports creating routes and GPX

https://github.com/dedicatedcode/reitti immich with reitti

https://github.com/MrModest/reisenotiz

vpns: tailscale, wireguard

https://www.albertina.at/en/

Py Vacations

I tried to add AI capabilities to the trip planner but it didnt work out well.

It all started here, messed with other small projects

Weather Data

Home Data

Airbnb Listing with Smithery and MCP

And no API key!

Cost of Living Data

You could use playwright, or others like

But you can get away with bs4 actually.


Conclusions

I got to know that something similar exists: https://nomads.com/ from cool solopreneurs.

make cost-warsaw-capitals COST_ARGS="--limit 5 --delay-seconds 0.5 --fresh"
  make cost-warsaw-capitals COST_ARGS="--delay-seconds 10"

    make time-overlay-data
    make cost-overlay-data

FAQ

Other Trip Apps

🗺️ Minimalist POI Map Tracker and Trip Planner

alt text

MIT | Self-hosted weather API based on ECMWF data, serving colorized WebP maps and GeoJSON contours for easy integration with MapLibre, Leaflet, OpenLayers, and other GIS platforms

lastminute.com

Where to go. When to go. Can I go?

Some time ago, I made a Trip Planner Web App, based purely on weather patterns as described here.

If you are tired of this:

Karting Adventure

Why not taking a break in between?

[How to] Spin the Python Trip Planner! 📌
git clone https://github.com/JAlcocerT/Py_Trip_Planner && cd ./Py_Trip_Planner
#docker build -t trip_planner .
DOCKER_BUILDKIT=1 docker build --no-cache --progress=plain -t trip_planner .
docker run -d \
  --name tripplanner \
  -p 8051:8050 \
  --restart unless-stopped \
  trip_planner #ghcr.io/jalcocert/py_trip_planner #fossengineer/trip_planner

Or…Use the following docker compose:

<a class=“hextra-card group flex flex-col justify-start overflow-hidden rounded-lg border border-gray-200 text-current no-underline dark:shadow-none hover:shadow-gray-100 dark:hover:shadow-none shadow-gray-100 active:shadow-sm active:shadow-gray-200 transition-all duration-200 hover:border-gray-300 bg-transparent shadow-sm dark:border-neutral-800 hover:bg-slate-50 hover:shadow-md dark:hover:border-neutral-700 dark:hover:bg-neutral-900"href=“https://github.com/JAlcocerT/Home-Lab/tree/main/trip-planner" target="_blank” rel=“noreferrer”>Trip Planner | Docker Config 🐋 ↗

But we need something more to decide where and how to go next.

ℹ️
Related project Source Code - PyVacAItions 💻

THE USE CASE - Plan a Trip To MRK

Py-VacAItions

The project to know where/when to go and IF you can go

PyVacations Project Structure 📌
    • _index.md
      • _index.md
      •   <li class="flex list-none">
            <span class="inline-flex cursor-default items-center py-1"><svg width=1em xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" aria-hidden="true"><path stroke-linecap="round" stroke-linejoin="round" d="M9 12h6m-6 4h6m2 5H7a2 2 0 01-2-2V5a2 2 0 012-2h5.586a1 1 0 01.707.293l5.414 5.414a1 1 0 01.293.707V19a2 2 0 01-2 2z"/></svg><span class="ml-1">getting-started.md</span>
            </span>
          </li>
        
        • _index.md
        •     <li class="flex list-none">
                <span class="inline-flex cursor-default items-center py-1"><svg width=1em xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" aria-hidden="true"><path stroke-linecap="round" stroke-linejoin="round" d="M9 12h6m-6 4h6m2 5H7a2 2 0 01-2-2V5a2 2 0 012-2h5.586a1 1 0 01.707.293l5.414 5.414a1 1 0 01.293.707V19a2 2 0 01-2 2z"/></svg><span class="ml-1">organize-files.md</span>
                </span>
              </li>
          
            </ul>
          
          </ul>
          
          • _index.md
          •   <li class="flex list-none">
                <span class="inline-flex cursor-default items-center py-1"><svg width=1em xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" aria-hidden="true"><path stroke-linecap="round" stroke-linejoin="round" d="M9 12h6m-6 4h6m2 5H7a2 2 0 01-2-2V5a2 2 0 012-2h5.586a1 1 0 01.707.293l5.414 5.414a1 1 0 01.293.707V19a2 2 0 01-2 2z"/></svg><span class="ml-1">post-1.md</span>
                </span>
              </li>
            
            </ul>
            
  • content
    ├── _index.md // <- /
    ├── docs
    │   ├── _index.md // <- /docs/
    │   ├── getting-started.md // <- /docs/getting-started/
    │   └── guide
    │       ├── _index.md // <- /docs/guide/
    │       └── organize-files.md // <- /docs/guide/organize-files/
    └── blog
        ├── _index.md // <- /blog/
        └── post-1.md // <- /blog/post-1/

    Numbeo Data

    Its all about Knowledge of Crowds, not the tyrannyof the experts.

    $$ \sum_{i=1}^{n} \text{opinions}_i > n \cdot \text{opinions} $$

    First Knowledge Adquisition (with FireCrawl + openAI) 📌
    python3 firecrawl_test4.py "https://www.numbeo.com/cost-of-living/in/Warsaw" "output4"

    **Comparing 2 cities’ costs with FireCrawl + OpenAI

    python3 Z_FireCrawl_Numbeo_Compare_v6.py "https://www.numbeo.com/cost-of-living/in/Warsaw" "https://www.numbeo.com/cost-of-living/in/Barcelona"

    Weather Analytics

    Pirate Weather 📌

    This is a new addition to the ones used at TripPlanner

    Weather Patterns with MeteoStat 📌
    Weather Forecasts with OpenMeteo 📌
    ℹ️
    It enhances the python trip planner - with weather, described here

    Cost of Living Data

    Interactivity & Maps with Streamlit

    This is a really cool new feature from Streamlit.

    The Agents

    Its been a while since I got to know about CrewAI

    Not its time to do something with it

    Adding memory to the AI to know your preferences


    FAQ

    How to’s about SQLite

    SQLite is a very handy and portable DB to place some logs.

    Storing in SQLite 📌
    Reading SQLite 📌

    And now, there is even a fork of it

    More about SQLite Fork - libSQL [Optimized for AI] 📌

    SQLite is the most deployed database in history, with over 1 trillion active users. It was developed 25 years ago by Richard Hipp for a US Navy damage control system. This lightweight database is contained in a single 600 KB file, requires no server process, and is an essential part of many modern applications.

    Although SQLite is in the public domain, its development is managed by just three people, with no outside contributions allowed. Despite these limitations, SQLite has become ubiquitous due to its simplicity and reliability.

    In October 2022, a new fork called libSQL was introduced, with a focus on community-controlled development. It retains SQL-like compatibility with SQLite, but introduces new features to address some of SQLite’s limitations.

    Key features of libSQL:

    • One database per user: This approach could improve performance, reduce latency, and enhance security.
    • Server mode: Allows access to the database via HTTP.
    • Native replication system: Enables embedded replica features.
    • Encryption at rest: Adds an extra layer of security for data storage.
    • Web Assembly triggers: Lets you run code when specific events occur in the database.
    • Shared schema across multiple databases: Makes it easier to manage databases together.
    • Vector queries: Optimized for AI applications, enabling complex data operations.

    Benefits and Challenges of libSQL:

    • Performance: The one-database-per-user model can significantly boost performance and reduce latency, but it may create challenges with data retrieval and combining data across different locations.
    • Security: Enhanced security through encryption and the isolated nature of individual user databases.
    • However, retrieving and combining data from different databases may not be practical in all cases, especially when data is spread across geographically distant locations.

    In conclusion, libSQL brings significant improvements over SQLite by offering a more flexible, community-driven approach to database management. With its new features and robust capabilities, it has the potential to revolutionize how we build and manage databases, especially for applications requiring high performance, security, and AI integration.

    SQLite may be underappreciated, but with libSQL, it becomes even more powerful and adaptable to modern needs.

    Reading SQLite DBs 📌

    You can explore a SQLite via a script, like we did during the Scrapping Post

    There is a cool project for this - https://github.com/sqlitebrowser/sqlitebrowser

    sqlitebrowser - DB Browser for SQLite (DB4S) is an open-source tool for creating, designing, and editing SQLite database files.

    It simplifies database management for users and developers, eliminating the need for complex SQL commands.

    Key Features:

    • Visual interface resembling a spreadsheet.

    • Allows creation and modification of database files.

    • Supports searching, editing, and deleting database records.

    • Facilitates importing/exporting of data in various formats (CSV, SQL).

    • Offers SQL query capabilities with result inspection.

    • Provides graphical plotting of data.

    Key Information:

    • Continuous and nightly builds are available for download.

    • Compatible with Windows, macOS, Linux, and FreeBSD.

    • Installation options include package managers like Chocolatey, Homebrew, and Snap.

    • The project has a rich history of community contributions and updates.

    Conclusions:

    DB4S is a valuable tool for users needing an intuitive interface for SQLite database management.

    Similar Projects:

    • DBeaver: A universal database tool for developers.

    • HeidiSQL: A lightweight SQL client for MySQL, SQL Server, and PostgreSQL.

    Interesting software for Vacations

    Interesting maps for offline mode:

    flatpak install flathub app.organicmaps.desktop

    AirTrail UI

    GPL3.0 | A modern, open-source personal flight tracking system

    See also the AdventureLog project:

    It has very interestin use cases, even integration with Immich

    Or the

    Share media with your friends (airdrop for all devices):

    GPL 3.0 | A Progressive Web App for local file sharing

    MIT | Surmai is a personal/family travel organizer

    HomeAssistant

    With HA we also can…

    ℹ️
    After Weather Planning, there is also the financial aspects of travelling. Source Code

    Scrapping and LLMs

    Get Google Flights information with python.