{"id":365902,"date":"2026-09-23T17:40:49","date_gmt":"2026-09-23T17:40:49","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/traveler\/"},"modified":"2026-09-24T08:31:40","modified_gmt":"2026-09-24T08:31:40","slug":"travel-app","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/travel-app\/","author":68342,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.0.0","stable_tag":"1.0.0","tested":"7.1.2","requires":"6.0","requires_php":"7.4","requires_plugins":null,"header_name":"Travel App","header_author":"Alex Kirk","header_description":"Turn booking confirmations into day-by-day travel itineraries you can follow, map, share and journal, all kept privately on your own site.","assets_banners_color":"88c1db","last_updated":"2026-09-24 08:31:40","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/github.com\/akirk\/travel-app","header_author_uri":"https:\/\/alex.kirk.at\/","rating":0,"author_block_rating":0,"active_installs":0,"downloads":59,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0.0":{"tag":"1.0.0","author":"akirk","date":"2026-09-24 08:31:40","revision":3710851}},"upgrade_notice":[],"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3710025,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3710025,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3710025,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3710025,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{"blueprint.json":{"filename":"blueprint.json","revision":3710902,"resolution":false,"location":"assets","locale":"","contents":"{\"landingPage\":\"\\\/travel-app\\\/\",\"steps\":[{\"step\":\"installPlugin\",\"pluginData\":{\"resource\":\"wordpress.org\\\/plugins\",\"slug\":\"travel-app\"},\"options\":{\"activate\":true}},{\"step\":\"mkdir\",\"path\":\"\\\/wordpress\\\/wp-content\\\/plugins\\\/travel-app\\\/playground\"},{\"step\":\"writeFile\",\"path\":\"\\\/wordpress\\\/wp-content\\\/plugins\\\/travel-app\\\/playground\\\/demo.php\",\"data\":{\"resource\":\"url\",\"url\":\"https:\\\/\\\/raw.githubusercontent.com\\\/akirk\\\/travel-app\\\/main\\\/.playground\\\/demo.php\"}},{\"step\":\"activatePlugin\",\"pluginPath\":\"travel-app\\\/travel-app.php\"}]}"}},"all_blocks":[],"tagged_versions":["1.0.0"],"block_files":[],"assets_screenshots":{"screenshot-1.jpg":{"filename":"screenshot-1.jpg","revision":3710025,"resolution":"1","location":"assets","locale":"","width":1920,"height":1080},"screenshot-2.jpg":{"filename":"screenshot-2.jpg","revision":3710025,"resolution":"2","location":"assets","locale":"","width":780,"height":1688},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3710849,"resolution":"3","location":"assets","locale":"","width":2620,"height":1650}},"screenshots":{"1":"A trip's day-by-day timeline, with the current and upcoming itinerary items highlighted.","2":"The trip list on a phone: the trips coming up with their dates and lengths, and the finished ones by year below."}},"plugin_section":[],"plugin_tags":[125417,183778,282442],"plugin_category":[39],"plugin_contributors":[77497],"plugin_business_model":[],"class_list":["post-365902","plugin","type-plugin","status-publish","hentry","plugin_tags-itinerary","plugin_tags-trip-planner","plugin_tags-wpapp","plugin_category-business","plugin_contributors-akirk","plugin_committers-akirk"],"banners":{"banner":"https:\/\/ps.w.org\/travel-app\/assets\/banner-772x250.png?rev=3710025","banner_2x":"https:\/\/ps.w.org\/travel-app\/assets\/banner-1544x500.png?rev=3710025","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/travel-app\/assets\/icon-128x128.png?rev=3710025","icon_2x":"https:\/\/ps.w.org\/travel-app\/assets\/icon-256x256.png?rev=3710025","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/travel-app\/assets\/screenshot-1.jpg?rev=3710025","caption":"A trip's day-by-day timeline, with the current and upcoming itinerary items highlighted."},{"src":"https:\/\/ps.w.org\/travel-app\/assets\/screenshot-2.jpg?rev=3710025","caption":"The trip list on a phone: the trips coming up with their dates and lengths, and the finished ones by year below."},{"src":"https:\/\/ps.w.org\/travel-app\/assets\/screenshot-3.png?rev=3710849","caption":""}],"raw_content":"<!--section=description-->\n<p>Travel App is a <a href=\"https:\/\/wpapps.kirk.at\/\">WP App<\/a>, an app for WordPress with the primary focus of being\nused by yourself, or your family or social group. It can only be accessed logged-in\nand adds a menu entry to the Masterbar to be reached.<\/p>\n\n<p>Travel App is a private travel organizer that allows you to organize travel itineraries\nas timelines. You can paste booking confirmations, calendar exports and itinerary notes,\nand Travel App turns them into a structured trip: flights, lodging, trains, rental cars,\nactivities and anything else you want to keep track of.<\/p>\n\n<p>There are lots of other small features:\n- map view (with Open Street Map),\n- journal entries per day,\n- you can share your trip with a link,\n- subscribe to your trips in your Calendar,\n- access your trips (including reservation files) offline, and\n- delegate another user on your site to create or edit trips on your behalf.<\/p>\n\n<p>As every WP App, Travel App comes with support for the Abilities API by providing all\nthe abilities necessary to use the app with an AI.<\/p>\n\n<p>If WordPress has AI Connectors configured, it will use them to better parse your pasted\nbooking confirmations.<\/p>\n\n<h3>Development<\/h3>\n\n<p>You find the source at <a href=\"https:\/\/github.com\/akirk\/travel-app\">https:\/\/github.com\/akirk\/travel-app<\/a><\/p>\n\n<!--section=installation-->\n<ol>\n<li>Upload the <code>travel-app<\/code> directory to the <code>\/wp-content\/plugins\/<\/code> directory<\/li>\n<li>Activate the plugin through the 'Plugins' menu in WordPress<\/li>\n<li>Open <code>\/travel-app\/<\/code> on your site<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"do%20i%20need%20an%20ai%20service%20to%20use%20this%3F\"><h3>Do I need an AI service to use this?<\/h3><\/dt>\n<dd><p>No. ICS calendar files are parsed locally, and free-form text falls back to a\nbuilt-in parser when no AI connector is configured. An AI connector makes\nimporting messy confirmation e-mails better, it is not required.<\/p><\/dd>\n<dt id=\"does%20the%20plugin%20create%20custom%20database%20tables%3F\"><h3>Does the plugin create custom database tables?<\/h3><\/dt>\n<dd><p>No. Trips are taxonomy terms, itinerary items and journal entries are custom\npost types, and the rest is post meta and options.<\/p><\/dd>\n<dt id=\"who%20can%20see%20my%20trips%3F\"><h3>Who can see my trips?<\/h3><\/dt>\n<dd><p>Only you, unless you say otherwise. Trips are private to their owner; the app\nrequires a logged-in user. Share links are created explicitly per trip and can\nbe removed again, and users you delegate to have to be granted the capability\nyou pick.<\/p><\/dd>\n<dt id=\"can%20i%20see%20my%20itinerary%20in%20my%20calendar%20app%3F\"><h3>Can I see my itinerary in my calendar app?<\/h3><\/dt>\n<dd><p>Yes. Each trip can be subscribed to as an ICS feed, and there is a feed covering\nall of your trips at once.<\/p><\/dd>\n<dt id=\"does%20it%20work%20without%20a%20connection%3F\"><h3>Does it work without a connection?<\/h3><\/dt>\n<dd><p>Yes. Travel App is a Progressive Web App: the timeline is cached for offline use\nand changes you make offline are queued and synced when you are back online.<\/p><\/dd>\n<dt id=\"where%20is%20the%20map%20data%20from%3F\"><h3>Where is the map data from?<\/h3><\/dt>\n<dd><p>The map uses OpenStreetMap tiles and OpenStreetMap's Nominatim geocoder, called\nfrom your browser. Looked-up coordinates are cached on your own site so repeat\nvisits do not query it again.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h3>1.0.0<\/h3>\n\n<ul>\n<li>Import itineraries from ICS calendar files, pasted booking confirmations and\nshort one-line notes, with an AI-assisted parser and a local fallback.<\/li>\n<li>Day-by-day trip timeline with now\/next highlighting and per-item edit pages.<\/li>\n<li>Route map with cached geocoding, ambiguous-place picking and route playback.<\/li>\n<li>Travel journal entries per day, publishable as blog post drafts.<\/li>\n<li>Share links, per-trip and all-trips ICS feeds, and self-contained HTML export.<\/li>\n<li>Progressive Web App with offline caching, background sync and Web Share Target.<\/li>\n<li>WordPress Abilities for the AI Assistant plugin.<\/li>\n<li>Delegated trip editing for other users on the site.<\/li>\n<\/ul>","raw_excerpt":"Turn booking confirmations into day-by-day travel itineraries you can follow, map, share and journal, all kept privately on your own site.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/365902","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=365902"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/akirk"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=365902"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=365902"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=365902"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=365902"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=365902"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=365902"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}