With travel remaining problematic, we mainly used the time since the previous summary blog for a number of improvements on foundational infrastructure KDE Itinerary relies on.


The most visible thing to show this time isn’t a new feature, but progress in how we ship KDE Itinerary on Android. I have written previously about this in more detail here and here as this involved more general work on KDE’s delivery infrastructure. The highlights are:

  • KDE’s F-Droid repository has now been split into one for nightly development builds and one containing release builds from the stable branch.
  • Release packages contain translation catalogs and are nevertheless considerably smaller in size.
Screenshot of the F-Droid store showing KDE Itinerary's information.
KDE Itinerary in the F-Droid app.

And while there is already a presence of KDE Itinerary in the Google Play store the app isn’t available there yet (which should hopefully change soon).

Infrastructure Work

Travel document extractor

The major changes to the travel document extractor engine mentioned last time started to pay off, with all standardized ticket barcode types currently supported now modeled in the document tree. This enables many of the extractors previously tied to an email or PDF context to also work on images or raw input from a barcode scanner.

Another significant improvement is the added support for all known versions of the ERA SSB ticket barcodes, replacing the more fragile reverse-engineered extractor for VR and parts of the Trenitalia one.

As a side-effect of this work, the barcode scanner of Plasma Mobile, Qrca also got support for handling binary barcode content, allowing to copy and paste those into KDE Itinerary.

Public transport data

In KPublicTransport the transition to the coverage model of the Transport API Repository has been completed. Coverage information describe which service is applicable for a specific location. We used to have a very simple geographic bounding area for this, which was now extended by additional data quality information as well as ISO 3166-1/2 region codes for a better human readable presentation.

This allows KPublicTransport to do fewer online queries by having more hints for selecting the best available service for a requested journey information.

Geographic coverage data can now also consist of disjoint areas and performs better for higher-complexity polygons. A new polygon simplifier also considerably eases the import of new service configurations from the Transport API Repository, replacing a previously used time consuming manual process.


I have recently written about ongoing work of bringing timezone and country related methods to KDE Frameworks. This is something KDE Itinerary heavily relies on, and thus will benefit directly from any improvement. With the coordinate-based lookup of country subdivisions we’ll be able to automatically show public holidays at a destination, and more accurately determining opening hours in the train station map for example.

Fixes & Improvements

Travel document extractor

New features for extractor scripts:

  • Lists of format and locale candidates can now be provided to date/time decoding, which will try all of those until one matches.
  • The document node that triggered a script execution is now available to as a script argument.
  • Support for 1D barcode decoding, and allow to bypass the barcode aspect ratio heuristics which enables finding barcodes in larger images, not just those properly isolated.

Improved extractor scripts:

  • Various fixes for SNCF booking emails (bug 437854, 436976).
  • Support for more variants of NH and booking.com confirmation or cancelation emails.
  • Added an event extractor for German Red Cross blood donor service reservation emails.

Public transport data

  • Fixed parsing of numeric GBFS station ids, which brings back realtime rental bike positions in e.g. Paris.
  • Public transport backend services are now shown under each country group they cover in the settings, rather than just their primary country.
  • Imported service configurations for INVG, RSAG and VSN from the Transport API repository, increasing local transport coverage in parts of Germany.

KMail itinerary plugin

  • Fixed the country field in address-based OSM map links.
  • Added missing closing bold tag for canceled hotel reservations.

Itinerary app

  • Improved translation context to resolve ambiguities in English texts used in the app in other languages.
  • Kirigami’s passive notifications are now also used for import feedback.
  • KCrash, KDE’s crash handler is now used when available.
  • Wraped overly long event venue names.
  • Removed DAVx legacy support, which is no longer needed with any DAVx release after early 2019.


While the pandemic still makes field testing and collecting travel document samples difficult in many parts of the world, there’s plenty of other things that can be done. The KDE Itinerary workboard or the more specialized indoor map workboard show what’s on the todo list, and are a good place for collecting new ideas. For questions and suggestions, please feel free to join us on the KDE PIM mailing list or in the #kontact channel on Matrix.