{"id":331649,"date":"2026-06-30T07:37:49","date_gmt":"2026-06-30T07:37:49","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/tymeslot\/"},"modified":"2026-06-30T07:37:33","modified_gmt":"2026-06-30T07:37:33","slug":"tymeslot","status":"publish","type":"plugin","link":"https:\/\/mfe.wordpress.org\/plugins\/tymeslot\/","author":23522794,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.0.0","stable_tag":"1.0.0","tested":"7.0","requires":"6.4","requires_php":"7.4","requires_plugins":null,"header_name":"Tymeslot","header_author":"Tymeslot","header_description":"Add your Tymeslot booking page to WordPress with a shortcode, a Gutenberg block, or a floating button \u2014 no code required. Works with Tymeslot Cloud and self-hosted instances.","assets_banners_color":"0d9087","last_updated":"2026-06-30 07:37:33","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/tymeslot.app\/docs\/wordpress","header_author_uri":"https:\/\/tymeslot.app","rating":0,"author_block_rating":0,"active_installs":0,"downloads":25,"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":"luka113","date":"2026-06-30 07:37:33"}},"upgrade_notice":{"1.0.0":"<p>First release of the official Tymeslot plugin for WordPress.<\/p>"},"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3591049,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3591049,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256},"icon.svg":{"filename":"icon.svg","revision":3591049,"resolution":false,"location":"assets","locale":false}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3591049,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3591049,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250},"banner.svg":{"filename":"banner.svg","revision":3591049,"resolution":false,"location":"assets","locale":false}},"assets_blueprints":{},"all_blocks":{"tymeslot\/booking":{"$schema":"https:\/\/schemas.wp.org\/trunk\/block.json","apiVersion":3,"name":"tymeslot\/booking","version":"1.0.0","title":"Tymeslot Booking","category":"embed","icon":"calendar-alt","description":"Embed your Tymeslot booking page \u2014 inline, as a popup button, a floating button, or a simple link.","keywords":["booking","scheduling","appointment","calendar","tymeslot"],"supports":{"html":false,"align":["wide","full"],"spacing":{"margin":true,"padding":false}},"attributes":{"username":{"type":"string","default":""},"mode":{"type":"string","default":"inline"},"theme":{"type":"string","default":""},"locale":{"type":"string","default":""},"layout":{"type":"string","default":""},"initialHeight":{"type":"number"},"maxWidth":{"type":"number"},"buttonLabel":{"type":"string","default":""}},"textdomain":"tymeslot","editorScript":"file:.\/index.js","editorStyle":"file:.\/index.css","style":"file:.\/style-index.css"}},"tagged_versions":["1.0.0"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3591049,"resolution":"1","location":"assets","locale":"","width":1920,"height":1350},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3591049,"resolution":"2","location":"assets","locale":"","width":1920,"height":1350},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3591049,"resolution":"3","location":"assets","locale":"","width":1920,"height":1350}},"screenshots":{"1":"The Setup tab \u2014 connect your Tymeslot account and confirm embedding is enabled for your domain.","2":"The embed generator \u2014 choose a mode, customise the look, and copy a ready-made snippet with a live preview.","3":"The Tymeslot Booking block in the editor."}},"plugin_section":[],"plugin_tags":[8132,269,416,341,268],"plugin_category":[40],"plugin_contributors":[269549],"plugin_business_model":[],"class_list":["post-331649","plugin","type-plugin","status-publish","hentry","plugin_tags-appointments","plugin_tags-booking","plugin_tags-calendar","plugin_tags-meetings","plugin_tags-scheduling","plugin_category-calendar-and-events","plugin_contributors-luka113","plugin_committers-luka113"],"banners":{"banner":"https:\/\/ps.w.org\/tymeslot\/assets\/banner-772x250.png?rev=3591049","banner_2x":"https:\/\/ps.w.org\/tymeslot\/assets\/banner-1544x500.png?rev=3591049","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":"https:\/\/ps.w.org\/tymeslot\/assets\/icon.svg?rev=3591049","icon":"https:\/\/ps.w.org\/tymeslot\/assets\/icon.svg?rev=3591049","icon_2x":false,"generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/tymeslot\/assets\/screenshot-1.png?rev=3591049","caption":"The Setup tab \u2014 connect your Tymeslot account and confirm embedding is enabled for your domain."},{"src":"https:\/\/ps.w.org\/tymeslot\/assets\/screenshot-2.png?rev=3591049","caption":"The embed generator \u2014 choose a mode, customise the look, and copy a ready-made snippet with a live preview."},{"src":"https:\/\/ps.w.org\/tymeslot\/assets\/screenshot-3.png?rev=3591049","caption":"The Tymeslot Booking block in the editor."}],"raw_content":"<!--section=description-->\n<p><strong>Stop the back-and-forth. Start booking.<\/strong><\/p>\n\n<p>Tymeslot is the open-source scheduling platform that respects your time and your data. This official plugin puts your Tymeslot booking page anywhere on your WordPress site \u2014 no code, no iframe wrangling, no copy-pasting snippets by hand.<\/p>\n\n<p>Pick how visitors book:<\/p>\n\n<ul>\n<li><strong>Inline<\/strong> \u2014 the calendar renders right inside your page.<\/li>\n<li><strong>Popup<\/strong> \u2014 a button opens the booker in a clean overlay.<\/li>\n<li><strong>Floating button<\/strong> \u2014 a booking bubble follows visitors as they scroll, like a chat widget.<\/li>\n<li><strong>Direct link<\/strong> \u2014 a simple link for menus, buttons, and footers.<\/li>\n<\/ul>\n\n<p>Everything is driven by your real Tymeslot booking page, so availability, time zones, calendar sync, video links, and confirmation emails all just work.<\/p>\n\n<h4>Why Tymeslot<\/h4>\n\n<ul>\n<li><strong>Open source<\/strong> \u2014 self-host the whole platform, or use the managed cloud at tymeslot.app. This plugin works with both.<\/li>\n<li><strong>Privacy-first<\/strong> \u2014 your booking data stays in your Tymeslot account. The plugin stores only your settings.<\/li>\n<li><strong>Beautiful booking themes<\/strong> \u2014 choose Quill (elegant glassmorphism) or Rhythm (immersive video background). The booker keeps the brand colours you set in your Tymeslot account.<\/li>\n<li><strong>Auto-resizing<\/strong> \u2014 the embedded booker grows and shrinks to fit its content, with no awkward scrollbars.<\/li>\n<li><strong>Multilingual<\/strong> \u2014 render the booker in English, German, Ukrainian, French, or Italian.<\/li>\n<\/ul>\n\n<h4>Three ways to add it<\/h4>\n\n<ol>\n<li><strong>Block<\/strong> \u2014 insert the \u201cTymeslot Booking\u201d block and configure it in the sidebar.<\/li>\n<li><strong>Shortcode<\/strong> \u2014 <code>[tymeslot username=\"you\" mode=\"inline\"]<\/code> in any post, page, or widget.<\/li>\n<li><strong>Embed generator<\/strong> \u2014 build and copy a ready-made snippet from the plugin\u2019s settings screen for any page builder or custom theme.<\/li>\n<\/ol>\n\n<h4>Connecting to Tymeslot (third-party service)<\/h4>\n\n<p>This plugin displays booking pages served by <strong>Tymeslot<\/strong> \u2014 the managed cloud at tymeslot.app, or a Tymeslot instance you host yourself. To show a booker, the visitor\u2019s browser loads your booking page and its <code>embed.js<\/code> from the Tymeslot instance you choose. On the settings screen, an optional connection check loads your booking page in a preview so you can confirm embedding works. The plugin makes no external request until you set a booking username, and it never sends your data anywhere other than the Tymeslot instance you configure.<\/p>\n\n<p>If you use the managed cloud, your use is subject to Tymeslot\u2019s terms and privacy policy:<\/p>\n\n<ul>\n<li>Terms &amp; Conditions: https:\/\/tymeslot.app\/legal\/terms-and-conditions<\/li>\n<li>Privacy Policy: https:\/\/tymeslot.app\/legal\/privacy-policy<\/li>\n<\/ul>\n\n<h4>An alternative to Calendly and Cal.com<\/h4>\n\n<p>If you\u2019re looking for an open-source booking and appointment tool you can fully control \u2014 a Calendly or Cal.com alternative \u2014 Tymeslot is built for exactly that, and this plugin brings it natively into WordPress.<\/p>\n\n<p>Tymeslot is not affiliated with Calendly or Cal.com.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Install and activate the plugin.<\/li>\n<li>Go to <strong>Tymeslot<\/strong> in the WordPress admin menu.<\/li>\n<li>Choose <strong>Cloud<\/strong> (tymeslot.app \u2014 the default, nothing to configure) or <strong>Self-hosted<\/strong> (enter your own instance URL), then set your <strong>booking username<\/strong>.<\/li>\n<li><strong>Important:<\/strong> Tymeslot blocks embedding by default. In your Tymeslot dashboard, open <strong>Embed \u2192 Security<\/strong> and add your WordPress site\u2019s domain to the allowed embed domains. The Setup tab\u2019s live embedding status then confirms, right in the browser, that it\u2019s working.<\/li>\n<li>Add the <strong>Tymeslot Booking<\/strong> block to a page, or drop in the <code>[tymeslot]<\/code> shortcode.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"my%20booking%20page%20shows%20up%20blank.%20what%E2%80%99s%20wrong%3F\"><h3>My booking page shows up blank. What\u2019s wrong?<\/h3><\/dt>\n<dd><p>Almost always the domain allowlist. For security, Tymeslot only allows your booking page to be embedded on domains you approve. In your Tymeslot dashboard go to <strong>Embed \u2192 Security<\/strong>, add your WordPress site\u2019s domain, and save. The live embedding status on the plugin\u2019s Setup tab loads your real booking page and tells you, in the browser, exactly whether this site is allowed.<\/p>\n\n<p>Until the domain is allow-listed, the plugin shows a short \u201cbooking is currently unavailable\u201d message in place of the booker \u2014 it deliberately never lets the Tymeslot homepage render inside your page. Logged-in administrators also see a hint pointing to <strong>Embed \u2192 Security<\/strong>.<\/p><\/dd>\n<dt id=\"do%20i%20need%20a%20paid%20tymeslot%20account%3F\"><h3>Do I need a paid Tymeslot account?<\/h3><\/dt>\n<dd><p>No. Core scheduling on Tymeslot is free, and this plugin works with free and Pro accounts alike.<\/p><\/dd>\n<dt id=\"does%20it%20work%20with%20a%20self-hosted%20tymeslot%20instance%3F\"><h3>Does it work with a self-hosted Tymeslot instance?<\/h3><\/dt>\n<dd><p>Yes. On the Setup tab choose <strong>Self-hosted<\/strong> and enter your instance URL. Switch back to <strong>Cloud<\/strong> any time \u2014 everything else behaves the same.<\/p><\/dd>\n<dt id=\"where%20is%20my%20booking%20data%20stored%3F\"><h3>Where is my booking data stored?<\/h3><\/dt>\n<dd><p>In your Tymeslot account \u2014 never in WordPress. The plugin only stores your local settings (instance URL, username, and default appearance).<\/p><\/dd>\n<dt id=\"can%20i%20change%20the%20look%20of%20the%20booker%3F\"><h3>Can I change the look of the booker?<\/h3><\/dt>\n<dd><p>Yes. Choose a theme (Quill or Rhythm), pick a layout (column or centred), and a language. Set defaults once on the Setup tab, or override them per block\/shortcode. Your brand colour is set in your Tymeslot account and is applied to the booker automatically.<\/p><\/dd>\n<dt id=\"does%20it%20slow%20down%20my%20site%3F\"><h3>Does it slow down my site?<\/h3><\/dt>\n<dd><p>No. The lightweight embed runtime loads only on pages that actually contain a Tymeslot block or shortcode.<\/p><\/dd>\n<dt id=\"does%20it%20work%20with%20a%20strict%20content-security-policy%3F\"><h3>Does it work with a strict Content-Security-Policy?<\/h3><\/dt>\n<dd><p>The <strong>inline<\/strong> embed and the <strong>direct link<\/strong> work under a strict CSP \u2014 they only add a <code>&lt;div&gt;<\/code>\/<code>&lt;a&gt;<\/code> plus an external script you already allow via <code>script-src<\/code>. The <strong>popup<\/strong> and <strong>floating button<\/strong> modes use a small inline <code>onclick<\/code>\/<code>&lt;script&gt;<\/code> to open the booker, so they need <code>'unsafe-inline'<\/code> in your <code>script-src<\/code> (or a matching nonce\/hash) to run. If you enforce a strict CSP without <code>'unsafe-inline'<\/code>, prefer the inline or link mode.<\/p><\/dd>\n<dt id=\"where%20is%20the%20plugin%E2%80%99s%20source%20code%3F\"><h3>Where is the plugin\u2019s source code?<\/h3><\/dt>\n<dd><p>Development happens in the open. The full, un-minified source \u2014 including the Gutenberg block sources under <code>src\/<\/code> and the build tooling \u2014 lives at https:\/\/github.com\/Tymeslot\/tymeslot-wordpress. The compiled files under <code>build\/<\/code> shipped here are generated from it with <code>@wordpress\/scripts<\/code> (<code>npm run build<\/code>).<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial release.<\/li>\n<li>Tymeslot Booking Gutenberg block (inline, popup, floating, link).<\/li>\n<li><code>[tymeslot]<\/code> shortcode.<\/li>\n<li>Branded settings screen with an embed generator and live preview.<\/li>\n<li>Live embedding check that loads your real booking page and shows whether this site is allow-listed.<\/li>\n<li>Embed guard that shows a clear message instead of the Tymeslot homepage when a booking page can\u2019t be embedded (inline, popup, and floating).<\/li>\n<li>Support for self-hosted Tymeslot instances.<\/li>\n<li>Themes (Quill, Rhythm), layout, and language options.<\/li>\n<\/ul>","raw_excerpt":"Add your Tymeslot booking page to WordPress with a block, a shortcode, or a floating button. Open source. Cloud or self-hosted.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/mfe.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/331649","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/mfe.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/mfe.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/mfe.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=331649"}],"author":[{"embeddable":true,"href":"https:\/\/mfe.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/luka113"}],"wp:attachment":[{"href":"https:\/\/mfe.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=331649"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/mfe.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=331649"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/mfe.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=331649"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/mfe.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=331649"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/mfe.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=331649"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/mfe.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=331649"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}