{"id":13567,"date":"2025-03-12T11:11:20","date_gmt":"2025-03-12T08:11:20","guid":{"rendered":"https:\/\/dhtmlx.com\/blog\/?p=13567"},"modified":"2025-04-16T17:32:55","modified_gmt":"2025-04-16T14:32:55","slug":"dhtmlx-booking-1-1","status":"publish","type":"post","link":"https:\/\/dhtmlx.com\/blog\/dhtmlx-booking-1-1\/","title":{"rendered":"DHTMLX Booking 1.1: Lazy Rendering, Customizable Cards, and Integration Demos with Frameworks"},"content":{"rendered":"<p>DHTMLX Booking became a part of our product line just at the end of last autumn, enabling dev teams to create online appointment systems with minimum time and effort. Today, we are excited to announce the first official update of this <a href=\"https:\/\/dhtmlx.com\/docs\/products\/dhtmlxBooking\/\" rel=\"noopener\" target=\"_blank\">JavaScript Booking Calendar<\/a> widget.<\/p>\n<p>DHTMLX Booking 1.1 enhances the widget&#8217;s performance, customization, and usability with popular front-end frameworks. From now on, it supports lazy rendering to keep the UI lightweight and responsive even with large datasets. The new version also allows you to modify the structure and appearance of cards and the booking dialog. As a bonus, our team also prepared samples of integrating the Booking widget with popular front-end frameworks (React, Angular, Vue, and Svelte) and with the DHTMLX Event Calendar component.<\/p>\n\n\t\t<div class='post-banner'>\n\t\t    <div class='post-banner__inside'>\n\t\t        <div>\n\t\t            <div class=\"post-banner__title\">Download DHTMLX Booking Widget v1.1<\/div>\n\t\t            <div class=\"post-banner__text\">Estimate the initial functionality for delivering a multifunctional JavaScript booking calendar<\/div>\n                <\/div>\n\t\t            \n                \n            <div class='post-banner__btn'>\n                <a href='https:\/\/dhtmlx.com\/docs\/products\/dhtmlxBooking\/download.shtml' title='' class='button-secondary'>Get free trial<\/a>\n            <\/div>\n        \n            <\/div>\n\t\t<\/div>\n\t\n<p>Let us get acquainted with the novelties in more detail. <\/p>\n<h5>Lazy Rendering<\/h5>\n<p>Smooth performance is one of the key ingredients for a good user experience in web apps, and now you can achieve this goal with the Booking widget using the newly added lazy rendering. This technique helps ensure solid performance even with large amounts of data.<\/p>\n<p>By default, the Booking widget renders all cards loaded to the widget, which can become an issue with the growing number of cards in the system. To keep the interface fast and responsive with many cards, you can enable lazy rendering by adding the <strong>lazy<\/strong> parameter in the <strong><a href=\"https:\/\/docs.dhtmlx.com\/booking\/api\/config\/booking-rendertype\/\" rel=\"noopener\" target=\"_blank\">renderType<\/a><\/strong> property:<\/p>\n<div class=\"codecolorer-container javascript default\" style=\"overflow:auto;white-space:nowrap;\"><div class=\"javascript codecolorer\"><span class=\"kw1\">new<\/span> booking.<span class=\"me1\">Booking<\/span><span class=\"br0\">&#40;<\/span><span class=\"st0\">&quot;#root&quot;<\/span><span class=\"sy0\">,<\/span> <span class=\"br0\">&#123;<\/span><br \/>\n&nbsp; &nbsp; data<span class=\"sy0\">,<\/span><br \/>\n&nbsp; &nbsp; renderType<span class=\"sy0\">:<\/span> <span class=\"st0\">&quot;lazy&quot;<\/span><span class=\"sy0\">,<\/span><br \/>\n&nbsp; &nbsp; <span class=\"co1\">\/\/ other parameters<\/span><br \/>\n<span class=\"br0\">&#125;<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span><\/div><\/div>\n<p>After that, only cards within the viewport (visible to end-users) will be rendered in the UI, making it more dynamic and user-friendly.<\/p>\n<p>Test how it works in practice using this <a href=\"https:\/\/snippet.dhtmlx.com\/fb9a5a3b?tag=booking&#038;mode=wide\" rel=\"noopener\" target=\"_blank\">live sample<\/a>.<\/p>\n<h5>Templates for Customizing Cards<\/h5>\n<p>In version 1.1, the structure of the Booking widget becomes more flexible and adjustable to various project requirements. To be more specific, this release unlocks great opportunities for modifying the appearance of card blocks and the booking dialog using templates.<\/p>\n<ul>\n<li>Customized cards\u2019 view in the list<\/li>\n<\/ul>\n<p>You can apply a template to customize the layout, design, and content of cards in the list with custom HTML using the <strong><a href=\"https:\/\/docs.dhtmlx.com\/booking\/api\/config\/booking-cardtemplate\/\" rel=\"noopener\" target=\"_blank\">cardTemplate<\/a><\/strong> property.<br \/>\n<img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/dhtmlx.com\/blog\/wp-content\/uploads\/2025\/03\/image2.png\" alt=\"customized card block\" width=\"1028\" height=\"786\" class=\"aligncenter size-full wp-image-13570\" srcset=\"https:\/\/dhtmlx.com\/blog\/wp-content\/uploads\/2025\/03\/image2.png 1028w, https:\/\/dhtmlx.com\/blog\/wp-content\/uploads\/2025\/03\/image2-300x229.png 300w, https:\/\/dhtmlx.com\/blog\/wp-content\/uploads\/2025\/03\/image2-768x587.png 768w, https:\/\/dhtmlx.com\/blog\/wp-content\/uploads\/2025\/03\/image2-1024x783.png 1024w\" sizes=\"auto, (max-width: 1028px) 100vw, 1028px\" \/><a href=\"https:\/\/snippet.dhtmlx.com\/k2v01vng?tag=booking&#038;mode=wide\" rel=\"noopener\" target=\"_blank\">Check the sample ><\/a><\/p>\n<p>Booking API already includes the <strong><a href=\"https:\/\/docs.dhtmlx.com\/booking\/api\/config\/booking-cardshape\/\" rel=\"noopener\" target=\"_blank\">cardShape<\/a><\/strong> property used to specify fields displayed in cards. For instance, if some default card parameters become irrelevant, it is possible to remove them via the <strong><a href=\"https:\/\/docs.dhtmlx.com\/booking\/api\/config\/booking-cardshape\/\" rel=\"noopener\" target=\"_blank\">cardShape<\/a><\/strong> property.<br \/>\n<img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/dhtmlx.com\/blog\/wp-content\/uploads\/2025\/03\/image1.png\" alt=\"cards with removed elements\" width=\"1021\" height=\"663\" class=\"aligncenter size-full wp-image-13571\" srcset=\"https:\/\/dhtmlx.com\/blog\/wp-content\/uploads\/2025\/03\/image1.png 1021w, https:\/\/dhtmlx.com\/blog\/wp-content\/uploads\/2025\/03\/image1-300x195.png 300w, https:\/\/dhtmlx.com\/blog\/wp-content\/uploads\/2025\/03\/image1-768x499.png 768w\" sizes=\"auto, (max-width: 1021px) 100vw, 1021px\" \/><a href=\"https:\/\/snippet.dhtmlx.com\/6mxd7918?tag=booking&#038;mode=wide\" rel=\"noopener\" target=\"_blank\">Check the sample ><\/a><\/p>\n<p><em><strong>Note:<\/strong> Be careful when specifying the appearance of any card simultaneously using both properties mentioned above, since <strong>cardTemplate<\/strong> will override the <strong>cardShape<\/strong> settings.<\/em><\/p>\n<p>The full information on configuring and customizing cards is provided in the <a href=\"https:\/\/docs.dhtmlx.com\/booking\/guides\/configuration\/#defining-the-structure-of-cards\" rel=\"noopener\" target=\"_blank\">documentation<\/a>.<\/p>\n<ul>\n<li>Customized Booking dialog<\/li>\n<\/ul>\n<p>The Booking dialog contains the information block (on the left side) that now can be complemented with custom HTML. For this purpose, you need to apply a custom template using the <strong><a href=\"https:\/\/docs.dhtmlx.com\/booking\/api\/config\/booking-infotemplate\/\" rel=\"noopener\" target=\"_blank\">infoTemplate<\/a><\/strong> property.<br \/>\n<img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/dhtmlx.com\/blog\/wp-content\/uploads\/2025\/03\/image5.png\" alt=\"Booking dialog with custom content\" width=\"1138\" height=\"775\" class=\"aligncenter size-full wp-image-13572\" srcset=\"https:\/\/dhtmlx.com\/blog\/wp-content\/uploads\/2025\/03\/image5.png 1138w, https:\/\/dhtmlx.com\/blog\/wp-content\/uploads\/2025\/03\/image5-300x204.png 300w, https:\/\/dhtmlx.com\/blog\/wp-content\/uploads\/2025\/03\/image5-768x523.png 768w, https:\/\/dhtmlx.com\/blog\/wp-content\/uploads\/2025\/03\/image5-1024x697.png 1024w\" sizes=\"auto, (max-width: 1138px) 100vw, 1138px\" \/><a href=\"https:\/\/snippet.dhtmlx.com\/byb94ipu?tag=booking&#038;mode=wide\" rel=\"noopener\" target=\"_blank\">Check the sample ><\/a>  <\/p>\n<p>The <strong><a href=\"https:\/\/docs.dhtmlx.com\/booking\/api\/config\/booking-infoshape\/\" rel=\"noopener\" target=\"_blank\">infoShape<\/a><\/strong> property is another already existing setting that allows you to choose whether to show or hide specific default parameters of the information block.<br \/>\n<img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/dhtmlx.com\/blog\/wp-content\/uploads\/2025\/03\/image4.png\" alt=\"Removed elements from the information block\" width=\"1136\" height=\"665\" class=\"aligncenter size-full wp-image-13573\" srcset=\"https:\/\/dhtmlx.com\/blog\/wp-content\/uploads\/2025\/03\/image4.png 1136w, https:\/\/dhtmlx.com\/blog\/wp-content\/uploads\/2025\/03\/image4-300x176.png 300w, https:\/\/dhtmlx.com\/blog\/wp-content\/uploads\/2025\/03\/image4-768x450.png 768w, https:\/\/dhtmlx.com\/blog\/wp-content\/uploads\/2025\/03\/image4-1024x599.png 1024w\" sizes=\"auto, (max-width: 1136px) 100vw, 1136px\" \/><a href=\"https:\/\/snippet.dhtmlx.com\/pd6wp1xc?tag=booking&#038;mode=wide\" rel=\"noopener\" target=\"_blank\">Check the sample ><\/a><\/p>\n<p><em><strong>Note:<\/strong> These properties should also be used carefully since <strong>infoTemplate<\/strong> overrides the <strong>infoShape<\/strong> settings.<\/em><\/p>\n<p>This <a href=\"https:\/\/docs.dhtmlx.com\/booking\/guides\/configuration\/#configuring-the-booking-dialog\" rel=\"noopener\" target=\"_blank\">documentation section<\/a> provides all the necessary details in configuring and customizing the Booking dialog. <\/p>\n<h5>Integration with Frameworks and Event Calendar<\/h5>\n<p>Starting from v1.1, DHTMLX Booking becomes more adaptable to projects based on top front-end frameworks, thanks to a new pack of integration demos. With these samples and <a href=\"https:\/\/docs.dhtmlx.com\/booking\/category\/backend-and-frameworks-integration\/\" rel=\"noopener\" target=\"_blank\">step-by-step instructions<\/a>, you can learn how to integrate the Booking widget with the preferred framework and make it work in a real web project much faster. For your convenience, we added new integration samples on GitHub:<\/p>\n<ul>\n<li><a href=\"https:\/\/github.com\/DHTMLX\/react-booking-demo\" rel=\"noopener\" target=\"_blank\">Integration with React<\/a><\/li>\n<li><a href=\"https:\/\/github.com\/DHTMLX\/angular-booking-demo\" rel=\"noopener\" target=\"_blank\">Integration with Angular<\/a><\/li>\n<li><a href=\"https:\/\/github.com\/DHTMLX\/vue-booking-demo\" rel=\"noopener\" target=\"_blank\">Integration with Vue<\/a><\/li>\n<li><a href=\"https:\/\/github.com\/DHTMLX\/svelte-booking-demo\" rel=\"noopener\" target=\"_blank\">Integration with Svelte<\/a><\/li>\n<\/ul>\n<p>Apart from that, the release also includes the <a href=\"https:\/\/snippet.dhtmlx.com\/c5eu8pdk?tag=booking&#038;mode=wide\" rel=\"noopener\" target=\"_blank\">integration demo<\/a> of DHTMLX Booking with our <a href=\"https:\/\/dhtmlx.com\/docs\/products\/dhtmlxEventCalendar\/\" rel=\"noopener\" target=\"_blank\">JavaScript Event Calendar<\/a>.<\/p>\n<p>These are all the novelties included in v1.1, and you can run through them one more time in the &#8220;<a href=\"https:\/\/docs.dhtmlx.com\/booking\/news\/whats_new\/#version-11\" rel=\"noopener\" target=\"_blank\">What\u2019s new<\/a>&#8221; section.<\/p>\n<p>Want to test DHTMLX Booking 1.1 before choosing it for your web project? Download a free 30-day trial version and get down to it. For our current clients, v1.1 is available in their <a href=\"https:\/\/dhtmlx.com\/clients\/\" rel=\"noopener\" target=\"_blank\">Client\u2019s Area<\/a>.<\/p>\n<p>We would appreciate your feedback on this release in the comments below. Stay tuned for more updates from DHTMLX.<\/p>\n<h5>Related Materials<\/h5>\n<ul>\n<li><a href=\"https:\/\/docs.dhtmlx.com\/booking\/news\/whats_new\/#version-11\" rel=\"noopener\" target=\"_blank\">What\u2019s new in v1.1<\/a><\/li>\n<li><a href=\"https:\/\/docs.dhtmlx.com\/booking\/\" rel=\"noopener\" target=\"_blank\">DHTMLX Booking documentation<\/a><\/li>\n<li><a href=\"https:\/\/snippet.dhtmlx.com\/k2v01vng?tag=booking&#038;mode=wide\" rel=\"noopener\" target=\"_blank\">DHTMLX Booking code snippets<\/a><\/li>\n<li><a href=\"https:\/\/dhtmlx.com\/docs\/products\/dhtmlxBooking\/download.shtml\" rel=\"noopener\" target=\"_blank\">Free 30-day trial version<\/a><\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>DHTMLX Booking became a part of our product line just at the end of last autumn, enabling dev teams to create online appointment systems with minimum time and effort. &#8230;<\/p>\n","protected":false},"author":101014,"featured_media":13575,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[70],"tags":[33,78],"class_list":["post-13567","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-releases","tag-all-posts","tag-booking"],"_links":{"self":[{"href":"https:\/\/dhtmlx.com\/blog\/wp-json\/wp\/v2\/posts\/13567","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/dhtmlx.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/dhtmlx.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/dhtmlx.com\/blog\/wp-json\/wp\/v2\/users\/101014"}],"replies":[{"embeddable":true,"href":"https:\/\/dhtmlx.com\/blog\/wp-json\/wp\/v2\/comments?post=13567"}],"version-history":[{"count":7,"href":"https:\/\/dhtmlx.com\/blog\/wp-json\/wp\/v2\/posts\/13567\/revisions"}],"predecessor-version":[{"id":13569,"href":"https:\/\/dhtmlx.com\/blog\/wp-json\/wp\/v2\/posts\/13567\/revisions\/13569"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/dhtmlx.com\/blog\/wp-json\/wp\/v2\/media\/13575"}],"wp:attachment":[{"href":"https:\/\/dhtmlx.com\/blog\/wp-json\/wp\/v2\/media?parent=13567"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/dhtmlx.com\/blog\/wp-json\/wp\/v2\/categories?post=13567"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/dhtmlx.com\/blog\/wp-json\/wp\/v2\/tags?post=13567"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}