{"id":17130,"date":"2024-03-04T08:57:11","date_gmt":"2024-03-04T08:57:11","guid":{"rendered":"https:\/\/www.anychart.com\/blog\/?p=17130"},"modified":"2024-03-04T12:50:00","modified_gmt":"2024-03-04T12:50:00","slug":"javascript-calendar-charts","status":"publish","type":"post","link":"https:\/\/www.anychart.com\/blog\/2024\/03\/04\/javascript-calendar-charts\/","title":{"rendered":"Creating Calendar Charts with JavaScript"},"content":{"rendered":"<p><a href=\"https:\/\/www.anychart.com\/blog\/2024\/03\/04\/javascript-calendar-charts\/\"><img decoding=\"async\" src=\"https:\/\/www.anychart.com\/blog\/wp-content\/uploads\/2024\/03\/CALENDAR-CHART-min.png\" alt=\"Calendar Charts in JavaScript (HTML5)\" width=\"100%\" class=\"alignnone size-full wp-image-17135\" srcset=\"https:\/\/www.anychart.com\/blog\/wp-content\/uploads\/2024\/03\/CALENDAR-CHART-min.png 1366w, https:\/\/www.anychart.com\/blog\/wp-content\/uploads\/2024\/03\/CALENDAR-CHART-min-300x169.png 300w, https:\/\/www.anychart.com\/blog\/wp-content\/uploads\/2024\/03\/CALENDAR-CHART-min-768x432.png 768w, https:\/\/www.anychart.com\/blog\/wp-content\/uploads\/2024\/03\/CALENDAR-CHART-min-1024x576.png 1024w\" sizes=\"(max-width: 1366px) 100vw, 1366px\" \/><\/a>Building an interactive <a href=\"https:\/\/datavizcatalogue.com\/methods\/calendar.html\" target=\"_blank\" rel=\"nofollow\">calendar chart<\/a> from scratch may initially seem daunting and time-consuming. However, I&#39;m here to show you it&#39;s not only manageable but straightforward once you know the steps. Whether you&#39;re developing a scheduling application, tracking events, or looking to enhance your web page with a sleek calendar graphic, this tutorial is designed specifically for you. I&#39;ll guide you through the steps to create impressive interactive calendar charts using JavaScript, simplifying what may seem complex.<\/p>\n<p>We&#39;ll delve into this process using a JavaScript charting library. As a support engineer at <a href=\"https:\/\/www.anychart.com\/\">AnyChart<\/a>, and with our JS library recently named <a href=\"https:\/\/www.anychart.com\/blog\/2024\/02\/19\/best-in-data-analytics-and-visualization-2024\/\">best in data visualization<\/a>, it was a natural choice to use our tool for this tutorial. What about the example data? Other tutorials! There&#39;s a treasure trove of <a href=\"https:\/\/www.anychart.com\/blog\/category\/javascript-chart-tutorials\/\">JS charting tutorials<\/a> on our blog, and it occurred to me that compiling these tutorials into a calendar chart would serve as a unique, engaging, and practical example for this guide.<\/p>\n<p>Therefore, the calendar chart created by the end of this tutorial will offer a concise overview of all tutorials published on the AnyChart blog over the last four years, enabling you to quickly discover the ones that interest you the most. All aboard, fellow web developers and data enthusiasts!<\/p>\n<p><!--more Read the JS charting tutorial \u00bb--><\/p>\n<h2 id=\"understanding-the-calendar-as-a-chart\">Understanding Calendar as Chart<\/h2>\n<p>The calendar is commonly recognized as a simple tool for tracking dates \u2014 a straightforward system organizing days, weeks, months, and years. It&#39;s a familiar fixture in our daily lives, helping us remember appointments and significant events. Essentially, a calendar serves as a chart of time.<\/p>\n<p>Yet, when we shift our perspective to digital applications, the concept of a calendar undergoes a subtle transformation. In data visualization, the calendar chart builds upon the basic functionality of a traditional calendar. This digital version not only fulfills its primary role of representing time but also adds dimensions of interactivity and dynamism.<\/p>\n<p>In a calendar chart, each grid segment corresponds to a specific date, offering an organized framework for displaying various time-based data, such as events or deadlines. It becomes more than just a tool for marking time; it evolves into a dynamic platform for visualizing data in relation to time,<\/p>\n<h2 id=\"building-a-calendar-chart\">Building Calendar Chart<\/h2>\n<p>All the code in this tutorial belongs in a single HTML file. Follow along to create and populate a calendar chart in four stages. After that, we&#39;ll delve into styling.<\/p>\n<h3 id=\"1-html-boilerplate-and-container\">1. HTML Boilerplate and Container<\/h3>\n<p>Start by creating an HTML file and inputting the boilerplate code to establish a basic file structure. Within the <code>&lt;body&gt;<\/code> tag, add a <code>&lt;div&gt;<\/code> element with a unique ID. This <code>&lt;div&gt;<\/code> is crucial as it serves as the container for the calendar chart; we&#39;ll examine this process more closely as we progress. Meanwhile, let&#39;s assign it a descriptive ID of &quot;container.&quot;<\/p>\n<pre><code class=\"html\">&lt;!DOCTYPE html&gt;\r\n&lt;html lang=&quot;en&quot;&gt;\r\n  &lt;head&gt;\r\n    &lt;title&gt;Calendar Chart in JavaScript&lt;\/title&gt;\r\n  &lt;\/head&gt;\r\n  &lt;body&gt;\r\n    &lt;div id=&quot;container&quot;&gt;&lt;\/div&gt;\r\n  &lt;\/body&gt;\r\n&lt;\/html&gt;\r\n<\/code><\/pre>\n<p>Additionally, include a <code>&lt;style&gt;<\/code> tag in the HTML code to apply some CSS rules for the chart container element.<\/p>\n<pre><code class=\"html\">&lt;!DOCTYPE html&gt;\r\n&lt;html lang=&quot;en&quot;&gt;\r\n  &lt;head&gt;\r\n    &lt;title&gt;Calendar Chart in JavaScript&lt;\/title&gt;\r\n    &lt;style&gt;\r\n      html,\r\n      body,\r\n      #container {\r\n        width: 100%;\r\n        height: 100%;\r\n        margin: 0;\r\n        padding: 0;\r\n      }\r\n    &lt;\/style&gt;\r\n  &lt;\/head&gt;\r\n  &lt;body&gt;\r\n    &lt;div id=&quot;container&quot;&gt;&lt;\/div&gt;\r\n  &lt;\/body&gt;\r\n&lt;\/html&gt;\r\n<\/code><\/pre>\n<h3 id=\"2-adding-scripts-to-html\">2. Adding Scripts to HTML<\/h3>\n<p>In the <code>&lt;head&gt;<\/code> section of your HTML file, include the necessary scripts. AnyChart has a <a href=\"https:\/\/docs.anychart.com\/Quick_Start\/Modules\" target=\"_blank\" rel=\"nofollow\">modular system<\/a>, which helps keep projects efficient by allowing you to connect only the chart types and features you need. In our example, we include the Base module, the Calendar module, and the Data Adapter module for loading data from a file.<\/p>\n<p>The JavaScript charting code will be enclosed within <code>&lt;script&gt;<\/code> tags in the <code>&lt;body&gt;<\/code> section.<\/p>\n<pre><code class=\"html\">&lt;!DOCTYPE html&gt;\r\n&lt;html lang=&quot;en&quot;&gt;\r\n  &lt;head&gt;\r\n    &lt;title&gt;Calendar Chart in JavaScript&lt;\/title&gt;\r\n    &lt;style&gt;\r\n      html,\r\n      body,\r\n      #container {\r\n        width: 100%;\r\n        height: 100%;\r\n        margin: 0;\r\n        padding: 0;\r\n      }\r\n    &lt;\/style&gt;\r\n    &lt;script src=&quot;https:\/\/cdn.anychart.com\/releases\/8.12.0\/js\/anychart-core.min.js&quot;&gt;&lt;\/script&gt;\r\n    &lt;script src=&quot;https:\/\/cdn.anychart.com\/releases\/8.12.0\/js\/anychart-calendar.min.js&quot;&gt;&lt;\/script&gt;\r\n    &lt;script src=&quot;https:\/\/cdn.anychart.com\/releases\/8.12.0\/js\/anychart-data-adapter.min.js&quot;&gt;&lt;\/script&gt;\r\n  &lt;\/head&gt;\r\n  &lt;body&gt;\r\n    &lt;div id=&quot;container&quot;&gt;&lt;\/div&gt;\r\n    &lt;script&gt;\r\n      &lt;!-- The calendar chart&#39;s JS code will be here. --&gt;\r\n    &lt;\/script&gt;\r\n  &lt;body&gt;\r\n&lt;\/html&gt;\r\n<\/code><\/pre>\n<h3 id=\"3-setting-the-chart-data\">3. Setting Chart Data<\/h3>\n<p>Multiple options exist for <a href=\"https:\/\/docs.anychart.com\/Working_with_Data\/Overview\" target=\"_blank\" rel=\"nofollow\">loading data<\/a>. For this calendar chart, I&#39;ve prepared a <a href=\"https:\/\/raw.githubusercontent.com\/Bepely\/JsonExampleData\/main\/calendar2023.json\" target=\"_blank\" rel=\"nofollow\">JSON file<\/a>, where each item represents a day on the calendar when a tutorial was published, containing the following properties:<\/p>\n<ul>\n<li>X: A string formatted as &quot;YYYY-MM-DD&quot;, marking the publication date of a tutorial.<\/li>\n<li>Value: An integer indicating the number of tutorials published on that day. Given that no more than one tutorial was published per day in this dataset, the value will always be &quot;1&quot;, signifying the days when tutorials were made available.<\/li>\n<li>Additional fields: For our purposes, this includes a &quot;Name&quot; string that contains the title of the tutorial, and a &quot;Link&quot; string with the URL.<\/li>\n<\/ul>\n<p>To incorporate this data into the chart, you can use the Data Adapter module&#39;s <code>loadJsonFile()<\/code> method.<\/p>\n<pre><code class=\"javascript\">anychart.data.loadJsonFile(&quot;https:\/\/raw.githubusercontent.com\/Bepely\/JsonExampleData\/main\/calendar2023.json&quot;,\r\n  (data) =&gt; chart.data(data)\r\n);\r\n<\/code><\/pre>\n<p>I&#39;ll show you where to add this code block in the following step.<\/p>\n<h3 id=\"4-calendar-chart-visualization-setup\">4. Calendar Chart Visualization Setup<\/h3>\n<p>With the prerequisites in place, building your first calendar chart is straightforward. The whole following JavaScript code should be placed within the <code>&lt;script&gt;<\/code> tags in the <code>&lt;body&gt;<\/code> section of your HTML file.<\/p>\n<p>First, to prevent the code from running before the document is fully loaded, use the <code>onDocumentReady()<\/code> method:<\/p>\n<pre><code class=\"javascript\">anychart.onDocumentReady(function () { \/* ... *\/ })\r\n<\/code><\/pre>\n<p>Second, add the data prepared in the previous step:<\/p>\n<pre><code class=\"javascript\">anychart.onDocumentReady(function () {\r\n  anychart.data.loadJsonFile(&quot;https:\/\/raw.githubusercontent.com\/Bepely\/JsonExampleData\/main\/calendar2023.json&quot;,\r\n    (data) =&gt; chart.data(data)\r\n  );\r\n});\r\n<\/code><\/pre>\n<p>Third, initialize a calendar chart instance:<\/p>\n<pre><code class=\"javascript\">const chart = anychart.calendar();\r\n<\/code><\/pre>\n<p>Fourth, specify the HTML container that will host the chart:<\/p>\n<pre><code class=\"javascript\">chart.container(&quot;container&quot;);\r\n<\/code><\/pre>\n<p>Fifth, if your calendar chart is expected to extend vertically, dynamically adjust its height for a seamless and responsive display. This adjustment allows for scrolling when needed:<\/p>\n<pre><code class=\"javascript\">chart.listen(&quot;chartDraw&quot;, function () {\r\n  document.getElementById(&quot;container&quot;).style.height =\r\n    chart.getActualHeight() + 5 + &quot;px&quot;;\r\n});\r\n<\/code><\/pre>\n<p>Finally, activate the chart drawing process. This step brings your calendar chart to life, visualizing the data within the specified container.<\/p>\n<pre><code class=\"javascript\">chart.draw();\r\n<\/code><\/pre>\n<p>By following these steps, your web page will now showcase a captivating calendar chart that spans the entire screen. For a hands-on experience, explore its <strong><a href=\"https:\/\/playground.anychart.com\/vZl9bohe\" target=\"_blank\" rel=\"nofollow\">interactive version<\/a><\/strong> with the full code (you can also find the code here below). And keep reading, as we&#39;ll next explore how to customize such a visualization, unlocking several interesting possibilities.<\/p>\n<p><a href=\"https:\/\/playground.anychart.com\/vZl9bohe\" target=\"_blank\" rel=\"nofollow\"><img decoding=\"async\" src=\"https:\/\/dev-to-uploads.s3.amazonaws.com\/uploads\/articles\/bc1hjk4pbastfdc5hwqb.png\" width=\"100%\" alt=\"Basic calendar chart in JavaScript\"><\/a><\/p>\n<pre><code class=\"html\">&lt;!DOCTYPE html&gt;\r\n&lt;html lang=&quot;en&quot;&gt;\r\n  &lt;head&gt;\r\n    &lt;script src=&quot;https:\/\/cdn.anychart.com\/releases\/8.12.0\/js\/anychart-core.min.js&quot;&gt;&lt;\/script&gt;\r\n    &lt;script src=&quot;https:\/\/cdn.anychart.com\/releases\/8.12.0\/js\/anychart-calendar.min.js&quot;&gt;&lt;\/script&gt;\r\n    &lt;script src=&quot;https:\/\/cdn.anychart.com\/releases\/8.12.0\/js\/anychart-data-adapter.min.js&quot;&gt;&lt;\/script&gt;\r\n    &lt;title&gt;Calendar Chart in JavaScript&lt;\/title&gt;\r\n    &lt;style&gt;\r\n      html,\r\n      body,\r\n      #container {\r\n        width: 100%;\r\n        height: 100%;\r\n        margin: 0;\r\n        padding: 0;\r\n      }\r\n    &lt;\/style&gt;\r\n  &lt;\/head&gt;\r\n  &lt;body&gt;\r\n    &lt;div id=&quot;container&quot;&gt;&lt;\/div&gt;\r\n    &lt;script&gt;\r\n      \/\/ prevent premature chart script execution\r\n      anychart.onDocumentReady(function () {\r\n        \/\/ load data into the chart from a JSON file\r\n        anychart.data.loadJsonFile(&quot;https:\/\/raw.githubusercontent.com\/Bepely\/JsonExampleData\/main\/calendar2023.json&quot;,\r\n          \/\/ callback function to set chart data\r\n          (data) =&gt; chart.data(data)\r\n        );\r\n        \/\/ create a calendar chart\r\n        const chart = anychart.calendar();\r\n        \/\/ set the container id\r\n        chart.container(&quot;container&quot;);\r\n        \/\/ adjust the chart&#39;s height after drawing\r\n        chart.listen(&quot;chartDraw&quot;, function () {\r\n          document.getElementById(&quot;container&quot;).style.height =\r\n            chart.getActualHeight() + 5 + &quot;px&quot;;\r\n        });\r\n        \/\/ draw the chart\r\n        chart.draw();\r\n      });\r\n    &lt;\/script&gt;\r\n  &lt;\/body&gt;\r\n&lt;\/html&gt;\r\n<\/code><\/pre>\n<h2 id=\"styling-a-calendar-chart\">Styling Calendar Chart<\/h2>\n<p>With the calendar chart now in place, it&#39;s time to personalize and refine it to meet specific aesthetic and functional requirements. This section will guide you through modifying several aspects of the calendar, allowing for a customized visualization experience.<\/p>\n<h3 id=\"1-adding-a-title\">1. Adding Title<\/h3>\n<p>A <a href=\"https:\/\/docs.anychart.com\/Common_Settings\/Title\" target=\"_blank\" rel=\"nofollow\">title<\/a> can be added to enhance the chart&#39;s descriptiveness, providing immediate context.<\/p>\n<pre><code class=\"javascript\">chart.title(&quot;JavaScript Charting Tutorials on AnyChart Blog, 2020\u20132023&quot;);\r\n<\/code><\/pre>\n<h3 id=\"2-customizing-data-point-color-scale\">2. Customizing Data Point Color Scale<\/h3>\n<p>By default, this kind of calendar chart uses a linear <a href=\"https:\/\/docs.anychart.com\/Basic_Charts\/Calendar_Chart#color_scale\" target=\"_blank\" rel=\"nofollow\">color scale<\/a> that transitions from light blue (representing the 0 value) to dark blue (representing the maximum value in the dataset). Customization allows for adapting this color scale to better align with the chart&#39;s thematic or aesthetic goals. In scenarios where data points represent a uniform value, such as a single tutorial published per day, altering the color scale to a consistent shade, like green, can make the chart visually cohesive.<\/p>\n<pre><code class=\"javascript\">chart.colorScale().colors([&quot;green&quot;]);\r\n<\/code><\/pre>\n<p>Gradients can be removed by disabling the color range, for a uniform appearance.<\/p>\n<pre><code class=\"javascript\">chart.colorRange(false);\r\n<\/code><\/pre>\n<h3 id=\"3-customizing-months-and-years\">3. Customizing Months and Years<\/h3>\n<p>Adjusting the appearance of calendar elements such as <a href=\"https:\/\/docs.anychart.com\/Basic_Charts\/Calendar_Chart#months\" target=\"_blank\" rel=\"nofollow\">months<\/a> and <a href=\"https:\/\/docs.anychart.com\/Basic_Charts\/Calendar_Chart#years\" target=\"_blank\" rel=\"nofollow\">years<\/a>  offers further opportunities for customization. Defining the month stroke properties and styling the year titles can significantly affect the chart&#39;s overall look and feel, making it more aligned with the desired presentation style.<\/p>\n<pre><code class=\"javascript\">\/\/ customize months\r\nconst months = chart.months();\r\n\/\/ set stroke for months\r\nmonths.stroke(&quot;black&quot;, 1);\r\n\/\/ set no data stroke for months\r\nmonths.noDataStroke(&quot;black&quot;, 1);\r\n\r\n\/\/ customize years\r\nconst years = chart.years();\r\n\/\/ access years&#39; title properties\r\nconst yearsTitle = years.title();\r\n\/\/ set font color for years&#39; title\r\nyearsTitle.fontColor(&quot;darkgray&quot;);\r\n\/\/ set font size for years&#39; title\r\nyearsTitle.fontSize(23);\r\n\/\/ set font weight for years&#39; title\r\nyearsTitle.fontWeight(400);\r\n\/\/ set padding for years&#39; title\r\nyearsTitle.padding(0, &quot;25%&quot;, 0, 0);\r\n<\/code><\/pre>\n<h3 id=\"4-setting-up-tooltips\">4. Setting Up Tooltips<\/h3>\n<p>Dynamic <a href=\"https:\/\/docs.anychart.com\/Basic_Charts\/Calendar_Chart#tooltips\" target=\"_blank\" rel=\"nofollow\">tooltips<\/a>  can be configured to display additional information, such as the name of the tutorial associated with a data point. This feature enhances interactivity, allowing users to gain insights at a glance.<\/p>\n<pre><code class=\"javascript\">\/\/ set tooltip format function\r\nchart.tooltip().format(function () {\r\n  \/\/ get pointed article name\r\n  const articleName = this.getData(&quot;name&quot;);\r\n  \/\/ return article name or default text\r\n  return articleName ? articleName : &quot;No Article Name!&quot;;\r\n});\r\n<\/code><\/pre>\n<p>These styling options showcase just a few of the ways the calendar chart can be customized to fit different visual and informational needs. Explore the <strong><a href=\"https:\/\/playground.anychart.com\/oyclOTTt\" target=\"_blank\" rel=\"nofollow\">playground demo<\/a><\/strong> for a practical look at these customizations in action. The full HTML\/CSS\/JS code for this enhanced calendar chart visualization is also provided for reference below.<\/p>\n<p><a href=\"https:\/\/playground.anychart.com\/oyclOTTt\" target=\"_blank\" rel=\"nofollow\"><img decoding=\"async\" src=\"https:\/\/dev-to-uploads.s3.amazonaws.com\/uploads\/articles\/qxd7644cj5uv7bn5l1rl.png\" width=\"100%\" alt=\"Final calendar chart in JS\"><\/a><\/p>\n<pre><code class=\"html\">&lt;!DOCTYPE html&gt;\r\n&lt;html lang=&quot;en&quot;&gt;\r\n  &lt;head&gt;\r\n    &lt;script src=&quot;https:\/\/cdn.anychart.com\/releases\/8.12.0\/js\/anychart-core.min.js&quot;&gt;&lt;\/script&gt;\r\n    &lt;script src=&quot;https:\/\/cdn.anychart.com\/releases\/8.12.0\/js\/anychart-calendar.min.js&quot;&gt;&lt;\/script&gt;\r\n    &lt;script src=&quot;https:\/\/cdn.anychart.com\/releases\/8.12.0\/js\/anychart-data-adapter.min.js&quot;&gt;&lt;\/script&gt;\r\n    &lt;title&gt;Calendar Chart in JavaScript&lt;\/title&gt;\r\n    &lt;style&gt;\r\n      html,\r\n      body,\r\n      #container {\r\n        width: 100%;\r\n        height: 100%;\r\n        margin: 0;\r\n        padding: 0;\r\n      }\r\n    &lt;\/style&gt;\r\n  &lt;\/head&gt;\r\n  &lt;body&gt;\r\n    &lt;div id=&quot;container&quot;&gt;&lt;\/div&gt;\r\n    &lt;script&gt;\r\n      \/\/ prevent premature chart script execution\r\n      anychart.onDocumentReady(function () {\r\n        \/\/ load data into the chart from a JSON file\r\n        anychart.data.loadJsonFile(&quot;https:\/\/raw.githubusercontent.com\/Bepely\/JsonExampleData\/main\/calendar2023.json&quot;,\r\n          \/\/ callback function to set chart data\r\n          (data) =&gt; chart.data(data)\r\n        );\r\n        \/\/ create a calendar chart\r\n        const chart = anychart.calendar();\r\n        \/\/ set green color to elements\r\n        chart.colorScale().colors([&quot;green&quot;]);\r\n        \/\/ disable color range\r\n        chart.colorRange(false);\r\n        \/\/ customize months\r\n        const months = chart.months();\r\n        \/\/ set stroke for months\r\n        months.stroke(&quot;black&quot;, 1);\r\n        \/\/ set no data stroke for months\r\n        months.noDataStroke(&quot;black&quot;, 1);\r\n        \/\/ customize years\r\n        const years = chart.years();\r\n        \/\/ access years&#39; title properties\r\n        const yearsTitle = years.title();\r\n        \/\/ set font color for years&#39; title\r\n        yearsTitle.fontColor(&quot;darkgray&quot;);\r\n        \/\/ set font size for years&#39; title\r\n        yearsTitle.fontSize(23);\r\n        \/\/ set font weight for years&#39; title\r\n        yearsTitle.fontWeight(400);\r\n        \/\/ set padding for years&#39; title\r\n        yearsTitle.padding(0, &quot;25%&quot;, 0, 0);\r\n        \/\/ set tooltip format function\r\n        chart.tooltip().format(function () {\r\n          \/\/ get pointed article name\r\n          const articleName = this.getData(&quot;name&quot;);\r\n          \/\/ return article name or default text\r\n          return articleName ? articleName : &quot;No Article Name!&quot;;\r\n        });\r\n        \/\/ set the container id\r\n        chart.container(&quot;container&quot;);\r\n        \/\/ adjust the chart&#39;s height after drawing\r\n        chart.listen(&quot;chartDraw&quot;, function () {\r\n          document.getElementById(&quot;container&quot;).style.height =\r\n            chart.getActualHeight() + 5 + &quot;px&quot;;\r\n        });\r\n        \/\/ set the chart title\r\n        chart.title(&quot;JavaScript Charting Tutorials on AnyChart Blog, 2020\u20132023&quot;);\r\n        \/\/ draw the chart\r\n        chart.draw();\r\n      });\r\n    &lt;\/script&gt;\r\n  &lt;\/body&gt;\r\n&lt;\/html&gt;\r\n<\/code><\/pre>\n<h2 id=\"bonus-adding-tutorial-links\">Bonus: Adding Tutorial Links<\/h2>\n<p>Congratulations on reaching this stage! Your commitment has unlocked a bonus feature that leverages the power of event listeners to enrich your calendar chart even further. By integrating the following snippet, each highlighted day \u2014 a marker of a tutorial&#39;s publication \u2014 becomes an interactive gateway:<\/p>\n<pre><code class=\"javascript\">\/\/ handle point click events\r\nchart.listen(&quot;pointClick&quot;, function (e) {\r\n  \/\/ get the link to the article source from the chart data\r\n  const articleLink = chart.data().get(e.dataIndex, &quot;link&quot;);\r\n  \/\/ check if there&#39;s a link\r\n  if (articleLink) {\r\n    \/\/ open the link in a new window\r\n    window.open(articleLink, &quot;_blank&quot;);\r\n  }\r\n});\r\n<\/code><\/pre>\n<p>This enhancement transforms your calendar, allowing you to not only hover over highlighted days to preview tutorial titles via tooltips but also click to directly access the tutorials themselves. This functionality seamlessly bridges the gap between discovery and learning. <strong><a href=\"https:\/\/playground.anychart.com\/dLR7T9Ym\" target=\"_blank\" rel=\"nofollow\">Happy exploring<\/a><\/strong>!<\/p>\n<h2 id=\"conclusion\">Conclusion<\/h2>\n<p>Creating a calendar chart is a straightforward process that&#39;s accessible to enthusiasts and professionals alike, regardless of the skill level. Armed with the insights from this tutorial, you&#39;re now equipped to create visually stunning and user-friendly calendar charts, streamlining the representation of time-based data across a myriad of applications.<\/p>\n<p>However, this is merely the beginning of the journey. I encourage you to dive deeper into the world of calendar charting by exploring the <a href=\"https:\/\/docs.anychart.com\/Basic_Charts\/Calendar_Chart\" target=\"_blank\" rel=\"nofollow\">calendar chart documentation<\/a> and drawing inspiration from some cool <a href=\"https:\/\/www.anychart.com\/products\/anychart\/gallery\/Calendar_Chart\">calendar chart examples<\/a>.<\/p>\n<p>Happy learning and charting!<\/p>\n<hr \/>\n<p><strong><em>Published with the permission of Nick Gogin. Originally appeared on <a href=\"https:\/\/dev.to\/bepely\/creating-interactive-calendar-charts-in-javascript-4m9f\" target=\"_blank\" rel=\"nofollow\">DEV Community<\/a> with the title &#8220;Creating Interactive Calendar Charts in JavaScript&#8221; on March 1, 2024.<\/p>\n<p>You&#8217;re also welcome to check out the <a href=\"https:\/\/www.anychart.com\/blog\/2022\/02\/11\/calendar-chart-js\/\">Calendar Chart Tutorial<\/a> by Shachee Swadia, exclusively published on our blog earlier, visualizing Mike Bostock&#8217;s contributions on GitHub, as well as our other <a href=\"https:\/\/www.anychart.com\/blog\/category\/javascript-chart-tutorials\/\">JavaScript charting tutorials<\/a>.<\/p>\n<p>Eager to contribute a cool guest post? Feel free to <a href=\"https:\/\/www.anychart.com\/support\/\">reach out<\/a> with your ideas.<\/strong><\/em><\/p>\n<hr \/>\n<p><!-- SyntaxHighlighter --><link rel=\"stylesheet\" href=\"\/\/cdnjs.cloudflare.com\/ajax\/libs\/highlight.js\/9.12.0\/styles\/default.min.css\"><link rel=\"stylesheet\" href=\"\/\/cdnjs.cloudflare.com\/ajax\/libs\/highlight.js\/9.12.0\/styles\/atom-one-light.min.css\"><script src=\"\/\/cdnjs.cloudflare.com\/ajax\/libs\/highlight.js\/9.12.0\/highlight.min.js\"><\/script><script>hljs.initHighlightingOnLoad();<\/script><\/p>\n<!-- AddThis Advanced Settings generic via filter on the_content --><!-- AddThis Share Buttons generic via filter on the_content -->","protected":false},"excerpt":{"rendered":"<p>Building an interactive calendar chart from scratch may initially seem daunting and time-consuming. However, I&#39;m here to show you it&#39;s not only manageable but straightforward once you know the steps. Whether you&#39;re developing a scheduling application, tracking events, or looking to enhance your web page with a sleek calendar graphic, this tutorial is designed specifically [&hellip;]<!-- AddThis Advanced Settings generic via filter on get_the_excerpt --><!-- AddThis Share Buttons generic via filter on get_the_excerpt --><\/p>\n","protected":false},"author":26,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[5,23,13,279,4],"tags":[619,618,53,3173,3512,260,3648,3272,1758,3149,284,127,258,471,266,620,1292,880,806,1759,3352,509,2220,54,1389,1760,2757,256,3377,1111,844,165,313,1370,743,133,774,775,179,2842,3613,1498,805,95,2013,2014,32,55,144,146,36,3649,907,141,249,3111,81,57,1238,142,96,99,3586,58,65,56,101,3526,1937,2335,1938,3630,459,609,3099,30,172,807,808,954,3619,610,3100,1939,2816,1763,804,3406,3407],"class_list":["post-17130","post","type-post","status-publish","format-standard","hentry","category-anychart-charting-component","category-html5","category-javascript","category-javascript-chart-tutorials","category-tips-and-tricks","tag-analysis","tag-analytics","tag-anychart","tag-app-development","tag-best-data-analytics-solution","tag-best-data-visualization-examples","tag-calendar","tag-calendar-chart","tag-chart-design","tag-chart-development","tag-chart-examples","tag-chart-types","tag-charts","tag-data-analysis","tag-data-analytics","tag-data-analytics-examples","tag-data-chart","tag-data-charting","tag-data-charts","tag-data-design","tag-data-graphic","tag-data-graphics","tag-data-visual","tag-data-visualization","tag-data-visualization-best-pracices","tag-data-visualization-design","tag-data-visualization-development","tag-data-visualization-examples","tag-data-visualization-guide","tag-data-visualization-practice","tag-data-visualization-tutorial","tag-data-visualizations","tag-data-visuals","tag-data-viz-examples","tag-data-viz","tag-dataviz","tag-dataviz-examples","tag-dataviz-projects","tag-design","tag-dev-community","tag-dev-to","tag-example","tag-front-end-development","tag-graphics-library","tag-html","tag-html-charts","tag-html5","tag-html5-charts","tag-infographics","tag-interactive-data-visualization","tag-javascript","tag-javascript-calendar","tag-javascript-chart-tutorial","tag-javascript-charting","tag-javascript-charting-api","tag-javascript-charting-features","tag-javascript-charting-library","tag-javascript-charts","tag-javascript-graph","tag-javascript-graphics","tag-javascript-graphics-library","tag-javascript-library","tag-js","tag-js-chart","tag-js-charting","tag-js-charts","tag-js-graphics","tag-js-library","tag-json","tag-json-charts","tag-json-data-visualization","tag-software-development","tag-statistics","tag-storytelling","tag-storytelling-examples","tag-tips-and-tricks","tag-tutorial","tag-visual-analysis","tag-visual-analytics","tag-visual-data-analytics","tag-visual-graphica","tag-visual-storytelling","tag-visual-storytelling-examples","tag-visualizing-json-data","tag-web-design","tag-web-developers","tag-web-development","tag-website","tag-website-development","wpautop"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.1.1 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Calendar Charts: Learn How to Create with JavaScript<\/title>\n<meta name=\"description\" content=\"Master interactive Calendar Chart creation using JavaScript and explore four years of JS charting tutorials on the AnyChart blog.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.anychart.com\/blog\/2024\/03\/04\/javascript-calendar-charts\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Creating Calendar Charts with JavaScript\" \/>\n<meta property=\"og:description\" content=\"Master interactive Calendar Chart creation using JavaScript and explore four years of JS charting tutorials on the AnyChart blog.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.anychart.com\/blog\/2024\/03\/04\/javascript-calendar-charts\/\" \/>\n<meta property=\"og:site_name\" content=\"AnyChart News\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/AnyCharts\" \/>\n<meta property=\"article:published_time\" content=\"2024-03-04T08:57:11+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-03-04T12:50:00+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.anychart.com\/blog\/wp-content\/uploads\/2024\/03\/calendar-chart-soc.png\" \/>\n<meta name=\"author\" content=\"Nick Gogin\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:title\" content=\"Creating Calendar Charts with JavaScript\" \/>\n<meta name=\"twitter:description\" content=\"Master interactive Calendar Chart creation using JavaScript and explore four years of JS charting tutorials on the AnyChart blog.\" \/>\n<meta name=\"twitter:image\" content=\"https:\/\/www.anychart.com\/blog\/wp-content\/uploads\/2024\/03\/calendar-chart-soc.png\" \/>\n<meta name=\"twitter:creator\" content=\"@AnyChart\" \/>\n<meta name=\"twitter:site\" content=\"@AnyChart\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Nick Gogin\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"13 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.anychart.com\/blog\/2024\/03\/04\/javascript-calendar-charts\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.anychart.com\/blog\/2024\/03\/04\/javascript-calendar-charts\/\"},\"author\":{\"name\":\"Nick Gogin\",\"@id\":\"https:\/\/www.anychart.com\/blog\/#\/schema\/person\/bfb1bd337f3eab61855176768fb68d7d\"},\"headline\":\"Creating Calendar Charts with JavaScript\",\"datePublished\":\"2024-03-04T08:57:11+00:00\",\"dateModified\":\"2024-03-04T12:50:00+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.anychart.com\/blog\/2024\/03\/04\/javascript-calendar-charts\/\"},\"wordCount\":1443,\"commentCount\":0,\"image\":{\"@id\":\"https:\/\/www.anychart.com\/blog\/2024\/03\/04\/javascript-calendar-charts\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.anychart.com\/blog\/wp-content\/uploads\/2024\/03\/CALENDAR-CHART-min.png\",\"keywords\":[\"analysis\",\"analytics\",\"AnyChart\",\"app development\",\"best data analytics solution\",\"best data visualization examples\",\"calendar\",\"calendar chart\",\"chart design\",\"chart development\",\"chart examples\",\"chart types\",\"charts\",\"data analysis\",\"data analytics\",\"data analytics examples\",\"data chart\",\"data charting\",\"data charts\",\"data design\",\"data graphic\",\"data graphics\",\"data visual\",\"Data Visualization\",\"data visualization best practices\",\"data visualization design\",\"data visualization development\",\"data visualization examples\",\"data visualization guide\",\"data visualization practice\",\"data visualization tutorial\",\"data visualizations\",\"data visuals\",\"data viz examples\",\"data-viz\",\"dataviz\",\"dataviz examples\",\"dataviz projects\",\"design\",\"DEV Community\",\"DEV.to\",\"example\",\"front-end development\",\"graphics library\",\"HTML\",\"HTML charts\",\"HTML5\",\"html5 charts\",\"infographics\",\"interactive data visualization\",\"JavaScript\",\"JavaScript calendar\",\"javascript chart tutorial\",\"javascript charting\",\"javascript charting api\",\"JavaScript charting features\",\"JavaScript charting library\",\"javascript charts\",\"javascript graph\",\"javascript graphics\",\"JavaScript graphics library\",\"JavaScript library\",\"js\",\"js chart\",\"js charting\",\"js charts\",\"JS graphics\",\"js library\",\"JSON\",\"JSON charts\",\"JSON data visualization\",\"software development\",\"statistics\",\"storytelling\",\"storytelling examples\",\"Tips and tricks\",\"tutorial\",\"visual analysis\",\"visual analytics\",\"visual data analytics\",\"visual graphica\",\"visual storytelling\",\"visual storytelling examples\",\"visualizing JSON data\",\"web design\",\"web developers\",\"web development\",\"website\",\"website development\"],\"articleSection\":[\"AnyChart Charting Component\",\"HTML5\",\"JavaScript\",\"JavaScript Chart Tutorials\",\"Tips and Tricks\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.anychart.com\/blog\/2024\/03\/04\/javascript-calendar-charts\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.anychart.com\/blog\/2024\/03\/04\/javascript-calendar-charts\/\",\"url\":\"https:\/\/www.anychart.com\/blog\/2024\/03\/04\/javascript-calendar-charts\/\",\"name\":\"Calendar Charts: Learn How to Create with JavaScript\",\"isPartOf\":{\"@id\":\"https:\/\/www.anychart.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.anychart.com\/blog\/2024\/03\/04\/javascript-calendar-charts\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.anychart.com\/blog\/2024\/03\/04\/javascript-calendar-charts\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.anychart.com\/blog\/wp-content\/uploads\/2024\/03\/CALENDAR-CHART-min.png\",\"datePublished\":\"2024-03-04T08:57:11+00:00\",\"dateModified\":\"2024-03-04T12:50:00+00:00\",\"author\":{\"@id\":\"https:\/\/www.anychart.com\/blog\/#\/schema\/person\/bfb1bd337f3eab61855176768fb68d7d\"},\"description\":\"Master interactive Calendar Chart creation using JavaScript and explore four years of JS charting tutorials on the AnyChart blog.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.anychart.com\/blog\/2024\/03\/04\/javascript-calendar-charts\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.anychart.com\/blog\/2024\/03\/04\/javascript-calendar-charts\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.anychart.com\/blog\/2024\/03\/04\/javascript-calendar-charts\/#primaryimage\",\"url\":\"https:\/\/www.anychart.com\/blog\/wp-content\/uploads\/2024\/03\/CALENDAR-CHART-min.png\",\"contentUrl\":\"https:\/\/www.anychart.com\/blog\/wp-content\/uploads\/2024\/03\/CALENDAR-CHART-min.png\",\"width\":1366,\"height\":768},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.anychart.com\/blog\/2024\/03\/04\/javascript-calendar-charts\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.anychart.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Creating Calendar Charts with JavaScript\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.anychart.com\/blog\/#website\",\"url\":\"https:\/\/www.anychart.com\/blog\/\",\"name\":\"AnyChart News\",\"description\":\"AnyChart JS Charts\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.anychart.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.anychart.com\/blog\/#\/schema\/person\/bfb1bd337f3eab61855176768fb68d7d\",\"name\":\"Nick Gogin\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.anychart.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/e2f74d2eaaa021377176541f70ed2e0fc86c8e3fcffd5a075792f8f45498ccc8?s=96&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/e2f74d2eaaa021377176541f70ed2e0fc86c8e3fcffd5a075792f8f45498ccc8?s=96&r=g\",\"caption\":\"Nick Gogin\"},\"url\":\"https:\/\/www.anychart.com\/blog\/author\/nick-gogin\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Calendar Charts: Learn How to Create with JavaScript","description":"Master interactive Calendar Chart creation using JavaScript and explore four years of JS charting tutorials on the AnyChart blog.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.anychart.com\/blog\/2024\/03\/04\/javascript-calendar-charts\/","og_locale":"en_US","og_type":"article","og_title":"Creating Calendar Charts with JavaScript","og_description":"Master interactive Calendar Chart creation using JavaScript and explore four years of JS charting tutorials on the AnyChart blog.","og_url":"https:\/\/www.anychart.com\/blog\/2024\/03\/04\/javascript-calendar-charts\/","og_site_name":"AnyChart News","article_publisher":"https:\/\/www.facebook.com\/AnyCharts","article_published_time":"2024-03-04T08:57:11+00:00","article_modified_time":"2024-03-04T12:50:00+00:00","og_image":[{"url":"https:\/\/www.anychart.com\/blog\/wp-content\/uploads\/2024\/03\/calendar-chart-soc.png","type":"","width":"","height":""}],"author":"Nick Gogin","twitter_card":"summary_large_image","twitter_title":"Creating Calendar Charts with JavaScript","twitter_description":"Master interactive Calendar Chart creation using JavaScript and explore four years of JS charting tutorials on the AnyChart blog.","twitter_image":"https:\/\/www.anychart.com\/blog\/wp-content\/uploads\/2024\/03\/calendar-chart-soc.png","twitter_creator":"@AnyChart","twitter_site":"@AnyChart","twitter_misc":{"Written by":"Nick Gogin","Est. reading time":"13 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.anychart.com\/blog\/2024\/03\/04\/javascript-calendar-charts\/#article","isPartOf":{"@id":"https:\/\/www.anychart.com\/blog\/2024\/03\/04\/javascript-calendar-charts\/"},"author":{"name":"Nick Gogin","@id":"https:\/\/www.anychart.com\/blog\/#\/schema\/person\/bfb1bd337f3eab61855176768fb68d7d"},"headline":"Creating Calendar Charts with JavaScript","datePublished":"2024-03-04T08:57:11+00:00","dateModified":"2024-03-04T12:50:00+00:00","mainEntityOfPage":{"@id":"https:\/\/www.anychart.com\/blog\/2024\/03\/04\/javascript-calendar-charts\/"},"wordCount":1443,"commentCount":0,"image":{"@id":"https:\/\/www.anychart.com\/blog\/2024\/03\/04\/javascript-calendar-charts\/#primaryimage"},"thumbnailUrl":"https:\/\/www.anychart.com\/blog\/wp-content\/uploads\/2024\/03\/CALENDAR-CHART-min.png","keywords":["analysis","analytics","AnyChart","app development","best data analytics solution","best data visualization examples","calendar","calendar chart","chart design","chart development","chart examples","chart types","charts","data analysis","data analytics","data analytics examples","data chart","data charting","data charts","data design","data graphic","data graphics","data visual","Data Visualization","data visualization best practices","data visualization design","data visualization development","data visualization examples","data visualization guide","data visualization practice","data visualization tutorial","data visualizations","data visuals","data viz examples","data-viz","dataviz","dataviz examples","dataviz projects","design","DEV Community","DEV.to","example","front-end development","graphics library","HTML","HTML charts","HTML5","html5 charts","infographics","interactive data visualization","JavaScript","JavaScript calendar","javascript chart tutorial","javascript charting","javascript charting api","JavaScript charting features","JavaScript charting library","javascript charts","javascript graph","javascript graphics","JavaScript graphics library","JavaScript library","js","js chart","js charting","js charts","JS graphics","js library","JSON","JSON charts","JSON data visualization","software development","statistics","storytelling","storytelling examples","Tips and tricks","tutorial","visual analysis","visual analytics","visual data analytics","visual graphica","visual storytelling","visual storytelling examples","visualizing JSON data","web design","web developers","web development","website","website development"],"articleSection":["AnyChart Charting Component","HTML5","JavaScript","JavaScript Chart Tutorials","Tips and Tricks"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.anychart.com\/blog\/2024\/03\/04\/javascript-calendar-charts\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.anychart.com\/blog\/2024\/03\/04\/javascript-calendar-charts\/","url":"https:\/\/www.anychart.com\/blog\/2024\/03\/04\/javascript-calendar-charts\/","name":"Calendar Charts: Learn How to Create with JavaScript","isPartOf":{"@id":"https:\/\/www.anychart.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.anychart.com\/blog\/2024\/03\/04\/javascript-calendar-charts\/#primaryimage"},"image":{"@id":"https:\/\/www.anychart.com\/blog\/2024\/03\/04\/javascript-calendar-charts\/#primaryimage"},"thumbnailUrl":"https:\/\/www.anychart.com\/blog\/wp-content\/uploads\/2024\/03\/CALENDAR-CHART-min.png","datePublished":"2024-03-04T08:57:11+00:00","dateModified":"2024-03-04T12:50:00+00:00","author":{"@id":"https:\/\/www.anychart.com\/blog\/#\/schema\/person\/bfb1bd337f3eab61855176768fb68d7d"},"description":"Master interactive Calendar Chart creation using JavaScript and explore four years of JS charting tutorials on the AnyChart blog.","breadcrumb":{"@id":"https:\/\/www.anychart.com\/blog\/2024\/03\/04\/javascript-calendar-charts\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.anychart.com\/blog\/2024\/03\/04\/javascript-calendar-charts\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.anychart.com\/blog\/2024\/03\/04\/javascript-calendar-charts\/#primaryimage","url":"https:\/\/www.anychart.com\/blog\/wp-content\/uploads\/2024\/03\/CALENDAR-CHART-min.png","contentUrl":"https:\/\/www.anychart.com\/blog\/wp-content\/uploads\/2024\/03\/CALENDAR-CHART-min.png","width":1366,"height":768},{"@type":"BreadcrumbList","@id":"https:\/\/www.anychart.com\/blog\/2024\/03\/04\/javascript-calendar-charts\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.anychart.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Creating Calendar Charts with JavaScript"}]},{"@type":"WebSite","@id":"https:\/\/www.anychart.com\/blog\/#website","url":"https:\/\/www.anychart.com\/blog\/","name":"AnyChart News","description":"AnyChart JS Charts","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.anychart.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/www.anychart.com\/blog\/#\/schema\/person\/bfb1bd337f3eab61855176768fb68d7d","name":"Nick Gogin","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.anychart.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/e2f74d2eaaa021377176541f70ed2e0fc86c8e3fcffd5a075792f8f45498ccc8?s=96&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/e2f74d2eaaa021377176541f70ed2e0fc86c8e3fcffd5a075792f8f45498ccc8?s=96&r=g","caption":"Nick Gogin"},"url":"https:\/\/www.anychart.com\/blog\/author\/nick-gogin\/"}]}},"_links":{"self":[{"href":"https:\/\/www.anychart.com\/blog\/wp-json\/wp\/v2\/posts\/17130","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.anychart.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.anychart.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.anychart.com\/blog\/wp-json\/wp\/v2\/users\/26"}],"replies":[{"embeddable":true,"href":"https:\/\/www.anychart.com\/blog\/wp-json\/wp\/v2\/comments?post=17130"}],"version-history":[{"count":18,"href":"https:\/\/www.anychart.com\/blog\/wp-json\/wp\/v2\/posts\/17130\/revisions"}],"predecessor-version":[{"id":17150,"href":"https:\/\/www.anychart.com\/blog\/wp-json\/wp\/v2\/posts\/17130\/revisions\/17150"}],"wp:attachment":[{"href":"https:\/\/www.anychart.com\/blog\/wp-json\/wp\/v2\/media?parent=17130"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.anychart.com\/blog\/wp-json\/wp\/v2\/categories?post=17130"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.anychart.com\/blog\/wp-json\/wp\/v2\/tags?post=17130"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}