{"id":284086,"date":"2026-02-27T01:38:50","date_gmt":"2026-02-27T01:38:50","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/timed-event-block\/"},"modified":"2026-03-14T18:33:54","modified_gmt":"2026-03-14T18:33:54","slug":"timed-event-block","status":"publish","type":"plugin","link":"https:\/\/el.wordpress.org\/plugins\/timed-event-block\/","author":16960075,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_crdt_document":"","version":"0.1.2","stable_tag":"trunk","tested":"6.9.4","requires":"6.5","requires_php":"7.4","requires_plugins":null,"header_name":"Timed Event Block","header_author":"Santiago Betancor","header_description":"Gutenberg block to schedule event content visibility, display contextual date\/time\/countdown child blocks, and build schedule listings.","assets_banners_color":"","last_updated":"2026-03-14 18:33:54","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/wordpress.org\/plugins\/timed-event-block\/","header_author_uri":"https:\/\/santiagodel76.github.io","rating":0,"author_block_rating":0,"active_installs":0,"downloads":308,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"0.1.0":{"tag":"0.1.0","author":"santiagodel76","date":"2026-02-27 02:18:46"},"0.1.1":{"tag":"0.1.1","author":"santiagodel76","date":"2026-03-02 00:55:42"}},"upgrade_notice":{"0.1.2":"<p>Improves Event Countdown text rendering with prefix\/suffix labels, singular\/plural unit labels, hidden exhausted leading units, and no leading zero padding.<\/p>","0.1.1":"<p>This release includes the approved wp.org review adjustments and the initial public release metadata alignment.<\/p>","0.1.0":"<p>Initial release of Timed Event Block.<\/p>"},"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3470795,"resolution":"128x128","location":"assets","locale":""},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3470795,"resolution":"256x256","location":"assets","locale":""}},"assets_banners":[],"assets_blueprints":{},"all_blocks":{"timed-event-block\/event-time":{"$schema":"https:\/\/schemas.wp.org\/trunk\/block.json","apiVersion":3,"name":"timed-event-block\/event-time","title":"Event Time","category":"widgets","icon":"calendar-alt","description":"Displays event time or current event status from parent Timed Event block.","textdomain":"timed-event-block","ancestor":["timed-event-block\/timed-event"],"usesContext":["timed-event-block\/start","timed-event-block\/durationMinutes"],"attributes":{"formatMode":{"type":"string","default":"site"},"customFormat":{"type":"string","default":""},"activeLabel":{"type":"string","default":"Active"},"endedLabel":{"type":"string","default":"Ended"},"activeColor":{"type":"string","default":"#166534"},"endedColor":{"type":"string","default":"#991b1b"}},"supports":{"html":false,"spacing":{"margin":true,"padding":true},"color":{"text":true,"background":true,"gradients":true,"link":true},"typography":{"fontSize":true,"lineHeight":true,"textAlign":true},"border":{"color":true,"radius":true,"style":true,"width":true},"dimensions":{"minHeight":true}},"editorScript":"file:.\/index.js","viewScript":"file:.\/view.js","render":"file:.\/render.php"},"timed-event-block\/timed-event":{"$schema":"https:\/\/schemas.wp.org\/trunk\/block.json","apiVersion":3,"name":"timed-event-block\/timed-event","title":"Timed Event (Container)","category":"widgets","icon":"calendar-alt","description":"Server-side scheduled event item.","textdomain":"timed-event-block","attributes":{"start":{"type":"string"},"durationMinutes":{"type":"number","default":60},"hideWhenEnded":{"type":"boolean","default":true}},"providesContext":{"timed-event-block\/start":"start","timed-event-block\/durationMinutes":"durationMinutes"},"supports":{"html":false,"spacing":{"margin":true,"padding":true,"blockGap":true},"color":{"text":true,"background":true,"gradients":true,"link":true},"border":{"color":true,"radius":true,"style":true,"width":true},"typography":{"fontSize":true,"lineHeight":true,"textAlign":true},"dimensions":{"minHeight":true}},"editorScript":"file:.\/index.js","viewScript":"file:.\/view.js","render":"file:.\/render.php","editorStyle":"file:.\/index.css"},"timed-event-block\/countdown":{"$schema":"https:\/\/schemas.wp.org\/trunk\/block.json","apiVersion":3,"name":"timed-event-block\/countdown","title":"Event Countdown","category":"widgets","icon":"clock","description":"Displays a countdown to event start time from parent Timed Event block.","textdomain":"timed-event-block","ancestor":["timed-event-block\/timed-event"],"usesContext":["timed-event-block\/start","timed-event-block\/durationMinutes"],"attributes":{"targetMode":{"type":"string","default":"to_start"},"showDays":{"type":"boolean","default":true},"separator":{"type":"string","default":":"},"dayLabel":{"type":"string","default":"d"},"dayLabelSingular":{"type":"string","default":""},"hourLabel":{"type":"string","default":"h"},"hourLabelSingular":{"type":"string","default":""},"minuteLabel":{"type":"string","default":"m"},"minuteLabelSingular":{"type":"string","default":""},"secondLabel":{"type":"string","default":"s"},"secondLabelSingular":{"type":"string","default":""},"prefixLabel":{"type":"string","default":""},"suffixLabel":{"type":"string","default":""},"activeLabel":{"type":"string","default":"Active"},"endedLabel":{"type":"string","default":"Ended"},"activeColor":{"type":"string","default":"#166534"},"endedColor":{"type":"string","default":"#991b1b"}},"supports":{"html":false,"spacing":{"margin":true,"padding":true},"color":{"text":true,"background":true,"gradients":true,"link":true},"typography":{"fontSize":true,"lineHeight":true,"textAlign":true},"border":{"color":true,"radius":true,"style":true,"width":true},"dimensions":{"minHeight":true}},"editorScript":"file:.\/index.js","viewScript":"file:.\/view.js","render":"file:.\/render.php"},"timed-event-block\/date":{"$schema":"https:\/\/schemas.wp.org\/trunk\/block.json","apiVersion":3,"name":"timed-event-block\/date","title":"Event Date","category":"widgets","icon":"calendar-alt","description":"Displays event date from parent Timed Event block.","textdomain":"timed-event-block","ancestor":["timed-event-block\/timed-event"],"usesContext":["timed-event-block\/start"],"attributes":{"formatMode":{"type":"string","default":"site"},"customFormat":{"type":"string","default":""}},"supports":{"html":false,"spacing":{"margin":true,"padding":true},"color":{"text":true,"background":true,"gradients":true,"link":true},"typography":{"fontSize":true,"lineHeight":true,"textAlign":true},"border":{"color":true,"radius":true,"style":true,"width":true},"dimensions":{"minHeight":true}},"editorScript":"file:.\/index.js","render":"file:.\/render.php"}},"tagged_versions":["0.1.0","0.1.1"],"block_files":[],"assets_screenshots":{"screenshot-2.png":{"filename":"screenshot-2.png","revision":3482685,"resolution":"2","location":"plugin"},"screenshot-5.png":{"filename":"screenshot-5.png","revision":3482685,"resolution":"5","location":"plugin"},"screenshot-4.png":{"filename":"screenshot-4.png","revision":3482685,"resolution":"4","location":"plugin"},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3482685,"resolution":"3","location":"plugin"},"screenshot-1.png":{"filename":"screenshot-1.png","revision":3482685,"resolution":"1","location":"plugin"}},"screenshots":{"1":"Editor view with the Timed Event block and open start date\/time picker in the block settings.","2":"Frontend cinema schedule showing multiple event cards with active and countdown states.","3":"Site Editor layout with a selected Timed Event item showing Scheduled status and countdown output.","4":"Block sidebar settings for Timed Event, including start date\/time, duration, and Hide when ended.","5":"Frontend event list showing ended-state labels and final status text (\"Screening Finished\")."},"jetpack_post_was_ever_published":false},"plugin_section":[],"plugin_tags":[11659,2431,204746,148076,4062],"plugin_category":[40],"plugin_contributors":[256709],"plugin_business_model":[],"class_list":["post-284086","plugin","type-plugin","status-publish","hentry","plugin_tags-countdown","plugin_tags-event","plugin_tags-fse","plugin_tags-gutenberg","plugin_tags-schedule","plugin_category-calendar-and-events","plugin_contributors-santiagodel76","plugin_committers-santiagodel76"],"banners":[],"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/timed-event-block\/assets\/icon-128x128.png?rev=3470795","icon_2x":"https:\/\/ps.w.org\/timed-event-block\/assets\/icon-256x256.png?rev=3470795","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/timed-event-block\/trunk\/screenshot-1.png?rev=3482685","caption":"Editor view with the Timed Event block and open start date\/time picker in the block settings."},{"src":"https:\/\/ps.w.org\/timed-event-block\/trunk\/screenshot-2.png?rev=3482685","caption":"Frontend cinema schedule showing multiple event cards with active and countdown states."},{"src":"https:\/\/ps.w.org\/timed-event-block\/trunk\/screenshot-3.png?rev=3482685","caption":"Site Editor layout with a selected Timed Event item showing Scheduled status and countdown output."},{"src":"https:\/\/ps.w.org\/timed-event-block\/trunk\/screenshot-4.png?rev=3482685","caption":"Block sidebar settings for Timed Event, including start date\/time, duration, and Hide when ended."},{"src":"https:\/\/ps.w.org\/timed-event-block\/trunk\/screenshot-5.png?rev=3482685","caption":"Frontend event list showing ended-state labels and final status text (\"Screening Finished\")."}],"raw_content":"<!--section=description-->\n<p>Timed Event Block adds a server-rendered parent block for scheduling event content by date\/time, plus dedicated child blocks for dynamic date, time, and countdown output.<\/p>\n\n<p>Ideal for event listings such as movie showtimes, class schedules, workshops, conferences, livestreams, and similar use cases. It requires no global configuration: install the plugin and start using the block directly in FSE workflows.<\/p>\n\n<p>This plugin is designed for full site editing workflows where content creators need:<\/p>\n\n<ul>\n<li>A single event container that can hold any core block (text, media, embeds, columns, groups, etc.).<\/li>\n<li>Automatic status handling based on current server time:<\/li>\n<li>Scheduled<\/li>\n<li>Active<\/li>\n<li>Ended<\/li>\n<li>Optional automatic hiding of ended events (<code>Hide when ended<\/code>).<\/li>\n<li>Child blocks that can be used only inside the Timed Event parent:<\/li>\n<li>Event Date<\/li>\n<li>Event Time<\/li>\n<li>Event Countdown<\/li>\n<li>Dynamic frontend updates for status\/time\/countdown without page refresh.<\/li>\n<li>Native Gutenberg style controls (spacing, color, typography, border, dimensions) on parent and child blocks.<\/li>\n<\/ul>\n\n<p>How it works:<\/p>\n\n<ol>\n<li>Add a <strong>Timed Event<\/strong> block.<\/li>\n<li>Set start date\/time and duration.<\/li>\n<li>Insert any content you want.<\/li>\n<li>Optionally insert child blocks:<\/li>\n<\/ol>\n\n<p>* <strong>Event Date<\/strong> for date display with site\/custom format.\n* <strong>Event Time<\/strong> for scheduled time and active\/ended label transitions.\n* <strong>Event Countdown<\/strong> for countdown to start\/end and status transitions.\n5. Publish. Frontend output is resolved server-side, and dynamic text updates via lightweight view scripts.<\/p>\n\n<h3>Blocks<\/h3>\n\n<h4>Timed Event<\/h4>\n\n<p>Parent container block that controls event lifecycle and visibility.<\/p>\n\n<p>Features:\n* Start date and time.\n* Duration in minutes.\n* Hide when ended toggle.\n* Full inner content flexibility.<\/p>\n\n<h4>Event Date<\/h4>\n\n<p>Child block (ancestor-restricted to Timed Event) that reads parent context and renders formatted date.<\/p>\n\n<p>Features:\n* Site default format or custom format string.\n* Uses WordPress timezone and date settings by default.<\/p>\n\n<h4>Event Time<\/h4>\n\n<p>Child block that reads parent context and renders:\n* Scheduled state: formatted time.\n* Active state: configurable active label.\n* Ended state: configurable ended label.<\/p>\n\n<p>Features:\n* Site\/custom time format.\n* Editable active\/ended labels.\n* Editable active\/ended colors.\n* Dynamic frontend state update.<\/p>\n\n<h4>Event Countdown<\/h4>\n\n<p>Child block that reads parent context and renders:\n* Countdown to start or countdown to end.\n* Active\/ended label after countdown completion.<\/p>\n\n<p>Features:\n* Target mode: <code>to_start<\/code> or <code>to_end<\/code>.\n* Day visibility toggle.\n* Custom separator.\n* Editable active\/ended labels.\n* Editable active\/ended colors.\n* Dynamic frontend state update.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Upload the plugin folder to <code>\/wp-content\/plugins\/<\/code>, or install it as a ZIP from <strong>Plugins &gt; Add New &gt; Upload Plugin<\/strong>.<\/li>\n<li>Activate <strong>Timed Event Block<\/strong> in <strong>Plugins<\/strong>.<\/li>\n<li>Open the Site Editor or Post Editor.<\/li>\n<li>Insert the <strong>Timed Event<\/strong> block.<\/li>\n<li>Configure start date\/time, duration, and visibility behavior.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"can%20i%20use%20event%20date%2C%20event%20time%2C%20or%20event%20countdown%20outside%20timed%20event%3F\"><h3>Can I use Event Date, Event Time, or Event Countdown outside Timed Event?<\/h3><\/dt>\n<dd><p>No. These child blocks are restricted to Timed Event context by design.<\/p><\/dd>\n<dt id=\"can%20i%20place%20media%20and%20embeds%20inside%20timed%20event%3F\"><h3>Can I place media and embeds inside Timed Event?<\/h3><\/dt>\n<dd><p>Yes. The parent block supports flexible inner content and is not limited to a narrow block whitelist.<\/p><\/dd>\n<dt id=\"which%20timezone%20is%20used%20for%20state%20and%20rendering%3F\"><h3>Which timezone is used for state and rendering?<\/h3><\/dt>\n<dd><p>WordPress site timezone (<code>Settings &gt; General<\/code>) is used on server-side rendering.<\/p><\/dd>\n<dt id=\"why%20does%20an%20ended%20event%20disappear%3F\"><h3>Why does an ended event disappear?<\/h3><\/dt>\n<dd><p>If <code>Hide when ended<\/code> is enabled on the parent block, ended events are not rendered on frontend.<\/p><\/dd>\n<dt id=\"does%20status%20update%20without%20refreshing%20the%20page%3F\"><h3>Does status update without refreshing the page?<\/h3><\/dt>\n<dd><p>Yes for dynamic child outputs (Event Time and Event Countdown), via lightweight frontend scripts.<\/p><\/dd>\n<dt id=\"does%20this%20plugin%20support%20multilingual%20labels%3F\"><h3>Does this plugin support multilingual labels?<\/h3><\/dt>\n<dd><p>Yes. Labels are user-editable, and static UI strings are prepared with WordPress i18n functions.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>0.1.2<\/h4>\n\n<ul>\n<li>Improved Event Countdown output by hiding exhausted leading units (days\/hours\/minutes) when they reach zero.<\/li>\n<li>Added editable <code>Prefix label<\/code> and <code>Suffix label<\/code> for countdown context text, rendered only while countdown is active.<\/li>\n<li>Added singular and plural unit labels for day\/hour\/minute\/second with automatic unit selection based on value.<\/li>\n<li>Removed leading zero padding from countdown units for cleaner numeric output.<\/li>\n<\/ul>\n\n<h4>0.1.1<\/h4>\n\n<ul>\n<li>Initial public release.<\/li>\n<li>Added Timed Event parent block with server-side scheduling logic.<\/li>\n<li>Added Event Date child block with site\/custom date format.<\/li>\n<li>Added Event Time child block with dynamic scheduled\/active\/ended states.<\/li>\n<li>Added Event Countdown child block with start\/end targets and dynamic updates.<\/li>\n<li>Added native style support for spacing, color, typography, border, and dimensions.<\/li>\n<\/ul>","raw_excerpt":"Schedule event visibility and create flexible event layouts with native Gutenberg blocks for modern WordPress editing workflows.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/el.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/284086","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/el.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/el.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/el.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=284086"}],"author":[{"embeddable":true,"href":"https:\/\/el.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/santiagodel76"}],"wp:attachment":[{"href":"https:\/\/el.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=284086"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/el.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=284086"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/el.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=284086"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/el.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=284086"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/el.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=284086"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/el.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=284086"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}