{"id":1242,"date":"2020-06-14T20:17:10","date_gmt":"2020-06-14T20:17:10","guid":{"rendered":"http:\/\/bi.unija.com\/en\/?p=1242"},"modified":"2020-08-17T13:51:03","modified_gmt":"2020-08-17T13:51:03","slug":"dynamic-calendar-in-power-query-using-an-m-function","status":"publish","type":"post","link":"https:\/\/bi.unija.com\/en\/dynamic-calendar-in-power-query-using-an-m-function\/","title":{"rendered":"Dynamic Calendar in Power Query Using an M Function"},"content":{"rendered":"<p><em>In this article we\u2019ll create a dynamic calendar in Power Query editor, using a function written in M language.<\/em><\/p>\n<p>Calendar table is the most important table of Power BI model. We have seen how it looks in our <a href=\"https:\/\/bi.unija.com\/en\/calendar-in-power-bi\/\">Calendar in Power BI article<\/a>. There are several ways to create a calendar table. The steps we used in <a href=\"https:\/\/bi.unija.com\/en\/dynamic-calendar-in-power-query\/\">Dynamic Calendar in Power Query<\/a> article can be stored in a function, and used anytime we need to create a calendar table in our data model.<\/p>\n<h2>M Language<\/h2>\n<p>In our last article we made a dynamic calendar in Power Query. All the steps used to transform data in Power Query were stored in<strong> Applied Steps<\/strong> section. Every step generates a formula in M language and we can see the syntax in the formula field. We\u2019ll need a calendar table in every data model, so it\u2019s useful to use a pre-written function.<\/p>\n<h2>Creating dynamic calendar<\/h2>\n<p>We start the same way as we did in our last article. We connect to the data and open it in Power Query. There are several date columns in our data this time. We\u2019re only interested in Order Date and Payment Date in DateNTime table.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" width=\"836\" height=\"656\" class=\"wp-image-1243\" src=\"https:\/\/bi.unija.com\/en\/wp-content\/uploads\/sites\/2\/2020\/06\/word-image-21.png\" srcset=\"https:\/\/bi.unija.com\/en\/wp-content\/uploads\/sites\/2\/2020\/06\/word-image-21.png 836w, https:\/\/bi.unija.com\/en\/wp-content\/uploads\/sites\/2\/2020\/06\/word-image-21-300x235.png 300w, https:\/\/bi.unija.com\/en\/wp-content\/uploads\/sites\/2\/2020\/06\/word-image-21-768x603.png 768w\" sizes=\"(max-width: 836px) 100vw, 836px\" \/><\/p>\n<p><em>Data table with two relevant date fields.<\/em><\/p>\n<p>We have to beware of birthday data when creating a calendar table. We usually don\u2019t want birth dates in our calendar, because that would mean a much larger calendar table with a lot of irrelevant dates. Birthdays are usually not relevant to business data, so we can leave them out when creating a calendar table.<\/p>\n<p>We again want to merge Order Date and Payment Date into a single column. We create a reference by right-clicking DateNTime table and selecting <strong>Reference<\/strong>. We name the reference Calendar. We remove other fields by right-clicking on Order Date and selecting <strong>Remove Other Columns<\/strong>. We then calculate beginning of the year by right-clicking on the column and selecting <strong>Transform<\/strong> &gt; <strong>Year <\/strong>&gt; <strong>StartOfYear<\/strong>. We also remove the duplicates by right-clicking and selecting <strong>Remove Duplicates. <\/strong>We rename the field to Date. We create and edit reference for the Payment Date field in the same DateNTime table in the same way. We then join the references: we select <strong>Append Queries <\/strong>in Calendar table and select the other table, named Calendar1 in our case. We again remove the duplicates. We are left with starts of dates from both starting columns. We rename this new field to Date.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" width=\"776\" height=\"651\" class=\"wp-image-1244\" src=\"https:\/\/bi.unija.com\/en\/wp-content\/uploads\/sites\/2\/2020\/06\/word-image-23.png\" srcset=\"https:\/\/bi.unija.com\/en\/wp-content\/uploads\/sites\/2\/2020\/06\/word-image-23.png 776w, https:\/\/bi.unija.com\/en\/wp-content\/uploads\/sites\/2\/2020\/06\/word-image-23-300x252.png 300w, https:\/\/bi.unija.com\/en\/wp-content\/uploads\/sites\/2\/2020\/06\/word-image-23-768x644.png 768w\" sizes=\"(max-width: 776px) 100vw, 776px\" \/><\/p>\n<p><em>Both relevant date fields, merged to one field.<\/em><\/p>\n<p>Now we can create a new query using a function, that will generate all the dates between the starting and ending year of the column. In the Queries window we right-click and select <strong>New Query &gt; Blank Query<\/strong>. We then open <strong>Advanced Editor <\/strong>and paste the function below:<\/p>\n<table>\n<tbody>\n<tr>\n<td>(TableName as table,ColumnName as text)=&gt;<\/p>\n<p>let<\/p>\n<p>Source = TableName,<\/p>\n<p>#&#8221;Removed Other Columns&#8221; = Table.SelectColumns(Source,{ColumnName}),<\/p>\n<p>#&#8221;Renamed Columns&#8221; = Table.RenameColumns(#&#8221;Removed Other Columns&#8221;,{{ColumnName, &#8220;Date&#8221;}}),<\/p>\n<p>#&#8221;Calculated Start of Year&#8221; = Table.TransformColumns(#&#8221;Renamed Columns&#8221;,{{&#8220;Date&#8221;, Date.StartOfYear, type date}}),<\/p>\n<p>#&#8221;Removed Duplicates&#8221; = Table.Distinct(#&#8221;Calculated Start of Year&#8221;),<\/p>\n<p>#&#8221;Duplicated Column&#8221; = Table.DuplicateColumn(#&#8221;Removed Duplicates&#8221;, &#8220;Date&#8221;, &#8220;Date &#8211; Copy&#8221;),<\/p>\n<p>#&#8221;Renamed Columns1&#8243; = Table.RenameColumns(#&#8221;Duplicated Column&#8221;,{{&#8220;Date &#8211; Copy&#8221;, &#8220;Date2&#8243;}}),<\/p>\n<p>#&#8221;Calculated End of Year&#8221; = Table.TransformColumns(#&#8221;Renamed Columns1&#8243;,{{&#8220;Date2&#8243;, Date.EndOfYear, type date}}),<\/p>\n<p>Base = Table.TransformColumnTypes(#&#8221;Calculated End of Year&#8221;,{{&#8220;Date&#8221;, Int64.Type}, {&#8220;Date2&#8243;, Int64.Type}}),<\/p>\n<p>MinDate = List.Min(Base[Date]),<\/p>\n<p>MaxDate = List.Max(Base[Date2]),<\/p>\n<p>Custom2 = {MinDate..MaxDate},<\/p>\n<p>#&#8221;Converted to Table&#8221; = Table.FromList(Custom2, Splitter.SplitByNothing(), null, null, ExtraValues.Error),<\/p>\n<p>#&#8221;Renamed Columns2&#8243; = Table.RenameColumns(#&#8221;Converted to Table&#8221;,{{&#8220;Column1&#8221;, &#8220;Date&#8221;}}),<\/p>\n<p>#&#8221;Changed Type&#8221; = Table.TransformColumnTypes(#&#8221;Renamed Columns2&#8243;,{{&#8220;Date&#8221;, type date}}),<\/p>\n<p>#&#8221;Inserted Month&#8221; = Table.AddColumn(#&#8221;Changed Type&#8221;, &#8220;Month No&#8221;, each Date.Month([Date]), Int64.Type),<\/p>\n<p>#&#8221;Inserted Year&#8221; = Table.AddColumn(#&#8221;Inserted Month&#8221;, &#8220;Year&#8221;, each Date.Year([Date]), Int64.Type),<\/p>\n<p>#&#8221;Inserted Month Name&#8221; = Table.AddColumn(#&#8221;Inserted Year&#8221;, &#8220;Month&#8221;, each Text.Upper(Text.Start(Date.MonthName([Date]),3)), type text),<\/p>\n<p>#&#8221;Inserted Quarter&#8221; = Table.AddColumn(#&#8221;Inserted Month Name&#8221;, &#8220;Quarter&#8221;, each &#8220;Q&#8221;&amp;Text.From(Date.QuarterOfYear([Date])), type text),<\/p>\n<p>#&#8221;Added Custom&#8221; = Table.AddColumn(#&#8221;Inserted Quarter&#8221;, &#8220;YM&#8221;, each if [Month No]&gt;9 then &#8220;-&#8221; &amp; Text.From([Month No]) else &#8220;-0&#8243; &amp; Text.From([Month No])),<\/p>\n<p>#&#8221;Added Custom1&#8243; = Table.AddColumn(#&#8221;Added Custom&#8221;, &#8220;Year Month&#8221;, each Text.From([Year])&amp;[YM]),<\/p>\n<p>#&#8221;Removed Columns&#8221; = Table.RemoveColumns(#&#8221;Added Custom1&#8243;,{&#8220;YM&#8221;}),<\/p>\n<p>#&#8221;Changed Type1&#8243; = Table.TransformColumnTypes(#&#8221;Removed Columns&#8221;,{{&#8220;Year Month&#8221;, type text}}),<\/p>\n<p>#&#8221;Inserted Day of Week&#8221; = Table.AddColumn(#&#8221;Changed Type1&#8243;, &#8220;Weekday No&#8221;, each Date.DayOfWeek([Date]), Int64.Type),<\/p>\n<p>#&#8221;Inserted Day Name&#8221; = Table.AddColumn(#&#8221;Inserted Day of Week&#8221;, &#8220;Weekday&#8221;, each Text.Upper(Text.Start(Date.DayOfWeekName([Date]),3)), type text),<\/p>\n<p>#&#8221;Inserted Week of Year&#8221; = Table.AddColumn(#&#8221;Inserted Day Name&#8221;, &#8220;Week of Year&#8221;, each Date.WeekOfYear([Date]), Int64.Type),<\/p>\n<p>#&#8221;Added Custom2&#8243; = Table.AddColumn(#&#8221;Inserted Week of Year&#8221;, &#8220;Custom&#8221;, each if [Week of Year]&gt;9 then Text.From([Week of Year]) else &#8220;0&#8221;&amp;Text.From([Week of Year])),<\/p>\n<p>#&#8221;Added Custom3&#8243; = Table.AddColumn(#&#8221;Added Custom2&#8243;, &#8220;Week&#8221;, each &#8220;W&#8221;&amp;[Custom]),<\/p>\n<p>#&#8221;Removed Columns1&#8243; = Table.RemoveColumns(#&#8221;Added Custom3&#8221;,{&#8220;Week of Year&#8221;, &#8220;Custom&#8221;})<\/p>\n<p>in<\/p>\n<p>#&#8221;Removed Columns1&#8243;<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p><em>M function that creates a table of all the dates for a selected field. We have a column of the first dates for the years between 2000 and 2020 in our example. Function will generate a table of all the dates between 1.1.2000 and 31.12.2020. Table will also contain date attributes like day, week, querter and year.<\/em><\/p>\n<p>We confirm the entry with <strong>Done<\/strong>. Function we created now has two entry fields for parameters:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" width=\"786\" height=\"419\" class=\"wp-image-1245\" src=\"https:\/\/bi.unija.com\/en\/wp-content\/uploads\/sites\/2\/2020\/06\/word-image-25.png\" srcset=\"https:\/\/bi.unija.com\/en\/wp-content\/uploads\/sites\/2\/2020\/06\/word-image-25.png 786w, https:\/\/bi.unija.com\/en\/wp-content\/uploads\/sites\/2\/2020\/06\/word-image-25-300x160.png 300w, https:\/\/bi.unija.com\/en\/wp-content\/uploads\/sites\/2\/2020\/06\/word-image-25-768x409.png 768w\" sizes=\"(max-width: 786px) 100vw, 786px\" \/><\/p>\n<p><em>M function offers a list of parameters.<\/em><\/p>\n<p>For TableName we select table Calendar and for ColumnName we enter column name Date. We then click Invoke. Function creates a query and a table named Invoked function, that contains all the dates from the beginning of the earliest to the end of the latest year. Table also includes date attributes like day, week, month, quarter and year.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" width=\"951\" height=\"601\" class=\"wp-image-1246\" src=\"https:\/\/bi.unija.com\/en\/wp-content\/uploads\/sites\/2\/2020\/06\/word-image-27.png\" srcset=\"https:\/\/bi.unija.com\/en\/wp-content\/uploads\/sites\/2\/2020\/06\/word-image-27.png 951w, https:\/\/bi.unija.com\/en\/wp-content\/uploads\/sites\/2\/2020\/06\/word-image-27-300x190.png 300w, https:\/\/bi.unija.com\/en\/wp-content\/uploads\/sites\/2\/2020\/06\/word-image-27-768x485.png 768w\" sizes=\"(max-width: 951px) 100vw, 951px\" \/><\/p>\n<p><em>Finished calendar table.<\/em><\/p>\n<p>Data is now ready. Before loading the data to a model, we turn off loading for the tables that are not relevant for us. In this case, these are tables Calendar and Calendar1. We right-click on each table and remove the tick at <strong>Enable load<\/strong>. Tables are now written in italic font, meaning they will not be loaded to the model.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" width=\"451\" height=\"668\" class=\"wp-image-1247\" src=\"https:\/\/bi.unija.com\/en\/wp-content\/uploads\/sites\/2\/2020\/06\/word-image-28.png\" srcset=\"https:\/\/bi.unija.com\/en\/wp-content\/uploads\/sites\/2\/2020\/06\/word-image-28.png 451w, https:\/\/bi.unija.com\/en\/wp-content\/uploads\/sites\/2\/2020\/06\/word-image-28-203x300.png 203w\" sizes=\"(max-width: 451px) 100vw, 451px\" \/><\/p>\n<p><em>We disable loading for the tables that are not relevant.<\/em><\/p>\n<p>Finally, we import data with <strong>Close &amp; Apply.<\/strong><\/p>\n<h2>Why M function is a better choice than CALENDARAUTO()<\/h2>\n<p><strong>CALENDARAUTO() <\/strong>reads all the dates in our data. If we have birthday dates in our data, we will get a very large calendar table that will slow down our data model. This is why using M function is a better way to create a dynamic calendar table.<\/p>\n<p>Another problem with <strong>CALENDARAUTO() <\/strong>is that it also reads time and treats it as a date. Every time data will be treated as a date 0.1.1900, since this is the first day Power BI uses to count dates. Using <strong>CALENDARAUTO() <\/strong>will generate a calendar table of dates starting with 1.1.1899 (since 0.1.1900 doesn\u2019t exist). We\u2019ll discuss more about date and time in Power BI in our next article. In conclusion, method described in this article gives us more control than other methods or functions.<\/p>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In this article we\u2019ll create a dynamic calendar in Power Query editor, using a function written in M language. Calendar table is the most important table of Power BI model. We have seen how it looks in our Calendar in<\/p>\n","protected":false},"author":5,"featured_media":1203,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[3],"tags":[6,8],"class_list":["post-1242","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-intermediate","tag-calendar","tag-power-bi"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v25.6 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Create Dynamic Calendar in Power BI with M function - Unija Smart<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/bi.unija.com\/en\/dynamic-calendar-in-power-query-using-an-m-function\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Create Dynamic Calendar in Power BI with M function - Unija Smart\" \/>\n<meta property=\"og:description\" content=\"In this article we\u2019ll create a dynamic calendar in Power Query editor, using a function written in M language. Calendar table is the most important table of Power BI model. We have seen how it looks in our Calendar in\" \/>\n<meta property=\"og:url\" content=\"https:\/\/bi.unija.com\/en\/dynamic-calendar-in-power-query-using-an-m-function\/\" \/>\n<meta property=\"og:site_name\" content=\"Bi Unija\" \/>\n<meta property=\"article:published_time\" content=\"2020-06-14T20:17:10+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2020-08-17T13:51:03+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/bi.unija.com\/en\/wp-content\/uploads\/sites\/2\/2020\/06\/ENG5.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"720\" \/>\n\t<meta property=\"og:image:height\" content=\"480\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Branka Trifunovi\u0107\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Branka Trifunovi\u0107\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"6 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/bi.unija.com\/en\/dynamic-calendar-in-power-query-using-an-m-function\/\",\"url\":\"https:\/\/bi.unija.com\/en\/dynamic-calendar-in-power-query-using-an-m-function\/\",\"name\":\"Create Dynamic Calendar in Power BI with M function - Unija Smart\",\"isPartOf\":{\"@id\":\"https:\/\/bi.unija.com\/en\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/bi.unija.com\/en\/dynamic-calendar-in-power-query-using-an-m-function\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/bi.unija.com\/en\/dynamic-calendar-in-power-query-using-an-m-function\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/bi.unija.com\/en\/wp-content\/uploads\/sites\/2\/2020\/06\/ENG5.jpg\",\"datePublished\":\"2020-06-14T20:17:10+00:00\",\"dateModified\":\"2020-08-17T13:51:03+00:00\",\"author\":{\"@id\":\"https:\/\/bi.unija.com\/en\/#\/schema\/person\/3bed36623727c7162e421c4366a54e10\"},\"breadcrumb\":{\"@id\":\"https:\/\/bi.unija.com\/en\/dynamic-calendar-in-power-query-using-an-m-function\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/bi.unija.com\/en\/dynamic-calendar-in-power-query-using-an-m-function\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/bi.unija.com\/en\/dynamic-calendar-in-power-query-using-an-m-function\/#primaryimage\",\"url\":\"https:\/\/bi.unija.com\/en\/wp-content\/uploads\/sites\/2\/2020\/06\/ENG5.jpg\",\"contentUrl\":\"https:\/\/bi.unija.com\/en\/wp-content\/uploads\/sites\/2\/2020\/06\/ENG5.jpg\",\"width\":720,\"height\":480},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/bi.unija.com\/en\/dynamic-calendar-in-power-query-using-an-m-function\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/bi.unija.com\/en\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Dynamic Calendar in Power Query Using an M Function\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/bi.unija.com\/en\/#website\",\"url\":\"https:\/\/bi.unija.com\/en\/\",\"name\":\"Bi Unija\",\"description\":\"Just another Bi site\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/bi.unija.com\/en\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/bi.unija.com\/en\/#\/schema\/person\/3bed36623727c7162e421c4366a54e10\",\"name\":\"Branka Trifunovi\u0107\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/bi.unija.com\/en\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/ec99f651bcc98a163161515ec254b974?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/ec99f651bcc98a163161515ec254b974?s=96&d=mm&r=g\",\"caption\":\"Branka Trifunovi\u0107\"},\"url\":\"https:\/\/bi.unija.com\/en\/author\/branka\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Create Dynamic Calendar in Power BI with M function - Unija Smart","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:\/\/bi.unija.com\/en\/dynamic-calendar-in-power-query-using-an-m-function\/","og_locale":"en_US","og_type":"article","og_title":"Create Dynamic Calendar in Power BI with M function - Unija Smart","og_description":"In this article we\u2019ll create a dynamic calendar in Power Query editor, using a function written in M language. Calendar table is the most important table of Power BI model. We have seen how it looks in our Calendar in","og_url":"https:\/\/bi.unija.com\/en\/dynamic-calendar-in-power-query-using-an-m-function\/","og_site_name":"Bi Unija","article_published_time":"2020-06-14T20:17:10+00:00","article_modified_time":"2020-08-17T13:51:03+00:00","og_image":[{"width":720,"height":480,"url":"https:\/\/bi.unija.com\/en\/wp-content\/uploads\/sites\/2\/2020\/06\/ENG5.jpg","type":"image\/jpeg"}],"author":"Branka Trifunovi\u0107","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Branka Trifunovi\u0107","Est. reading time":"6 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/bi.unija.com\/en\/dynamic-calendar-in-power-query-using-an-m-function\/","url":"https:\/\/bi.unija.com\/en\/dynamic-calendar-in-power-query-using-an-m-function\/","name":"Create Dynamic Calendar in Power BI with M function - Unija Smart","isPartOf":{"@id":"https:\/\/bi.unija.com\/en\/#website"},"primaryImageOfPage":{"@id":"https:\/\/bi.unija.com\/en\/dynamic-calendar-in-power-query-using-an-m-function\/#primaryimage"},"image":{"@id":"https:\/\/bi.unija.com\/en\/dynamic-calendar-in-power-query-using-an-m-function\/#primaryimage"},"thumbnailUrl":"https:\/\/bi.unija.com\/en\/wp-content\/uploads\/sites\/2\/2020\/06\/ENG5.jpg","datePublished":"2020-06-14T20:17:10+00:00","dateModified":"2020-08-17T13:51:03+00:00","author":{"@id":"https:\/\/bi.unija.com\/en\/#\/schema\/person\/3bed36623727c7162e421c4366a54e10"},"breadcrumb":{"@id":"https:\/\/bi.unija.com\/en\/dynamic-calendar-in-power-query-using-an-m-function\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/bi.unija.com\/en\/dynamic-calendar-in-power-query-using-an-m-function\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/bi.unija.com\/en\/dynamic-calendar-in-power-query-using-an-m-function\/#primaryimage","url":"https:\/\/bi.unija.com\/en\/wp-content\/uploads\/sites\/2\/2020\/06\/ENG5.jpg","contentUrl":"https:\/\/bi.unija.com\/en\/wp-content\/uploads\/sites\/2\/2020\/06\/ENG5.jpg","width":720,"height":480},{"@type":"BreadcrumbList","@id":"https:\/\/bi.unija.com\/en\/dynamic-calendar-in-power-query-using-an-m-function\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/bi.unija.com\/en\/"},{"@type":"ListItem","position":2,"name":"Dynamic Calendar in Power Query Using an M Function"}]},{"@type":"WebSite","@id":"https:\/\/bi.unija.com\/en\/#website","url":"https:\/\/bi.unija.com\/en\/","name":"Bi Unija","description":"Just another Bi site","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/bi.unija.com\/en\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/bi.unija.com\/en\/#\/schema\/person\/3bed36623727c7162e421c4366a54e10","name":"Branka Trifunovi\u0107","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/bi.unija.com\/en\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/ec99f651bcc98a163161515ec254b974?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/ec99f651bcc98a163161515ec254b974?s=96&d=mm&r=g","caption":"Branka Trifunovi\u0107"},"url":"https:\/\/bi.unija.com\/en\/author\/branka\/"}]}},"_links":{"self":[{"href":"https:\/\/bi.unija.com\/en\/wp-json\/wp\/v2\/posts\/1242"}],"collection":[{"href":"https:\/\/bi.unija.com\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/bi.unija.com\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/bi.unija.com\/en\/wp-json\/wp\/v2\/users\/5"}],"replies":[{"embeddable":true,"href":"https:\/\/bi.unija.com\/en\/wp-json\/wp\/v2\/comments?post=1242"}],"version-history":[{"count":3,"href":"https:\/\/bi.unija.com\/en\/wp-json\/wp\/v2\/posts\/1242\/revisions"}],"predecessor-version":[{"id":1379,"href":"https:\/\/bi.unija.com\/en\/wp-json\/wp\/v2\/posts\/1242\/revisions\/1379"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/bi.unija.com\/en\/wp-json\/wp\/v2\/media\/1203"}],"wp:attachment":[{"href":"https:\/\/bi.unija.com\/en\/wp-json\/wp\/v2\/media?parent=1242"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/bi.unija.com\/en\/wp-json\/wp\/v2\/categories?post=1242"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/bi.unija.com\/en\/wp-json\/wp\/v2\/tags?post=1242"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}