{"id":386683,"date":"2026-10-15T06:13:22","date_gmt":"2026-10-15T06:13:22","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/gda-kraft-booking\/"},"modified":"2026-10-17T21:51:32","modified_gmt":"2026-10-17T21:51:32","slug":"gda-kraft-booking","status":"publish","type":"plugin","link":"https:\/\/kal.wordpress.org\/plugins\/gda-kraft-booking\/","author":23585620,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"0.2.2","stable_tag":"0.2.2","tested":"7.1.3","requires":"6.5","requires_php":"7.4","requires_plugins":null,"header_name":"GDA Kraft Booking \u2013 Vacation Rental Calendar & iCal Sync","header_author":"Global Digital Agency","header_description":"Free booking engine for vacation rentals and guest houses: availability calendar, seasonal rates, iCal sync and booking requests. No account needed.","assets_banners_color":"141936","last_updated":"2026-10-17 21:51:32","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"","header_author_uri":"https:\/\/app.global-digital-agency.fr","rating":0,"author_block_rating":0,"active_installs":0,"downloads":245,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"0.1.1":{"tag":"0.1.1","author":"globaldigitalagency","date":"2026-10-15 06:12:57","revision":3747689},"0.1.2":{"tag":"0.1.2","author":"globaldigitalagency","date":"2026-10-15 18:49:29","revision":3749150},"0.2.0":{"tag":"0.2.0","author":"globaldigitalagency","date":"2026-10-15 21:01:34","revision":3749303},"0.2.1":{"tag":"0.2.1","author":"globaldigitalagency","date":"2026-10-16 15:59:27","revision":3750730},"0.2.2":{"tag":"0.2.2","author":"globaldigitalagency","date":"2026-10-17 21:51:32","revision":3752387}},"upgrade_notice":{"0.2.2":"<p>Divi 5 presets apply to every Kraft Booking module, and accommodation pages display correctly on block themes.<\/p>","0.2.1":"<p>Fixes the Kraft Booking blocks missing from the block editor and shows translated booking statuses to guests.<\/p>","0.2.0":"<p>The plugin is now in English by default, with French, Spanish, Italian and German translations included. The admin follows each user&#039;s language.<\/p>","0.1.2":"<p>Adds a &quot;Getting started&quot; screen. No external request is made unless you click Connect.<\/p>"},"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3747689,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3747689,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256},"icon.svg":{"filename":"icon.svg","revision":3747689,"resolution":false,"location":"assets","locale":false}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3749150,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3749150,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{"blueprint.json":{"filename":"blueprint.json","revision":3752387,"resolution":false,"location":"assets","locale":"","contents":"{\"$schema\":\"https:\\\/\\\/playground.wordpress.net\\\/blueprint-schema.json\",\"meta\":{\"title\":\"GDA Kraft Booking demo\",\"description\":\"Installs GDA Kraft Booking and creates one fictitious holiday rental with rates, a cleaning fee, a tourist tax rule and a few blocked dates.\",\"author\":\"globaldigitalagency\",\"categories\":[\"Booking\"]},\"landingPage\":\"\\\/?gdakb_property=demo-seaside-cottage\",\"preferredVersions\":{\"php\":\"8.2\",\"wp\":\"latest\"},\"features\":{\"networking\":false},\"login\":true,\"steps\":[{\"step\":\"installPlugin\",\"pluginData\":{\"resource\":\"wordpress.org\\\/plugins\",\"slug\":\"gda-kraft-booking\"},\"options\":{\"activate\":true}},{\"step\":\"runPHP\",\"code\":\"<?php\\nrequire_once '\\\/wordpress\\\/wp-load.php';\\nif (!class_exists('GDAKB_Properties')) { return; }\\nglobal $wpdb;\\nwp_set_current_user(1);\\n$now = GDAKB_DB::utc_now();\\n$content = \\\"<!-- wp:paragraph -->\\\\n<p>Demo listing with fictitious data: pick your dates in the calendar, then send a booking request.<\\\/p>\\\\n<!-- \\\/wp:paragraph -->\\\\n\\\\n<!-- wp:gda-kraft-booking\\\/availability-calendar {\\\\\\\"months\\\\\\\":2} \\\/-->\\\\n\\\\n<!-- wp:gda-kraft-booking\\\/booking-form \\\/-->\\\";\\n$pid = wp_insert_post(array('post_type' => GDAKB_Properties::POST_TYPE, 'post_status' => 'publish', 'post_name' => 'demo-seaside-cottage', 'post_title' => 'Demo Seaside Cottage', 'post_excerpt' => 'Fictitious holiday rental used for this live preview.', 'post_content' => $content));\\nif (!$pid || is_wp_error($pid)) { return; }\\nGDAKB_Access::assign_property($pid);\\nforeach (array('_gdakb_city' => 'Sampleton', '_gdakb_country' => 'FR', '_gdakb_bedrooms' => 2, '_gdakb_beds' => 3, '_gdakb_bathrooms' => 1, '_gdakb_check_in_time' => '16:00', '_gdakb_check_out_time' => '10:00') as $k => $v) { update_post_meta($pid, $k, $v); }\\n$wpdb->insert(GDAKB_DB::table('units'), array('property_id' => $pid, 'name' => 'Whole cottage', 'slug' => 'whole-cottage', 'status' => 'active', 'adults' => 4, 'children' => 2, 'total_guests' => 6, 'created_at' => $now, 'updated_at' => $now));\\n$unit = (int) $wpdb->insert_id;\\n$wpdb->insert(GDAKB_DB::table('rate_plans'), array('property_id' => $pid, 'unit_id' => $unit, 'name' => 'Standard rate', 'currency' => 'EUR', 'base_price_minor' => 9500, 'min_stay' => 2, 'included_adults' => 2, 'extra_adult_minor' => 1500, 'active' => 1, 'created_at' => $now, 'updated_at' => $now));\\n$rate = (int) $wpdb->insert_id;\\n$y = (int) gmdate('Y') + ((int) gmdate('n') > 8 ? 1 : 0);\\n$wpdb->insert(GDAKB_DB::table('rate_rules'), array('rate_plan_id' => $rate, 'name' => 'Summer season', 'starts_on' => $y . '-07-01', 'ends_on' => $y . '-08-31', 'weekdays' => '1,2,3,4,5,6,7', 'price_minor' => 14000, 'modifier_type' => 'replace', 'min_stay' => 5, 'priority' => 20, 'active' => 1));\\n$wpdb->insert(GDAKB_DB::table('rate_rules'), array('rate_plan_id' => $rate, 'name' => 'Weekend', 'starts_on' => gmdate('Y-m-d'), 'ends_on' => ($y + 1) . '-12-31', 'weekdays' => '5,6', 'price_minor' => 11000, 'modifier_type' => 'replace', 'priority' => 10, 'active' => 1));\\n$wpdb->insert(GDAKB_DB::table('services'), array('property_id' => $pid, 'unit_id' => $unit, 'name' => 'Cleaning fee', 'calculation' => 'per_stay', 'amount_minor' => 4000, 'charge_type' => 'fee', 'mandatory' => 1, 'active' => 1, 'created_at' => $now, 'updated_at' => $now));\\n$wpdb->insert(GDAKB_DB::table('services'), array('property_id' => $pid, 'unit_id' => null, 'name' => 'Tourist tax', 'calculation' => 'per_guest_night', 'amount_minor' => 120, 'charge_type' => 'tax', 'tax_exempt_children' => 1, 'mandatory' => 1, 'active' => 1, 'created_at' => $now, 'updated_at' => $now));\\nfor ($i = 10; $i < 13; $i++) { $wpdb->insert(GDAKB_DB::table('inventory'), array('unit_id' => $unit, 'inventory_date' => gmdate('Y-m-d', strtotime('+' . $i . ' days')), 'is_closed' => 1, 'note' => 'Demo: booked elsewhere')); }\\nupdate_option('gdakb_demo_property_id', $pid, false);\\n\"}]}"}},"all_blocks":{"gda-kraft-booking\/guest-portal":{"$schema":"https:\/\/schemas.wp.org\/trunk\/block.json","apiVersion":3,"name":"gda-kraft-booking\/guest-portal","title":"Kraft Booking \u00b7 Client portal","category":"kraft-booking","icon":"admin-users","description":"Client stays and appointments: documents, messages, cancellation.","keywords":["booking","reservation","kraft"],"textdomain":"gda-kraft-booking","attributes":{"heading":{"type":"string","default":""},"show_summary":{"type":"boolean","default":true},"show_documents":{"type":"boolean","default":true},"show_messages":{"type":"boolean","default":true},"className":{"type":"string","default":""}},"supports":{"html":false,"align":["wide","full"],"customClassName":true},"editorScript":"gdakb-blocks-editor","editorStyle":["gdakb-frontend","gdakb-appointments"],"gdakb":{"component":"guest-portal","controls":[{"key":"heading","type":"text","label":"Title","default":""},{"key":"show_summary","type":"toggle","label":"Show summary","default":true},{"key":"show_documents","type":"toggle","label":"Show documents","default":true},{"key":"show_messages","type":"toggle","label":"Show messaging","default":true}]}},"gda-kraft-booking\/booking-form":{"$schema":"https:\/\/schemas.wp.org\/trunk\/block.json","apiVersion":3,"name":"gda-kraft-booking\/booking-form","title":"Kraft Booking \u00b7 Booking form","category":"kraft-booking","icon":"feedback","description":"Guest details and confirmation of the selected stay.","keywords":["booking","reservation","kraft"],"textdomain":"gda-kraft-booking","attributes":{"gateway":{"type":"string","default":"manual","enum":["manual","stripe","kraft"]},"show_guests":{"type":"boolean","default":true},"show_phone":{"type":"boolean","default":true},"show_message":{"type":"boolean","default":true},"show_summary":{"type":"boolean","default":true},"button_label":{"type":"string","default":""},"className":{"type":"string","default":""}},"supports":{"html":false,"align":["wide","full"],"customClassName":true},"editorScript":"gdakb-blocks-editor","editorStyle":["gdakb-frontend","gdakb-appointments"],"gdakb":{"component":"booking-form","controls":[{"key":"gateway","type":"select","label":"Payment","default":"manual","options":[{"value":"manual","label":"No online payment (direct confirmation)"},{"value":"stripe","label":"Online payment (Stripe \/ Kraft Pay)"},{"value":"kraft","label":"Kraft Pay"}]},{"key":"show_guests","type":"toggle","label":"Show guests","default":true},{"key":"show_phone","type":"toggle","label":"Show phone","default":true},{"key":"show_message","type":"toggle","label":"Show message","default":true},{"key":"show_summary","type":"toggle","label":"Show summary","default":true},{"key":"button_label","type":"text","label":"Button label","default":""}]}},"gda-kraft-booking\/search":{"$schema":"https:\/\/schemas.wp.org\/trunk\/block.json","apiVersion":3,"name":"gda-kraft-booking\/search","title":"Kraft Booking \u00b7 Availability search","category":"kraft-booking","icon":"search","description":"Search form (dates, guests, filters).","keywords":["booking","reservation","kraft"],"textdomain":"gda-kraft-booking","attributes":{"property_id":{"type":"number","default":0},"layout":{"type":"string","default":"horizontal","enum":["horizontal","vertical"]},"date_picker":{"type":"string","default":"mobile","enum":["native","calendar","mobile"]},"show_guest_picker":{"type":"boolean","default":true},"show_children":{"type":"boolean","default":true},"show_filters":{"type":"boolean","default":true},"results_url":{"type":"string","default":""},"button_label":{"type":"string","default":""},"className":{"type":"string","default":""}},"supports":{"html":false,"align":["wide","full"],"customClassName":true},"editorScript":"gdakb-blocks-editor","editorStyle":["gdakb-frontend","gdakb-appointments"],"gdakb":{"component":"search","controls":[{"key":"property_id","type":"number","label":"Property (ID, 0 = all)","default":0},{"key":"layout","type":"select","label":"Layout","default":"horizontal","options":[{"value":"horizontal","label":"Horizontal"},{"value":"vertical","label":"Vertical"}]},{"key":"date_picker","type":"select","label":"Date picker","default":"mobile","options":[{"value":"native","label":"Browser native"},{"value":"calendar","label":"Kraft Booking calendar"},{"value":"mobile","label":"Mobile calendar"}]},{"key":"show_guest_picker","type":"toggle","label":"Show guest selector","default":true},{"key":"show_children","type":"toggle","label":"Show children","default":true},{"key":"show_filters","type":"toggle","label":"Show advanced filters","default":true},{"key":"results_url","type":"text","label":"Results page URL","default":""},{"key":"button_label","type":"text","label":"Button label","default":""}]}},"gda-kraft-booking\/results":{"$schema":"https:\/\/schemas.wp.org\/trunk\/block.json","apiVersion":3,"name":"gda-kraft-booking\/results","title":"Kraft Booking \u00b7 Search results","category":"kraft-booking","icon":"grid-view","description":"Properties available for the searched dates.","keywords":["booking","reservation","kraft"],"textdomain":"gda-kraft-booking","attributes":{"columns":{"type":"number","default":3},"show_image":{"type":"boolean","default":true},"show_rating":{"type":"boolean","default":true},"show_amenities":{"type":"boolean","default":true},"show_property_link":{"type":"boolean","default":true},"button_label":{"type":"string","default":""},"className":{"type":"string","default":""}},"supports":{"html":false,"align":["wide","full"],"customClassName":true},"editorScript":"gdakb-blocks-editor","editorStyle":["gdakb-frontend","gdakb-appointments"],"gdakb":{"component":"results","controls":[{"key":"columns","type":"number","label":"Columns","default":3},{"key":"show_image","type":"toggle","label":"Show image","default":true},{"key":"show_rating","type":"toggle","label":"Show rating","default":true},{"key":"show_amenities","type":"toggle","label":"Show amenities","default":true},{"key":"show_property_link","type":"toggle","label":"Link to the property","default":true},{"key":"button_label","type":"text","label":"Button label","default":""}]}},"gda-kraft-booking\/availability-calendar":{"$schema":"https:\/\/schemas.wp.org\/trunk\/block.json","apiVersion":3,"name":"gda-kraft-booking\/availability-calendar","title":"Kraft Booking \u00b7 Availability calendar","category":"kraft-booking","icon":"calendar-alt","description":"Availability and nightly prices for a unit.","keywords":["booking","reservation","kraft"],"textdomain":"gda-kraft-booking","attributes":{"unit_id":{"type":"number","default":0},"months":{"type":"number","default":2},"show_prices":{"type":"boolean","default":true},"show_legend":{"type":"boolean","default":true},"className":{"type":"string","default":""}},"supports":{"html":false,"align":["wide","full"],"customClassName":true},"editorScript":"gdakb-blocks-editor","editorStyle":["gdakb-frontend","gdakb-appointments"],"gdakb":{"component":"availability-calendar","controls":[{"key":"unit_id","type":"number","label":"Unit (ID, 0 = automatic)","default":0},{"key":"months","type":"number","label":"Number of months","default":2},{"key":"show_prices","type":"toggle","label":"Show prices","default":true},{"key":"show_legend","type":"toggle","label":"Show legend","default":true}]}}},"tagged_versions":["0.1.1","0.1.2","0.2.0","0.2.1","0.2.2"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3752387,"resolution":"1","location":"assets","locale":"","width":1600,"height":1000},"screenshot-10.png":{"filename":"screenshot-10.png","revision":3752387,"resolution":"10","location":"assets","locale":"","width":1600,"height":1000},"screenshot-11.png":{"filename":"screenshot-11.png","revision":3752387,"resolution":"11","location":"assets","locale":"","width":1600,"height":1000},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3752387,"resolution":"2","location":"assets","locale":"","width":1600,"height":1000},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3752387,"resolution":"3","location":"assets","locale":"","width":1600,"height":1000},"screenshot-4.png":{"filename":"screenshot-4.png","revision":3752387,"resolution":"4","location":"assets","locale":"","width":1600,"height":1000},"screenshot-5.png":{"filename":"screenshot-5.png","revision":3752387,"resolution":"5","location":"assets","locale":"","width":1600,"height":1000},"screenshot-6.png":{"filename":"screenshot-6.png","revision":3752387,"resolution":"6","location":"assets","locale":"","width":1600,"height":1000},"screenshot-7.png":{"filename":"screenshot-7.png","revision":3752387,"resolution":"7","location":"assets","locale":"","width":1600,"height":1000},"screenshot-8.png":{"filename":"screenshot-8.png","revision":3752387,"resolution":"8","location":"assets","locale":"","width":1600,"height":1000},"screenshot-9.png":{"filename":"screenshot-9.png","revision":3752387,"resolution":"9","location":"assets","locale":"","width":1600,"height":1000}},"screenshots":{"1":"Accommodation page on the front end: photo gallery, availability calendar with nightly prices, price breakdown and booking form.","2":"Search form (dates and guests) and the results with the available accommodations and their total price.","3":"Occupancy planning in the admin: every property on one screen, with the upcoming stays.","4":"Availability and price calendar of a unit: open or block nights and adjust their price.","5":"iCal sync: export URL to paste into Airbnb or Booking.com, and the imported channel calendars.","6":"Rates and seasons of an accommodation: base rate, minimum stay and seasonal rules.","7":"Tourist tax rule: amount per person and per night, child exemption and cap on nights, next to the other fees.","8":"Getting started screen, shown once after activation.","9":"Block editor: the Kraft Booking blocks in the inserter and the availability calendar block with its settings.","10":"Divi 5 Visual Builder: native Kraft Booking modules with their settings panel.","11":"Guest portal: stay details, status, documents and messages with the host."}},"plugin_section":[],"plugin_tags":[56407,275,261650,7103,6467],"plugin_category":[40],"plugin_contributors":[286885],"plugin_business_model":[],"class_list":["post-386683","plugin","type-plugin","status-publish","hentry","plugin_tags-airbnb","plugin_tags-booking-calendar","plugin_tags-holiday-rental","plugin_tags-ical","plugin_tags-vacation-rental","plugin_category-calendar-and-events","plugin_contributors-globaldigitalagency","plugin_committers-globaldigitalagency"],"banners":{"banner":"https:\/\/ps.w.org\/gda-kraft-booking\/assets\/banner-772x250.png?rev=3749150","banner_2x":"https:\/\/ps.w.org\/gda-kraft-booking\/assets\/banner-1544x500.png?rev=3749150","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":"https:\/\/ps.w.org\/gda-kraft-booking\/assets\/icon.svg?rev=3747689","icon":"https:\/\/ps.w.org\/gda-kraft-booking\/assets\/icon.svg?rev=3747689","icon_2x":false,"generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/gda-kraft-booking\/assets\/screenshot-1.png?rev=3752387","caption":"Accommodation page on the front end: photo gallery, availability calendar with nightly prices, price breakdown and booking form."},{"src":"https:\/\/ps.w.org\/gda-kraft-booking\/assets\/screenshot-2.png?rev=3752387","caption":"Search form (dates and guests) and the results with the available accommodations and their total price."},{"src":"https:\/\/ps.w.org\/gda-kraft-booking\/assets\/screenshot-3.png?rev=3752387","caption":"Occupancy planning in the admin: every property on one screen, with the upcoming stays."},{"src":"https:\/\/ps.w.org\/gda-kraft-booking\/assets\/screenshot-4.png?rev=3752387","caption":"Availability and price calendar of a unit: open or block nights and adjust their price."},{"src":"https:\/\/ps.w.org\/gda-kraft-booking\/assets\/screenshot-5.png?rev=3752387","caption":"iCal sync: export URL to paste into Airbnb or Booking.com, and the imported channel calendars."},{"src":"https:\/\/ps.w.org\/gda-kraft-booking\/assets\/screenshot-6.png?rev=3752387","caption":"Rates and seasons of an accommodation: base rate, minimum stay and seasonal rules."},{"src":"https:\/\/ps.w.org\/gda-kraft-booking\/assets\/screenshot-7.png?rev=3752387","caption":"Tourist tax rule: amount per person and per night, child exemption and cap on nights, next to the other fees."},{"src":"https:\/\/ps.w.org\/gda-kraft-booking\/assets\/screenshot-8.png?rev=3752387","caption":"Getting started screen, shown once after activation."},{"src":"https:\/\/ps.w.org\/gda-kraft-booking\/assets\/screenshot-9.png?rev=3752387","caption":"Block editor: the Kraft Booking blocks in the inserter and the availability calendar block with its settings."},{"src":"https:\/\/ps.w.org\/gda-kraft-booking\/assets\/screenshot-10.png?rev=3752387","caption":"Divi 5 Visual Builder: native Kraft Booking modules with their settings panel."},{"src":"https:\/\/ps.w.org\/gda-kraft-booking\/assets\/screenshot-11.png?rev=3752387","caption":"Guest portal: stay details, status, documents and messages with the host."}],"raw_content":"<!--section=description-->\n<p>GDA Kraft Booking (public beta) adds a booking calendar and a booking engine to WordPress for holiday homes, vacation rentals, guest houses, B&amp;Bs (chambres d'h\u00f4tes), villas and small hotels. Turn your WordPress site into a vacation rental website that takes direct bookings, and keep your availability in sync with Airbnb, Booking.com and Vrbo through iCal. Every feature below works without an account, a subscription or a \"Pro\" version.<\/p>\n\n<p><strong>Languages:<\/strong> available in 5 languages: English (source language), French, Spanish, Italian and German. Translations are bundled with the plugin and follow the site language automatically; the admin screens follow each user's own profile language. Regional variants (for example fr_CA, es_MX, de_CH) use the closest bundled translation, and translations from translate.wordpress.org take priority when available. Guest e-mails are sent in the language of the booking. Any text shown to visitors can also be renamed in Texts and labels.<\/p>\n\n<h4>Features<\/h4>\n\n<ul>\n<li><strong>Accommodations and units<\/strong>: photos, property types, amenities, adults \/ children capacity per unit.<\/li>\n<li><strong>Rates<\/strong>: nightly price, seasons and rate rules, weekend prices, minimum stay, length-of-stay discounts, coupons, extra services and cleaning fees.<\/li>\n<li><strong>Tourist tax<\/strong>: per person and per night, with child exemption and a cap on nights.<\/li>\n<li><strong>Availability calendar<\/strong>: closed days, arrival \/ departure days, buffers between stays.<\/li>\n<li><strong>Airbnb calendar sync (iCal)<\/strong>: one export URL per unit, import of external calendars (Airbnb, Booking.com, Vrbo or any iCal channel), refreshed every 15 minutes.<\/li>\n<li><strong>Bookings<\/strong>: manual bookings and booking requests: the guest sends a request, you confirm it and collect the payment offline (bank transfer, on site).<\/li>\n<li><strong>Guest side<\/strong>: search form, results, booking form, price breakdown, guest portal with messages and documents.<\/li>\n<li><strong>Emails<\/strong>: confirmation, request received, reminders before arrival, review requests.<\/li>\n<li><strong>Texts and labels<\/strong>: rename any text (for example \"Guests\" to \"Persons\") without code.<\/li>\n<\/ul>\n\n<h4>Who is it for<\/h4>\n\n<ul>\n<li>Owners of one or a few holiday rentals who want a direct booking site.<\/li>\n<li>Guest houses, B&amp;Bs and small hotels that want guest house booking or B&amp;B booking on their own site, with several rooms or units.<\/li>\n<li>Web designers building accommodation sites with Divi 5, Elementor or the block editor.<\/li>\n<\/ul>\n\n<h4>Why direct bookings<\/h4>\n\n<p>Listing sites bring visibility, but each booking made through them is subject to their fees and rules. A direct booking page on your own site lets returning guests book you directly, under your own conditions. iCal keeps your calendar in sync with the listing sites you keep, so the same dates are not sold twice.<\/p>\n\n<h4>Divi 5, block editor and Elementor<\/h4>\n\n<p>The same booking components are available as Divi 5 modules, blocks for the block editor (Gutenberg) and Elementor widgets. Bricks support is coming.<\/p>\n\n<h4>Your data stays in WordPress<\/h4>\n\n<p>Bookings, guests and prices are stored in your own database. Nothing is sent anywhere unless you connect a Kraft GDA account.<\/p>\n\n<h4>Kraft GDA (free account) unlocks<\/h4>\n\n<p>An optional free Kraft GDA account gives access to the separate <strong>GDA Kraft Booking Connect<\/strong> add-on (downloaded from your Kraft GDA account, not from WordPress.org): online payments with Kraft Pay (Stripe), deposits and automatic balance collection, a front-end management dashboard, design modules, custom fields, a multilingual switcher and an AI assistant.<\/p>\n\n<p>These hosted features are services run by Kraft GDA (SaaS): they require a Kraft GDA account and the Connect add-on. The plugin and the account are free. Online payments made through Kraft Pay carry a service fee paid by the traveler: 0.45 % until 30 June 2027, then 0.9 %. The fee applies only to online payments; offline payments and booking requests are never charged.<\/p>\n\n<h4>Beta<\/h4>\n\n<p>This is a public beta (0.x versions). Please report any issue in the support forum.<\/p>\n\n<h3>External services<\/h3>\n\n<p>The plugin works without any external service. It only contacts the services below in the situations described.<\/p>\n\n<p><strong>Kraft GDA (https:\/\/app.global-digital-agency.fr)<\/strong> \u2014 optional account, used only if you click \"Connecter mon compte Kraft GDA (gratuit)\" (connect my free account) or \"J\u2019ai d\u00e9j\u00e0 un compte\" (I already have an account) on the \"Bien d\u00e9marrer\" (Getting started) or Kraft GDA screen.<\/p>\n\n<ul>\n<li>When: only when you click one of these buttons to connect the site, and when you click \"D\u00e9connecter\" (Disconnect). This plugin makes no background request to Kraft GDA and sends no statistics or usage data.<\/li>\n<li>Data sent: site address and name, administrator email address, plugin, WordPress and PHP versions, admin language, and a one-time connection code.<\/li>\n<li>Terms of use: https:\/\/app.global-digital-agency.fr\/cgu<\/li>\n<li>Privacy policy: https:\/\/app.global-digital-agency.fr\/confidentialite<\/li>\n<\/ul>\n\n<p><strong>OpenStreetMap \/ Nominatim (https:\/\/nominatim.openstreetmap.org)<\/strong> \u2014 optional place suggestions in the \"City\" field of the search module. <strong>Disabled by default<\/strong>: nothing is sent unless an administrator enables place suggestions in Kraft Booking \u203a R\u00e9glages \u203a Services externes (Settings \u203a External services).<\/p>\n\n<ul>\n<li>When: only once enabled, when a visitor types at least 3 characters in that field (requests go from your server; results are cached for 24 hours).<\/li>\n<li>Data sent: the text typed, the site language, and your site address in the User-Agent header (required by the Nominatim usage policy). No visitor IP address or other personal data is forwarded.<\/li>\n<li>Terms of use: https:\/\/operations.osmfoundation.org\/policies\/nominatim\/<\/li>\n<li>Privacy policy: https:\/\/osmfoundation.org\/wiki\/Privacy_Policy<\/li>\n<\/ul>\n\n<p><strong>iCal calendars you add<\/strong> (Airbnb, Booking.com, Vrbo or any other channel) \u2014 calendar synchronisation.<\/p>\n\n<ul>\n<li>When: every 15 minutes, only for the calendar URLs you entered in an accommodation.<\/li>\n<li>Data sent: a standard HTTP request to the URL you provided (no booking or guest data).<\/li>\n<li>Terms and privacy: those of the channel that provides the calendar URL.<\/li>\n<\/ul>\n\n<!--section=installation-->\n<ol>\n<li>Install and activate GDA Kraft Booking from Plugins \u203a Add New.<\/li>\n<li>Create your first accommodation in Kraft Booking \u203a H\u00e9bergements (Accommodations), then set its units, rates and availability in Planning &amp; tarifs.<\/li>\n<li>Add the booking blocks (or Divi modules \/ Elementor widgets) to your pages.<\/li>\n<li>Optional: to accept online payments, create a free Kraft GDA account from Kraft Booking \u203a Kraft GDA, then install the Connect add-on from that account.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"how%20does%20the%20airbnb%20calendar%20sync%20work%3F\"><h3>How does the Airbnb calendar sync work?<\/h3><\/dt>\n<dd><p>Each unit has an iCal export URL: paste it into the calendar settings of each channel. Then paste each channel's iCal URL into the unit. Imported calendars are refreshed every 15 minutes and their dates are blocked on your site. iCal only carries dates, not prices or guest details.<\/p><\/dd>\n<dt id=\"can%20i%20build%20a%20vacation%20rental%20website%20with%20it%3F\"><h3>Can I build a vacation rental website with it?<\/h3><\/dt>\n<dd><p>Yes. Create your rentals, then add the search, results, availability calendar and booking form to your pages (blocks, Divi 5 modules or Elementor widgets). Guests see live availability and the full price, and send their booking from your own site. It works with any theme.<\/p><\/dd>\n<dt id=\"does%20it%20work%20for%20a%20guest%20house%20or%20a%20b%26b%3F\"><h3>Does it work for a guest house or a B&amp;B?<\/h3><\/dt>\n<dd><p>Yes. One property can hold several rooms (units), each with its own capacity, rates and calendar. Guests pick their dates and the room they want, which covers guest house booking and B&amp;B booking on your own site.<\/p><\/dd>\n<dt id=\"can%20i%20get%20double%20bookings%3F\"><h3>Can I get double bookings?<\/h3><\/dt>\n<dd><p>On your site, a stay is held for a few minutes while the guest completes the form (15 by default) and overlapping dates are refused. Between your site and other channels, iCal is not instant: a booking made elsewhere is seen at the next refresh. For dates in high demand, confirm booking requests manually.<\/p><\/dd>\n<dt id=\"can%20it%20handle%20the%20tourist%20tax%20%28taxe%20de%20s%C3%A9jour%29%3F\"><h3>Can it handle the tourist tax (taxe de s\u00e9jour)?<\/h3><\/dt>\n<dd><p>Yes. Add a tourist tax rule per accommodation: amount per person and per night, child exemption, maximum number of nights, included in the price or added to it. You set the amounts that apply to you; the plugin does not provide official rates.<\/p><\/dd>\n<dt id=\"does%20it%20work%20with%20divi%3F\"><h3>Does it work with Divi?<\/h3><\/dt>\n<dd><p>Yes, with Divi 5: the booking components appear as native modules in the Visual Builder. With Divi 4, use the plugin's shortcodes instead.<\/p><\/dd>\n<dt id=\"is%20it%20free%3F%20what%20are%20the%20fees%3F\"><h3>Is it free? What are the fees?<\/h3><\/dt>\n<dd><p>The plugin is free, with no paid version and no locked feature. Booking requests and offline payments carry no fee. Only online payments through Kraft Pay (optional Connect add-on and Kraft GDA account) carry a service fee paid by the traveler: 0.45 % until 30 June 2027, then 0.9 %.<\/p><\/dd>\n<dt id=\"do%20i%20need%20an%20account%3F\"><h3>Do I need an account?<\/h3><\/dt>\n<dd><p>No. A free Kraft GDA account is needed only for the hosted services of the Connect add-on (online payments, management dashboard, etc.).<\/p><\/dd>\n<dt id=\"how%20do%20guests%20pay%20without%20the%20add-on%3F\"><h3>How do guests pay without the add-on?<\/h3><\/dt>\n<dd><p>Guests send a booking request, or you create the booking yourself. You confirm it and collect the payment offline, for example by bank transfer or on arrival.<\/p><\/dd>\n<dt id=\"which%20languages%20are%20available%3F\"><h3>Which languages are available?<\/h3><\/dt>\n<dd><p>Five: English, French, Spanish, Italian and German, bundled with the plugin. The site language sets the language of visitor-facing texts, guest e-mails are sent in the language of the booking, and in the admin, each user sees the plugin in the language of their own profile. Visitor-facing texts can also be renamed in Texts and labels.<\/p><\/dd>\n<dt id=\"can%20i%20manage%20several%20rentals%20or%20rooms%3F\"><h3>Can I manage several rentals or rooms?<\/h3><\/dt>\n<dd><p>Yes. Create as many accommodations as you need, each with its own units, rates, calendar and iCal links.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>0.2.2 (beta)<\/h4>\n\n<ul>\n<li>Fix: Divi 5 presets now apply to the Availability calendar, Coupon and Reviews modules (their default design values no longer override the preset).<\/li>\n<li>Fix: on block themes (for example Twenty Twenty-Five), accommodation pages use the theme's own template instead of the legacy WordPress header and footer.<\/li>\n<li>Guest portal: the accent color follows the module setting, or the theme's accent color, instead of a fixed indigo.<\/li>\n<li>Readme: new screenshots, clearer description of Airbnb calendar sync, direct booking and guest house \/ B&amp;B use.<\/li>\n<\/ul>\n\n<h4>0.2.1 (beta)<\/h4>\n\n<ul>\n<li>Fix: the Kraft Booking blocks did not appear in the block editor. All blocks can be inserted again (search, results, booking form, availability calendar, guest portal).<\/li>\n<li>Fix: guests now see a translated booking status (for example \"Request awaiting approval\") instead of an internal code, in the guest portal, on the confirmation page and in e-mails.<\/li>\n<li>Readme: the plugin is available in 5 languages (English, French, Spanish, Italian, German).<\/li>\n<\/ul>\n\n<h4>0.2.0 (beta)<\/h4>\n\n<ul>\n<li>Translations: English source strings; French, Spanish, Italian and German included; admin follows each user's language.<\/li>\n<li>Regional variants (for example fr_BE, fr_CA, es_MX, de_AT, de_CH, it_CH) use the bundled French, Spanish, German or Italian translation. Translations from translate.wordpress.org take priority when available.<\/li>\n<li>Guest e-mails are sent in the language of the booking.<\/li>\n<\/ul>\n\n<h4>0.1.2 (beta)<\/h4>\n\n<ul>\n<li>New: \"Getting started\" screen, opened once after the first activation (never on bulk or network activation).<\/li>\n<li>New: one dismissible notice, only on the plugin's screens. No request to Kraft GDA before you click Connect.<\/li>\n<\/ul>\n\n<h4>0.1.1 (beta)<\/h4>\n\n<ul>\n<li>Fix: an automatic balance charge could be attempted after the balance was settled offline or partly paid.<\/li>\n<\/ul>\n\n<h4>0.1.0 (beta)<\/h4>\n\n<ul>\n<li>Initial public beta.<\/li>\n<\/ul>","raw_excerpt":"Free direct booking calendar for vacation rentals, guest houses and B&amp;Bs: Airbnb calendar sync (iCal), seasonal rates, tourist tax. Divi 5 ready.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/kal.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/386683","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/kal.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/kal.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/kal.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=386683"}],"author":[{"embeddable":true,"href":"https:\/\/kal.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/globaldigitalagency"}],"wp:attachment":[{"href":"https:\/\/kal.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=386683"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/kal.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=386683"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/kal.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=386683"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/kal.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=386683"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/kal.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=386683"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/kal.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=386683"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}