{"id":371366,"date":"2026-09-30T15:54:19","date_gmt":"2026-09-30T15:54:19","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/rooms-direct-free\/"},"modified":"2026-09-30T15:53:50","modified_gmt":"2026-09-30T15:53:50","slug":"mansio-direct-booking-calendar","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/mansio-direct-booking-calendar\/","author":23568555,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.0.4","stable_tag":"1.0.4","tested":"7.1.2","requires":"6.0","requires_php":"7.4","requires_plugins":null,"header_name":"Mansio","header_author":"salmoni","header_description":"Direct booking system for vacation rentals. Unlimited property calendars with iCal sync from Airbnb and Booking.com, email and Telegram notifications, guest area, bank transfer and cash payments.","assets_banners_color":"7d8376","last_updated":"2026-09-30 15:53:50","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/wpmansio.com","header_author_uri":"https:\/\/salmoni.me","rating":0,"author_block_rating":0,"active_installs":0,"downloads":71,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0.4":{"tag":"1.0.4","author":"salmoni","date":"2026-09-30 15:53:50","revision":3721623}},"upgrade_notice":{"1.0.0":"<p>First release.<\/p>"},"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3721623,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3721623,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256},"icon.svg":{"filename":"icon.svg","revision":3721623,"resolution":false,"location":"assets","locale":false}},"assets_banners":{"banner-1544x500.jpg":{"filename":"banner-1544x500.jpg","revision":3722952,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.jpg":{"filename":"banner-772x250.jpg","revision":3722952,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":{"mansio\/condo-section":{"$schema":"https:\/\/schemas.wp.org\/trunk\/block.json","apiVersion":3,"name":"mansio\/condo-section","version":"1.0.0","title":"Mansio \u2014 Optional Section","category":"mansio","icon":"visibility","description":"Wraps any content (e.g. \"What the condo offers\" and its photo grid) and lets you show or hide it with one switch.","keywords":["rooms","condo","section","show","hide","toggle"],"textdomain":"mansio-direct-booking-calendar","supports":{"html":false,"align":false},"attributes":{"showSection":{"type":"boolean","default":true}},"editorScript":"file:.\/editor.js"},"mansio\/user-area":{"$schema":"https:\/\/schemas.wp.org\/trunk\/block.json","apiVersion":3,"name":"mansio\/user-area","version":"1.0.0","title":"Mansio \u2014 User Area","category":"mansio","icon":"admin-users","description":"Guest account area: sign in, booking history and stay status.","keywords":["rooms","user","area","guest","booking","account"],"textdomain":"mansio-direct-booking-calendar","usesContext":[],"supports":{"html":false,"align":["wide","full"],"spacing":{"margin":true,"padding":true},"color":{"background":true,"text":true},"typography":{"fontSize":true,"lineHeight":true}},"attributes":{"title":{"type":"string","default":"My Account"},"showWelcome":{"type":"boolean","default":true},"loginRedirectUrl":{"type":"string","default":""},"accentColor":{"type":"string","default":""}},"editorScript":"file:.\/editor.js","style":"file:..\/..\/assets\/user-area.css"},"mansio\/booking-system":{"$schema":"https:\/\/schemas.wp.org\/trunk\/block.json","apiVersion":3,"name":"mansio\/booking-system","version":"1.0.0","title":"Mansio Calendar","category":"widgets","icon":"calendar-alt","description":"Direct booking calendar with iCal sync, payments and a public holiday overlay.","keywords":["booking","calendar","reservation","vacation rental","airbnb"],"textdomain":"mansio-direct-booking-calendar","editorScript":"file:.\/assets\/editor.js","editorStyle":["file:.\/assets\/editor.css","file:.\/assets\/calendar.css"],"supports":{"align":["wide","full"],"anchor":true,"color":{"background":false,"text":false,"link":false,"gradients":false},"spacing":{"margin":true,"padding":true,"blockGap":true},"typography":{"fontSize":false,"lineHeight":false,"fontFamily":false,"fontWeight":false},"dimensions":{"minHeight":true},"__experimentalBorder":{"color":true,"radius":true,"style":true,"width":true},"html":false,"customClassName":true},"attributes":{"calendarName":{"type":"string","default":""},"country":{"type":"string","default":"thailand"},"showDescriptions":{"type":"boolean","default":true},"showLocalHolidays":{"type":"boolean","default":true},"align":{"type":"string","default":""},"style":{"type":"object","default":{}},"airbnbIcal":{"type":"string","default":""},"bookingIcal":{"type":"string","default":""},"pricePerNight":{"type":"number","default":30},"currency":{"type":"string","default":"EUR"},"cleaningFee":{"type":"number","default":20},"pricingRules":{"type":"array","default":[],"items":{"type":"object"}},"extraGuestPrice":{"type":"number","default":5},"maxGuests":{"type":"number","default":4},"petFee":{"type":"number","default":20},"transferPickupFee":{"type":"number","default":20},"transferDropoffFee":{"type":"number","default":20},"transferWindowStart":{"type":"string","default":"08:00"},"transferWindowEnd":{"type":"string","default":"20:00"},"minNights":{"type":"number","default":1},"bookingHorizonMonths":{"type":"number","default":12},"holidaySurcharge":{"type":"number","default":0},"cancellationSurchargePct":{"type":"number","default":20},"checkoutUrl":{"type":"string","default":""},"wireIban":{"type":"string","default":""},"wireBic":{"type":"string","default":""},"wireBeneficiary":{"type":"string","default":""},"wireBank":{"type":"string","default":""},"cashNotes":{"type":"string","default":""},"thankYouMessage":{"type":"string","default":"Thank you for your booking! We'll contact you shortly to confirm your stay."},"thankYouBgImage":{"type":"string","default":""},"thankYouBgImageId":{"type":"number","default":0},"thankYouCtaLabel":{"type":"string","default":""},"thankYouCtaUrl":{"type":"string","default":""},"blockedRanges":{"type":"array","default":[],"items":{"type":"object"}},"accentColor":{"type":"string","default":""},"surfaceColor":{"type":"string","default":""},"panelOutline":{"type":"string","default":"shadow"},"panelBg":{"type":"string","default":""},"textColor":{"type":"string","default":""},"textMutedColor":{"type":"string","default":""},"fontSize":{"type":"number","default":0},"fontFamily":{"type":"string","default":""},"fieldBg":{"type":"string","default":""},"btnHoverBg":{"type":"string","default":""}}}},"tagged_versions":["1.0.4"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3721623,"resolution":"1","location":"assets","locale":"","width":693,"height":1147},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3721623,"resolution":"2","location":"assets","locale":"","width":1440,"height":751},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3721623,"resolution":"3","location":"assets","locale":"","width":1440,"height":900}},"screenshots":{"1":"Booking calendar on the frontend","2":"Booking management dashboard in wp-admin","3":"iCal sync configuration in the block editor"}},"plugin_section":[],"plugin_tags":[56407,269,416,7103,6467],"plugin_category":[40],"plugin_contributors":[283726],"plugin_business_model":[],"class_list":["post-371366","plugin","type-plugin","status-publish","hentry","plugin_tags-airbnb","plugin_tags-booking","plugin_tags-calendar","plugin_tags-ical","plugin_tags-vacation-rental","plugin_category-calendar-and-events","plugin_contributors-salmoni","plugin_committers-salmoni"],"banners":{"banner":"https:\/\/ps.w.org\/mansio-direct-booking-calendar\/assets\/banner-772x250.jpg?rev=3722952","banner_2x":"https:\/\/ps.w.org\/mansio-direct-booking-calendar\/assets\/banner-1544x500.jpg?rev=3722952","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":"https:\/\/ps.w.org\/mansio-direct-booking-calendar\/assets\/icon.svg?rev=3721623","icon":"https:\/\/ps.w.org\/mansio-direct-booking-calendar\/assets\/icon.svg?rev=3721623","icon_2x":false,"generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/mansio-direct-booking-calendar\/assets\/screenshot-1.png?rev=3721623","caption":"Booking calendar on the frontend"},{"src":"https:\/\/ps.w.org\/mansio-direct-booking-calendar\/assets\/screenshot-2.png?rev=3721623","caption":"Booking management dashboard in wp-admin"},{"src":"https:\/\/ps.w.org\/mansio-direct-booking-calendar\/assets\/screenshot-3.png?rev=3721623","caption":"iCal sync configuration in the block editor"}],"raw_content":"<!--section=description-->\n<p>Most WordPress booking plugins are either generic appointment schedulers or full hotel front-desk systems. <strong>Mansio<\/strong> is neither \u2014 it is built for one specific use case: vacation rentals and holiday homes that already list on Airbnb and Booking.com. It is not meant for salons, clinics, restaurants, event venues, or full-service hotels with front-desk\/PMS needs. For that one use case, it keeps a calendar on your own site in sync with Airbnb and Booking.com via iCal (so you never get double-booked), and lets guests reserve directly with you \u2014 no monthly SaaS fee, no per-booking commission, no migrating away from the channels you already use.<\/p>\n\n<h4>Features (Free)<\/h4>\n\n<ul>\n<li><strong>Unlimited properties<\/strong> \u2014 add one booking calendar block per room or apartment; each has its own name, prices, bookings and iCal sync<\/li>\n<li><strong>Gutenberg block<\/strong> \u2014 drag and drop the booking calendar anywhere on your site<\/li>\n<li><strong>Direct reservations<\/strong> \u2014 guests book directly from your website<\/li>\n<li><strong>iCal sync<\/strong> \u2014 automatic import from Airbnb and Booking.com (every 20 minutes)<\/li>\n<li><strong>Email notifications<\/strong> \u2014 instant alerts for new bookings, confirmations and cancellations<\/li>\n<li><strong>Payment methods<\/strong> \u2014 bank transfer and cash on arrival<\/li>\n<li><strong>Booking dashboard<\/strong> \u2014 manage all reservations from wp-admin<\/li>\n<li><strong>Holiday calendar<\/strong> \u2014 automatic public holidays via the Calendarific API, with a built-in fallback list when no API key is configured<\/li>\n<li><strong>Guest area<\/strong> \u2014 guests sign in with the standard WordPress login (so login-limit and two-factor plugins keep working), see the bookings made with their account, download a PDF receipt, upload their ID and edit their profile. Guests who book without an account get a private, signed link to their booking and receipt, on the confirmation screen and in their email. New accounts use the standard WordPress registration, when \"Anyone can register\" is enabled<\/li>\n<li><strong>ID\/passport upload<\/strong> \u2014 guests can securely upload a photo or scan of their ID for check-in, straight from their guest area (files get a random, unguessable name in a private uploads folder and are only shown to the guest and site admins)<\/li>\n<li><strong>CSV export<\/strong> \u2014 export your bookings and registered guests list from the dashboard<\/li>\n<li><strong>Custom icons<\/strong> \u2014 replace any calendar\/payment\/guest-area emoji with your own SVG, image or emoji from Mansio \u2192 Icons<\/li>\n<li><strong>Theme-agnostic CSS<\/strong> \u2014 works with any WordPress theme (TT5, Neve, Astra, Kadence, GeneratePress, etc.)<\/li>\n<li><strong>Block Styles support<\/strong> \u2014 customize the calendar's fonts and colors (every element) from the block's native Styles tab<\/li>\n<li><strong>iCal export<\/strong> \u2014 export your calendar back to Airbnb and Booking.com<\/li>\n<\/ul>\n\n<h4>Mansio Pro<\/h4>\n\n<p>Mansio Pro is a separate plugin, available at <a href=\"https:\/\/wpmansio.com\">wpmansio.com<\/a>. Everything listed above is included in this free plugin with no limits; Pro adds features that are not part of this plugin's code:<\/p>\n\n<ul>\n<li><strong>Online payments<\/strong> \u2014 credit card, USDT crypto (NOWPayments), ABA Scan<\/li>\n<li><strong>Coupon &amp; discount system<\/strong> \u2014 percentage or fixed discounts<\/li>\n<li><strong>Multi-property search<\/strong> \u2014 availability search bar and results blocks<\/li>\n<li><strong>More calendar sync<\/strong> \u2014 Vrbo (formerly HomeAway) and any other platform that offers an iCal link<\/li>\n<li><strong>Extra blocks<\/strong> \u2014 FAQ, Google Maps, popup, announcement bar<\/li>\n<li><strong>Priority support<\/strong><\/li>\n<\/ul>\n\n<h3>External services<\/h3>\n\n<p>Mansio connects to the following external services. Each is used only for the specific purpose below, and only when the corresponding feature is actively used.<\/p>\n\n<ul>\n<li><strong>Calendarific API<\/strong> (<a href=\"https:\/\/calendarific.com\">calendarific.com<\/a>) \u2014 used to fetch public holiday data for the calendar you display, so you don't have to enter national holidays by hand. Only contacted if you enter a Calendarific API key under Mansio \u2192 Calendar; the request sends the selected country and year, no personal data. If no API key is configured, the plugin uses a small built-in list of common holidays instead and never contacts Calendarific. <a href=\"https:\/\/calendarific.com\/terms\">Calendarific Terms of Use<\/a> \u00b7 <a href=\"https:\/\/calendarific.com\/privacy\">Privacy Policy<\/a>.<\/li>\n<li><strong>ipapi.co<\/strong>, with <strong>ipwho.is<\/strong> as a fallback if it fails (<a href=\"https:\/\/ipapi.co\">ipapi.co<\/a>, <a href=\"https:\/\/ipwho.is\">ipwho.is<\/a>) \u2014 used only when a visitor clicks a \"Detect my country\" button, in the guest registration\/profile form and in the booking calendar's own contact form. This sends the visitor's IP address to look up their country, so it can be pre-selected in the country field; nothing else is sent, and nothing happens unless the visitor clicks that button. <a href=\"https:\/\/ipapi.co\/terms\/\">ipapi.co Terms<\/a> \u00b7 <a href=\"https:\/\/ipapi.co\/privacy\/\">ipapi.co Privacy Policy<\/a>.<\/li>\n<li><strong>Telegram Bot API<\/strong> (<a href=\"https:\/\/telegram.org\">api.telegram.org<\/a>) \u2014 used to send the site owner a notification message for a new booking (direct or imported from Airbnb\/Booking.com), a new guest registration, and check-in\/check-out reminders, but only if the site owner has configured a Telegram bot token and chat ID. No guest data beyond what's shown in the notification (guest name, room, dates) is sent. <a href=\"https:\/\/telegram.org\/tos\">Telegram Terms of Service<\/a> \u00b7 <a href=\"https:\/\/telegram.org\/privacy\">Telegram Privacy Policy<\/a>.<\/li>\n<li><strong>ipwho.is<\/strong> fallback \u2014 see the ipapi.co entry above; it is only used if ipapi.co fails. <a href=\"https:\/\/ipwho.is\">ipwho.is Terms and Privacy<\/a>.<\/li>\n<li><strong>Airbnb \/ Booking.com iCal feeds<\/strong> \u2014 the iCal URLs you paste into the block sidebar (for example <code>https:\/\/www.airbnb.com\/calendar\/ical\/...<\/code> or <code>https:\/\/ical.booking.com\/v1\/export?t=...<\/code>) are fetched periodically by the plugin (via WP-Cron) to read booking dates. Only the request itself is made \u2014 no site or guest data is sent. This is core functionality of the plugin. <a href=\"https:\/\/www.airbnb.com\/help\/article\/2908\">Airbnb Terms of Service<\/a> \u00b7 <a href=\"https:\/\/www.airbnb.com\/help\/article\/3175\">Airbnb Privacy Policy<\/a> \u00b7 <a href=\"https:\/\/www.booking.com\/content\/terms.html\">Booking.com Terms<\/a> \u00b7 <a href=\"https:\/\/www.booking.com\/content\/privacy.html\">Booking.com Privacy<\/a>.<\/li>\n<li><strong>flag-icons<\/strong> (<a href=\"https:\/\/github.com\/lipis\/flag-icons\">github.com\/lipis\/flag-icons<\/a>) \u2014 country flag images used in the guest area are bundled with the plugin (MIT license, included under <code>assets\/flags\/LICENSE.txt<\/code>) and served from your own site \u2014 no external request is made for flags.<\/li>\n<li><strong>Google Maps<\/strong> (<a href=\"https:\/\/www.google.com\/maps\">google.com\/maps<\/a>) \u2014 the \"Apartment page\" starter pattern includes an embedded Google Maps iframe showing the property's location, which you replace with your own address when you insert the pattern. The map is only present if you insert this pattern and loads directly from Google's servers in the visitor's browser (the plugin does not proxy or store this data); this is standard for any embedded map. <a href=\"https:\/\/policies.google.com\/privacy\">Google Maps\/Google Privacy Policy<\/a> \u00b7 <a href=\"https:\/\/policies.google.com\/terms\">Google Terms of Service<\/a>.<\/li>\n<\/ul>\n\n<!--section=installation-->\n<ol>\n<li>Upload the <code>mansio-direct-booking-calendar<\/code> folder to <code>\/wp-content\/plugins\/<\/code><\/li>\n<li>Activate the plugin through the <strong>Plugins<\/strong> menu in WordPress<\/li>\n<li>In the block editor, add the <strong>Mansio Calendar<\/strong> block to any page<\/li>\n<li>Configure your iCal URLs from Airbnb and Booking.com in the block sidebar<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"does%20this%20plugin%20require%20woocommerce%3F\"><h3>Does this plugin require WooCommerce?<\/h3><\/dt>\n<dd><p>No. Mansio is completely standalone and does not depend on WooCommerce.<\/p><\/dd>\n<dt id=\"which%20themes%20are%20supported%3F\"><h3>Which themes are supported?<\/h3><\/dt>\n<dd><p>Any WordPress theme. Mansio uses its own CSS custom properties and does not depend on theme variables.<\/p><\/dd>\n<dt id=\"how%20does%20ical%20sync%20work%3F\"><h3>How does iCal sync work?<\/h3><\/dt>\n<dd><p>The plugin automatically fetches your Airbnb and Booking.com iCal feeds every 20 minutes via WP-Cron and imports new bookings into the database. Dates are blocked on your calendar in real time.<\/p><\/dd>\n<dt id=\"can%20i%20export%20my%20calendar%20to%20airbnb%20and%20booking.com%3F\"><h3>Can I export my calendar to Airbnb and Booking.com?<\/h3><\/dt>\n<dd><p>Yes. Each calendar generates a unique iCal export URL that you can paste into Airbnb and Booking.com's calendar sync settings.<\/p><\/dd>\n<dt id=\"how%20many%20properties%20can%20i%20manage%3F\"><h3>How many properties can I manage?<\/h3><\/dt>\n<dd><p>As many as you like. Add a booking calendar block for each room or apartment and give each one its own calendar name \u2014 every calendar has its own prices, bookings, iCal import\/export and dashboard entry.<\/p><\/dd>\n<dt id=\"where%20are%20uploaded%20id%2Fpassport%20documents%20stored%2C%20and%20who%20can%20see%20them%3F\"><h3>Where are uploaded ID\/passport documents stored, and who can see them?<\/h3><\/dt>\n<dd><p>Uploaded documents are stored in <code>wp-content\/uploads\/mansio-private-docs\/<\/code> under a random 32-character file name, and the folder cannot be listed. The plugin only ever shows a document through a permission-checked link, to the guest who uploaded it and to site administrators. On Apache servers the folder is also blocked from direct web access by an <code>.htaccess<\/code> rule; on nginx servers, which ignore <code>.htaccess<\/code>, add this rule to your site configuration to get the same protection: <code>location ^~ \/wp-content\/uploads\/mansio-private-docs\/ { deny all; }<\/code>. Documents are not sent to any third party, and the file is deleted from the server automatically when the related booking is deleted.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.0.4<\/h4>\n\n<ul>\n<li>Guest area: sign-in and registration now use the standard WordPress login and registration forms<\/li>\n<li>Guests who book without an account see their booking and receipt through a private signed link (confirmation screen and email)<\/li>\n<li>Bookings are linked to a guest account only when made while signed in, never by email address<\/li>\n<li>Script handles, admin page slugs and JavaScript objects use the \"mansio\" prefix<\/li>\n<li>Text domain changed to mansio-direct-booking-calendar<\/li>\n<\/ul>\n\n<h4>1.0.3<\/h4>\n\n<ul>\n<li>Unlimited properties: each booking calendar block has its own name, prices, bookings and iCal import\/export<\/li>\n<li>Guest area: profile editing and account deletion enabled<\/li>\n<li>Server-side check against double bookings on the same calendar<\/li>\n<li>Month navigation now reads prices and iCal feeds from the block on the server, never from the browser<\/li>\n<li>Full database schema created on activation; admin scripts and styles moved to enqueued files<\/li>\n<li>Receipt download fixed for logged-in guests<\/li>\n<li>Settings, tables and guest fields now use the \"mansio_\" prefix; existing data is migrated automatically on update<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial release of the free version<\/li>\n<\/ul>","raw_excerpt":"Direct booking system for vacation rentals. iCal sync from Airbnb and Booking.com, email notifications, Gutenberg block editor support.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/371366","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=371366"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/salmoni"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=371366"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=371366"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=371366"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=371366"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=371366"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=371366"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}