{"id":339329,"date":"2026-07-30T15:40:18","date_gmt":"2026-07-30T15:40:18","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/dashboard-for-availio\/"},"modified":"2026-07-30T15:41:59","modified_gmt":"2026-07-30T15:41:59","slug":"dashboard-for-availio","status":"publish","type":"plugin","link":"https:\/\/haz.wordpress.org\/plugins\/dashboard-for-availio\/","author":23531438,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.1.3","stable_tag":"1.1.3","tested":"7.0.2","requires":"6.0","requires_php":"8.0","requires_plugins":null,"header_name":"Dashboard for Availio","header_author":"GianlucaD","header_description":"Zeigt Platz-Buchungen aus Availio (Fairgate Standard-API \/ FSA) als interaktives Dashboard mit Datepicker. Einbindung via Shortcode [availio_dashboard].","assets_banners_color":"","last_updated":"2026-07-30 15:41:59","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/github.com\/GianlucaD\/wp_availio","header_author_uri":"https:\/\/github.com\/GianlucaD","rating":0,"author_block_rating":0,"active_installs":0,"downloads":65,"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":"gianlucad","date":"2026-07-30 15:39:42"},"1.1.3":{"tag":"1.1.3","author":"gianlucad","date":"2026-07-30 15:41:59"}},"upgrade_notice":{"1.1.3":"<p>Prepared for the WordPress.org directory (English readme, security hardening).<\/p>"},"ratings":[],"assets_icons":[],"assets_banners":[],"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0.0","1.1.3"],"block_files":[],"assets_screenshots":[],"screenshots":{"1":"Occupancy grid with date picker in the frontend.","2":"Settings page with API access and display options."}},"plugin_section":[],"plugin_tags":[273869,269,273870,1475,11932],"plugin_category":[40],"plugin_contributors":[273871],"plugin_business_model":[],"class_list":["post-339329","plugin","type-plugin","status-publish","hentry","plugin_tags-availio","plugin_tags-booking","plugin_tags-fairgate","plugin_tags-reservations","plugin_tags-tennis","plugin_category-calendar-and-events","plugin_contributors-gianlucad","plugin_committers-gianlucad"],"banners":[],"icons":{"svg":false,"icon":"https:\/\/s.w.org\/plugins\/geopattern-icon\/dashboard-for-availio.svg","icon_2x":false,"generated":true},"screenshots":[],"raw_content":"<!--section=description-->\n<p>Dashboard for Availio embeds your club's court occupancy from <strong>Availio<\/strong> (the booking platform by Fairgate) directly into WordPress. The data is fetched server-side through the official <strong>Fairgate Standard API (FSA)<\/strong> and rendered as a clear, TV-friendly occupancy grid of all your courts, including a date picker to browse the coming days.<\/p>\n\n<p>The API token stays exclusively on the server; it is never sent to the browser.<\/p>\n\n<p><strong>Features<\/strong><\/p>\n\n<ul>\n<li>Occupancy grid of all courts for the selected day (free \/ booked \/ in progress)<\/li>\n<li>Date picker with previous\/next navigation<\/li>\n<li>Automatic refresh at a configurable interval<\/li>\n<li>Configurable display range, slot size and time zone<\/li>\n<li>Customizable color scheme (color pickers in the settings)<\/li>\n<li>Optional court filter (show only selected courts)<\/li>\n<li>Embed via the <code>[availio_dashboard]<\/code> shortcode<\/li>\n<li>Token kept server-side, no credentials in the HTML\/JS<\/li>\n<\/ul>\n\n<p>Please note: the Fairgate Standard API returns reservations as anonymous time slots (without player names). The dashboard therefore shows the occupancy, not the names of the people who booked.<\/p>\n\n<p>This plugin is an unofficial, community-developed project and is not affiliated with Fairgate AG. \"Availio\" and \"Fairgate\" are trademarks of their respective owners.<\/p>\n\n<h3>External services<\/h3>\n\n<p>This plugin connects to the Fairgate Standard API (FSA), operated by Fairgate AG, to retrieve and display your club's court occupancy. Without this connection the dashboard cannot show any data.<\/p>\n\n<ul>\n<li>Provider: Fairgate AG (default base URL: https:\/\/fsa.fairgate.ch).<\/li>\n<li>Purpose: retrieving the reservations and the court list for display.<\/li>\n<li>When: server-side on every request to a page containing the shortcode, and on the auto-refresh \/ AJAX requests.<\/li>\n<li>Data transmitted: your configured Organisation ID (OID) and your API token (for authentication), plus the requested time range or date. NO data about your website visitors is transmitted to the service.<\/li>\n<\/ul>\n\n<p>Terms of service: https:\/\/fairgate.ch\/agb-standard\/\nPrivacy policy: https:\/\/fairgate.ch\/datenschutzerklarung\/<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Upload the plugin as a ZIP via <em>Plugins \u2192 Add New \u2192 Upload Plugin<\/em> and activate it (or copy the <code>dashboard-for-availio<\/code> folder to <code>wp-content\/plugins\/<\/code>).<\/li>\n<li>Go to <em>Settings \u2192 Dashboard for Availio<\/em> and enter your credentials:\n\n<ul>\n<li><strong>Organisation ID (OID)<\/strong> of your club<\/li>\n<li><strong>API key (Bearer\/JWT token)<\/strong> from your Availio settings<\/li>\n<\/ul><\/li>\n<li>Optionally adjust the display options (range, slot size, auto-refresh, colors, court filter).<\/li>\n<li>Add the shortcode <code>[availio_dashboard]<\/code> to a page, post or widget.<\/li>\n<\/ol>\n\n<p>You obtain API access (OID and token) through your Availio\/Fairgate contract; the FSA must be enabled for your organisation.<\/p>\n\n<!--section=faq-->\n<dl>\n<dt id=\"where%20do%20i%20get%20the%20oid%20and%20the%20api%20token%3F\"><h3>Where do I get the OID and the API token?<\/h3><\/dt>\n<dd><p>Both come from the Availio\/Fairgate settings of your organisation. The Fairgate Standard API (FSA) must be booked\/enabled for your account.<\/p><\/dd>\n<dt id=\"are%20the%20names%20of%20the%20people%20who%20booked%20shown%3F\"><h3>Are the names of the people who booked shown?<\/h3><\/dt>\n<dd><p>No. The official FSA returns reservations as anonymous time slots. The dashboard therefore only shows when a court is occupied, not by whom.<\/p><\/dd>\n<dt id=\"is%20the%20token%20secure%3F\"><h3>Is the token secure?<\/h3><\/dt>\n<dd><p>Yes. The token is kept server-side and is only used for the API request. The delivered HTML contains only the finished occupancy tiles.<\/p><\/dd>\n<dt id=\"can%20i%20store%20the%20credentials%20outside%20the%20database%3F\"><h3>Can I store the credentials outside the database?<\/h3><\/dt>\n<dd><p>Yes. Define the values as constants in your <code>wp-config.php<\/code> and they will be used instead of the database settings:<\/p>\n\n<pre><code>define('AVAILIO_OID', 'your-oid');\ndefine('AVAILIO_ACCESS_KEY', 'your-token');\ndefine('AVAILIO_BASE_URL', 'https:\/\/fsa.fairgate.ch'); \/\/ optional\n<\/code><\/pre>\n\n<p>When a constant is set, the corresponding field on the settings page is shown as read-only.<\/p><\/dd>\n<dt id=\"can%20i%20show%20only%20certain%20courts%3F\"><h3>Can I show only certain courts?<\/h3><\/dt>\n<dd><p>Yes, via the court filter in the settings (comma-separated court IDs).<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.1.3<\/h4>\n\n<ul>\n<li>WordPress.org preparation: external services disclosure, security hardening, plugin name \"Dashboard for Availio\", English readme.<\/li>\n<\/ul>\n\n<h4>1.1.2<\/h4>\n\n<ul>\n<li>New: the club name is shown as a title above the dashboard (when set).<\/li>\n<\/ul>\n\n<h4>1.1.1<\/h4>\n\n<ul>\n<li>Fix: date picker arrows and tabs now follow the color scheme (theme override prevented).<\/li>\n<\/ul>\n\n<h4>1.1.0<\/h4>\n\n<ul>\n<li>New: customizable color scheme (color pickers in the settings).<\/li>\n<li>New: ready-made color presets (one click).<\/li>\n<li>New: credentials optionally via wp-config.php constants.<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>First public release.<\/li>\n<\/ul>","raw_excerpt":"Show your club&#039;s court bookings from Availio (Fairgate Standard API) as a dashboard with a date picker. Embed via the [availio_dashboard] shortcode.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/haz.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/339329","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/haz.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/haz.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/haz.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=339329"}],"author":[{"embeddable":true,"href":"https:\/\/haz.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/gianlucad"}],"wp:attachment":[{"href":"https:\/\/haz.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=339329"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/haz.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=339329"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/haz.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=339329"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/haz.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=339329"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/haz.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=339329"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/haz.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=339329"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}