{"id":249691,"date":"2025-08-29T09:35:56","date_gmt":"2025-08-29T09:35:56","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/fair-timetable\/"},"modified":"2025-12-01T23:30:13","modified_gmt":"2025-12-01T23:30:13","slug":"fair-timetable","status":"publish","type":"plugin","link":"https:\/\/szl.wordpress.org\/plugins\/fair-timetable\/","author":23290876,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_crdt_document":"","version":"0.6.1","stable_tag":"0.6.1","tested":"6.9.4","requires":"6.7","requires_php":"7.4","requires_plugins":null,"header_name":"Fair Timetable","header_author":"Marcin Wosinek","header_description":"Timetable management plugin for events, with fair pricing model.","assets_banners_color":"","last_updated":"2025-12-01 23:30:13","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/github.com\/marcin-wosinek\/fair-event-plugins","header_author_uri":"https:\/\/github.com\/marcin-wosinek","rating":0,"author_block_rating":0,"active_installs":0,"downloads":439,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq"],"tags":{"0.2.0":{"tag":"0.2.0","author":"marcinwosinek","date":"2025-08-29 09:35:41"},"0.3.0":{"tag":"0.3.0","author":"marcinwosinek","date":"2025-08-30 09:04:57"},"0.4.0":{"tag":"0.4.0","author":"marcinwosinek","date":"2025-09-01 09:05:39"},"0.5.0":{"tag":"0.5.0","author":"marcinwosinek","date":"2025-09-19 14:51:03"},"0.6.0":{"tag":"0.6.0","author":"marcinwosinek","date":"2025-09-22 06:57:35"},"0.6.1":{"tag":"0.6.1","author":"marcinwosinek","date":"2025-12-01 23:30:13"}},"upgrade_notice":[],"ratings":[],"assets_icons":[],"assets_banners":[],"assets_blueprints":{},"all_blocks":{"fair-timetable\/timetable":{"$schema":"https:\/\/schemas.wp.org\/trunk\/block.json","apiVersion":3,"name":"fair-timetable\/timetable","version":"0.1.0","title":"Timetable","category":"widgets","icon":"calendar-alt","description":"A timetable block for displaying scheduled events","example":{},"supports":{"html":false,"anchor":true,"align":true},"attributes":{"startTime":{"type":"string","default":"09:00"},"endTime":{"type":"string","default":"17:00"},"hourHeight":{"type":"number","default":4}},"providesContext":{"fair-timetable\/startTime":"startTime","fair-timetable\/endTime":"endTime","fair-timetable\/hourHeight":"hourHeight"},"textdomain":"fair-timetable","editorScript":"file:.\/editor.js","viewScript":"file:.\/view.js","editorStyle":"file:.\/editor.css","style":"file:.\/view.css","render":"file:.\/render.php"},"fair-timetable\/time-column-body":{"$schema":"https:\/\/schemas.wp.org\/trunk\/block.json","apiVersion":3,"name":"fair-timetable\/time-column-body","version":"0.1.0","title":"Time Column Body","category":"widgets","icon":"columns","description":"A time column body container for organizing time slots","parent":["fair-timetable\/time-column"],"example":{},"supports":{"html":false,"anchor":true},"usesContext":["fair-timetable\/startTime","fair-timetable\/endTime","fair-timetable\/hourHeight"],"textdomain":"fair-timetable","editorScript":"file:.\/editor.js","editorStyle":"file:.\/editor.css","viewScript":"file:.\/view.js","style":"file:.\/view.css","render":"file:.\/render.php"},"fair-timetable\/time-column":{"$schema":"https:\/\/schemas.wp.org\/trunk\/block.json","apiVersion":3,"name":"fair-timetable\/time-column","version":"0.1.0","title":"Time Column","category":"widgets","icon":"table-col-before","description":"A time column with header and body for organizing timetable content","parent":["fair-timetable\/timetable"],"example":{},"supports":{"html":false,"anchor":true},"usesContext":["fair-timetable\/startTime","fair-timetable\/endTime","fair-timetable\/hourHeight"],"textdomain":"fair-timetable","editorScript":"file:.\/editor.js","editorStyle":"file:.\/editor.css","viewScript":"file:.\/view.js","style":"file:.\/view.css","render":"file:.\/render.php"},"fair-timetable\/time-slot":{"$schema":"https:\/\/schemas.wp.org\/trunk\/block.json","apiVersion":3,"name":"fair-timetable\/time-slot","version":"0.1.0","title":"Time Slot","category":"widgets","icon":"clock","description":"A time slot block for timetable events","parent":["fair-timetable\/time-column-body"],"example":{},"supports":{"html":false,"anchor":true,"color":{"background":true,"text":true}},"attributes":{"startTime":{"type":"string","default":"09:00"},"endTime":{"type":"string","default":"10:00"}},"usesContext":["fair-timetable\/startTime","fair-timetable\/endTime","fair-timetable\/hourHeight"],"textdomain":"fair-timetable","editorScript":"file:.\/editor.js","viewScript":"file:.\/view.js","editorStyle":"file:.\/editor.css","style":"file:.\/view.css","render":"file:.\/render.php"}},"tagged_versions":["0.2.0","0.3.0","0.4.0","0.5.0","0.6.0","0.6.1"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3364400,"resolution":"1","location":"assets","locale":""},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3364400,"resolution":"2","location":"assets","locale":""}},"screenshots":{"1":"Timetable container block with multiple columns in the editor","2":"Frontend display of multi-column timetable"},"jetpack_post_was_ever_published":false},"plugin_section":[],"plugin_tags":[416,1486,148076,4062,1612],"plugin_category":[40],"plugin_contributors":[246733],"plugin_business_model":[],"class_list":["post-249691","plugin","type-plugin","status-publish","hentry","plugin_tags-calendar","plugin_tags-events","plugin_tags-gutenberg","plugin_tags-schedule","plugin_tags-timetable","plugin_category-calendar-and-events","plugin_contributors-marcinwosinek","plugin_committers-marcinwosinek"],"banners":[],"icons":{"svg":false,"icon":"https:\/\/s.w.org\/plugins\/geopattern-icon\/fair-timetable.svg","icon_2x":false,"generated":true},"screenshots":[{"src":"https:\/\/ps.w.org\/fair-timetable\/assets\/screenshot-1.png?rev=3364400","caption":"Timetable container block with multiple columns in the editor"},{"src":"https:\/\/ps.w.org\/fair-timetable\/assets\/screenshot-2.png?rev=3364400","caption":"Frontend display of multi-column timetable"}],"raw_content":"<!--section=description-->\n<p>A comprehensive Gutenberg block system for creating beautiful, responsive event timetables. Build structured schedules with multiple columns and time slots, perfect for conferences, workshops, festivals, and any multi-track events.<\/p>\n\n<p><strong>Key Features:<\/strong><\/p>\n\n<ul>\n<li><strong>Flexible Container System:<\/strong> Timetable container block organizes multiple columns horizontally<\/li>\n<li><strong>Smart Context Inheritance:<\/strong> Time settings defined once in the timetable, inherited by all columns<\/li>\n<li><strong>Responsive Time Display:<\/strong> Time ranges automatically hide on narrow screens for optimal mobile experience<\/li>\n<li><strong>Precise Time Slots:<\/strong> Individual time slots with calculated positioning based on start times<\/li>\n<li><strong>Visual Time Scale:<\/strong> Configurable hour height for optimal visual presentation<\/li>\n<li><strong>Server-side Rendering:<\/strong> SEO-friendly with proper WordPress block architecture<\/li>\n<li><strong>Clean Block Editor UX:<\/strong> Intuitive editing with read-only settings display and parent navigation<\/li>\n<li><strong>Fair Pricing Model:<\/strong> No premium tiers or hidden features - everything is included<\/li>\n<\/ul>\n\n<p><strong>Block Structure:<\/strong><\/p>\n\n<ul>\n<li>\ud83d\udcc5 <strong>Timetable Container<\/strong> - Organizes columns horizontally, defines global time settings<\/li>\n<li>\ud83d\udcca <strong>Timetable Column<\/strong> - Individual schedule tracks (e.g., Room A, Stage 1, Workshop Track)<\/li>\n<li>\u23f0 <strong>Time Slot<\/strong> - Individual events with precise time positioning and responsive display<\/li>\n<\/ul>\n\n<p><strong>Perfect For:<\/strong><\/p>\n\n<ul>\n<li>Conference organizers managing multiple tracks<\/li>\n<li>Event venues with parallel sessions<\/li>\n<li>Workshop coordinators with concurrent activities<\/li>\n<li>Festival organizers with multiple stages<\/li>\n<li>Educational institutions with class schedules<\/li>\n<li>Any organization needing visual time-based layouts<\/li>\n<\/ul>\n\n<p>The plugin uses advanced CSS container queries for responsive design and WordPress's block context system for seamless data inheritance between parent and child blocks.<\/p>\n\n<h3>0.6.1<\/h3>\n\n<h3>Patch Changes<\/h3>\n\n<ul>\n<li>7e7ea9c: Update version tested up to version to 6.9.<\/li>\n<\/ul>\n\n<h3>0.6.0<\/h3>\n\n<h3>Minor Changes<\/h3>\n\n<ul>\n<li>769be6b: Add automated hour as adding new time-slots<\/li>\n<\/ul>\n\n<h3>0.5.0<\/h3>\n\n<h3>Minor Changes<\/h3>\n\n<ul>\n<li>45729b3: Improve edition UX<\/li>\n<li>29d5b69: Rename the block attributes (Hour-&gt;Time)<\/li>\n<\/ul>\n\n<h3>0.4.0<\/h3>\n\n<h3>Minor Changes<\/h3>\n\n<ul>\n<li>094cb00: Improve the block styling<\/li>\n<\/ul>\n\n<h3>0.3.0<\/h3>\n\n<h3>Minor Changes<\/h3>\n\n<ul>\n<li>905f4e4: Refactor timetable blocks<\/li>\n<\/ul>\n\n<h3>Patch Changes<\/h3>\n\n<ul>\n<li>84fe629: Set correctly supported version<\/li>\n<\/ul>\n\n<h3>0.2.0<\/h3>\n\n<p>Minor fixes<\/p>\n\n<h3>0.1.0<\/h3>\n\n<p>Initial version of the plugin.<\/p>\n\n<h3>Developer Notes<\/h3>\n\n<p>The plugin is open source and contributions are welcome on GitHub: https:\/\/github.com\/marcin-wosinek\/fair-event-plugins<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Upload the plugin files to the <code>\/wp-content\/plugins\/fair-timetable<\/code> directory, or install the plugin through the WordPress plugins screen directly.<\/li>\n<li>Activate the plugin through the 'Plugins' screen in WordPress.<\/li>\n<li>In the Gutenberg editor, find the \"Timetable\" block in the design category.<\/li>\n<li>Add the timetable container block to your post or page.<\/li>\n<li>Add timetable columns within the container.<\/li>\n<li>Add time slots within each column and configure your events.<\/li>\n<li>Set global time settings (start time, end time, hour height) in the timetable container.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id='how%20do%20the%20time%20settings%20work%3F'><h3>How do the time settings work?<\/h3><\/dt>\n<dd><p>Time settings are defined once in the timetable container block and automatically inherited by all columns within it. This ensures consistency across your entire schedule.<\/p><\/dd>\n<dt id='can%20i%20have%20different%20time%20ranges%20for%20different%20columns%3F'><h3>Can I have different time ranges for different columns?<\/h3><\/dt>\n<dd><p>When columns are placed inside a timetable container, they inherit the parent's time settings for consistency. For different time ranges, use separate timetable containers or standalone timetable columns.<\/p><\/dd>\n<dt id='can%20i%20customize%20the%20visual%20appearance%3F'><h3>Can I customize the visual appearance?<\/h3><\/dt>\n<dd><p>Yes! The plugin provides three hour height options (Small, Medium, Large) for visual scaling, and all blocks follow WordPress styling standards for theme compatibility.<\/p><\/dd>\n<dt id='will%20this%20work%20with%20my%20theme%3F'><h3>Will this work with my theme?<\/h3><\/dt>\n<dd><p>The plugin is designed to work with any properly coded WordPress theme. It uses WordPress's standard block wrapper and follows WordPress coding standards.<\/p><\/dd>\n<dt id='how%20are%20time%20slots%20positioned%3F'><h3>How are time slots positioned?<\/h3><\/dt>\n<dd><p>Time slots calculate their position automatically based on the timetable's start time and the slot's start time, creating precise visual alignment in your schedule.<\/p><\/dd>\n\n<\/dl>","raw_excerpt":"A Gutenberg block system for creating beautiful, responsive event timetables.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/szl.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/249691","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/szl.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/szl.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/szl.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=249691"}],"author":[{"embeddable":true,"href":"https:\/\/szl.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/marcinwosinek"}],"wp:attachment":[{"href":"https:\/\/szl.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=249691"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/szl.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=249691"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/szl.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=249691"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/szl.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=249691"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/szl.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=249691"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/szl.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=249691"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}