October/November in KDE Itinerary
Since the last update two month ago KDE Itinerary got a UI refresh, improved station maps and support for a new European train ticket standard, and there’s a new Nextcloud itinerary workflow app.
New Features
Nextcloud Workflow
There’s a new Nextcloud workflow app making use of our travel document extractor engine. This allows configuring ways to automatically extract travel documents given certain criteria, add the resulting information to your calendar and get notifications about that.

Also checkout the screencasts showing this in action.
UI Refresh
Like many other Plasma Mobile apps, KDE Itinerary has been ported to use new Kirigami “Mobile Forms” component for the reservation details and settings pages.
As a result of this a lot of functionality that so far was found in the context menu of the details pages or on separate sub-pages is now shown inline at the bottom of the details pages. That helps with discoverability, and makes things like attached documents much easier to reach.

This change landed shortly after branching for the 22.12 release.
Staircase Navigation
The indoor map we use for train stations so far could either navigate between floor levels by clicking on individual stairs or selecting the floor for an elevator. In some buildings stairs aren’t mapped as individual ways though, but as a multi-level stairwell area. We can now handle this as well, offering the same floor level selector as for elevators.

To make this discoverable, staircase areas now also have a corresponding icon.
Working out map modelling details like this has been helped a lot by collaboration with others working on OSM indoor mapping.
Infrastructure Work
ERA FCB Support
The first uses of the ERA FCB ticket format have been observed in the wild, so we finally could implement support for those.
The “Flexible Content Barcode” (FCB) of the European Union Agency for Railways (ERA) as defined in TAP TSI Technical Document Annex B.12 is the designated successor for existing international railway tickets in the EU. And as that lengthy name might already suggests, this is the by far most complicated ticket barcode format we encountered so far. Fortunately ERA published the corresponding ASN.1 specification on our request some time ago, that’s 2000+ lines of code defining hundreds of possible data fields.
While there is plenty of libraries and tools for dealing with ASN.1 data formats, there is little support in those for the “unaligned Packed Encoding Representation (uPER)” variant used here, let alone one that would then also work in combination with the complex FCB structures. So a lot of ground work on this was required as well.
Conceptually FCB is very interesting for us, it’s fully machine readable (unlike it’s ASCII-art like predecessor RCT2) and the use case of a 3rd party providing additional assistance features for the traveler based on this (ie. the thing we do) was considered as part of the design. On the other hand it looks like it has all possible ticket and tariff variants used anywhere crammed together, in mostly optional data fields.
We still have to see how useful this turns out in reality, that is if the information relevant for us actually gets populated. At least we now have the ability to completely dump the content of FCB tickets, which is also important from a privacy point of view.
ERA FCB tickets like their predecessors occur as payload in the UIC 918.3 container format, our data extractors for that have been extended to at least handle the ERA FCB variants we have seen so far.
OSM Tile Server Upgrade
The server providing OSM raw data tiles for Marble and also Itinerary’s station maps has been migrated to new hardware. The ever-growing OSM database has gotten close to the available SSD storage space on the old system, reaching 895GB.
On the new system we now have 2 TB of NVMe storage, which should hopefully last for a bit.
Fixes & Improvements
Travel document extractor
- Improve HTML to text conversion, for extractor scripts using text-based extraction of HTML content.
- Decode barcodes encoded as PDF image masks as well.
- Added support for RCT2 “Rail Pass Tickets”, such as Interrail passes.
- New extractors for Aegean Airlines, Bateliers Arcachon, České dráhy, Italo, Ouigo Spain and PKP.
- Improved extractor scripts for booking.com, FlixBus, SNCF, Thalys and Vueling tickets.
Indoor map
- Improved contrast of buildings in the Breeze light style.
- Show more accessibility related element properties, such as wheelchair lift availability, and availability of information in tactile writing or speech output.
- Correctly compute hit boxes for labels with a fixed (maximum) text width. This fixes close-by elements getting wrongly selected sometimes.
- Show information about gender neutral/gender segregated restrooms.
- Show room numbers if no room name is available. This is particularly useful when looking at university or office buildings.

Itinerary app
- Railjet coach layouts are now also retrieved for stops in Germany.
- Attached documents are no longer lost or duplicated when merging trip data from multiple sources.
- Ticket numbers (as opposed to booking references) for train tickets are shown when available. This is for example necessary for connecting to the Renfe onboard WiFi.
- Fixed date/time input for manually added trips being sometimes off by one day (bug 461963).
- Fixed barcode scanner not closing after detecting a health certificate.
- Fixed link color styling in Applet Wallet pass rendering.
- Fixed driving side information being wrong when living in a country driving on the left (bug 461438).
- Improved window layout and size when running on the desktop.
How you can help
More than ever this has been a team effort, and you can be part of this!
Feedback and travel document samples are very much welcome, and there are plenty of other
things that can be done without traveling as well. 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.