{"id":89978,"date":"2022-05-26T10:54:46","date_gmt":"2022-05-26T10:54:46","guid":{"rendered":"https:\/\/www.headout.com\/blog\/?p=89978"},"modified":"2023-08-10T21:26:13","modified_gmt":"2023-08-10T17:26:13","slug":"best-broadway-shows-january","status":"publish","type":"post","link":"https:\/\/www.headout.com\/blog\/best-broadway-shows-january\/","title":{"rendered":"Best Broadway shows in January, a New York theatre guide"},"content":{"rendered":"<p>Want some respite from the cold, yet some place that&#8217;s warm and entertaining? Head over to the New York Theatre District and grab tickets to the best Broadway shows running this January. Best prices. Easy tickets. 100% entertainment! <\/p>\n<h2>Best Broadway Shows in January<\/h2>\n<p>[tcb-script src=&#8221;https:\/\/cdn.jsdelivr.net\/npm\/dayjs@1.10.7\/dayjs.min.js&#8221;][\/tcb-script][tcb-script src=&#8221;https:\/\/unpkg.com\/dayjs@1.8.21\/plugin\/isSameOrAfter.js&#8221;][\/tcb-script][tcb-script src=&#8221;https:\/\/unpkg.com\/dayjs@1.8.21\/plugin\/isSameOrBefore.js&#8221;][\/tcb-script][tcb-script]  dayjs.extend(window.dayjs_plugin_isSameOrAfter);  dayjs.extend(window.dayjs_plugin_isSameOrBefore);  const getTGIDListForMonth = (allTours, displayMonth) =&gt; {    const allToursArray = Object.values(allTours);    const startMonthDate = dayjs(      `${displayMonth}\/01\/${dayjs().year()}`,      &#8220;MMMM\/DD\/YYYY&#8221;    );    const endMonthDate = startMonthDate.add(      startMonthDate.daysInMonth() &#8211; 1,      &#8220;days&#8221;    );    const startMonthNextYearDate = startMonthDate.add(1, &#8220;years&#8221;);    const endMonthNextYearDate = endMonthDate.add(1, &#8220;years&#8221;);    return allToursArray.reduce((accumulator, element) =&gt; {      const endTourDate = dayjs(element[&#8220;Closing Date&#8221;], &#8220;YYYY-MM-DD&#8221;);      const startTourDate = dayjs(element[&#8220;Opening Date&#8221;], &#8220;YYYY-MM-DD&#8221;);      if (        compareDates(          startMonthDate,          endMonthDate,          startTourDate,          endTourDate        ) ||        compareDates(          startMonthNextYearDate,          endMonthNextYearDate,          startTourDate,          endTourDate        )      ) {        return [&#8230;accumulator, element[&#8220;id&#8221;]];      }      return accumulator;    }, []);  };[\/tcb-script][tcb-script]  document.addEventListener(&#8220;DOMContentLoaded&#8221;, function (event) {    \/\/ Listicle Entry Animation    let slideInShows = function (animEleClass, animationClass) {      jQuery(&#8220;.show-wrapper .accBody:visible&#8221;).slideToggle(&#8220;slow&#8221;);      jQuery(&#8220;.show-wrapper .invert&#8221;).removeClass(&#8220;invert&#8221;);      jQuery(&#8220;.show-wrapper&#8221;)        .removeClass(animationClass)        .fadeOut()        .finish()        .promise()        .done(function () {          jQuery(&#8220;.&#8221; + animEleClass).each(function (i) {            jQuery(this)              .addClass(animationClass)              .removeClass(animEleClass)              .delay((i + 1) * 100)              .fadeIn();          });        });    };    \/\/ Loads All Listed Products as in Months Tab    let showTab = function (tabId) {      showTgids = [];      jQuery(&#8220;.show-wrapper&#8221;).removeClass(&#8220;tabbed&#8221;);      jQuery(&#8220;[data-infotab]&#8221;).removeClass(&#8220;active&#8221;);      jQuery(&#8216;[data-infotab=&#8221;broadway musicals&#8221;]&#8217;).addClass(&#8220;active&#8221;);      if (tabId == 0) {        jQuery(&#8220;.show-wrapper&#8221;).addClass(&#8220;prepare tabbed&#8221;);      } else if (typeof tabId === &#8220;string&#8221;) showTgids = tabId?.split(&#8220;,&#8221;);      else showTgids.push(tabId);      for (let i = 0; i &lt; showTgids?.length; i++)        jQuery(          &#8220;.show-wrapper[data-tgid=&#8221; + parseInt(showTgids[i]) + &#8220;]&#8221;        ).addClass(&#8220;tabbed prepare&#8221;);      slideInShows(&#8220;prepare&#8221;, &#8220;active&#8221;);    };    const msToTime = (duration) =&gt; {      let milliseconds = parseInt((duration % 1000) \/ 100),        seconds = Math.floor((duration \/ 1000) % 60),        minutes = Math.floor((duration \/ (1000 * 60)) % 60),        hours = Math.floor((duration \/ (1000 * 60 * 60)) % 24);      return hours + &#8221; hrs &#8221; + minutes + &#8221; mins&#8221;;    };    \/\/ HTML Stars Generation    let getStars = function (rating) {      rating = rating &lt; 0 ? 0 : rating;      if (rating &lt; 0.25) return;      let round = Math.floor(rating);      let full = rating &gt; round + 0.5 ? true : false;      let half = rating &gt; round + 0.25 ? true : false;      let template = &#8220;&#8221;;      let i;      \/\/ Populate Complete Stars      for (i = 0; i &lt; round &amp;&amp; i &lt; 5; i++) {        template += &#8220;&lt;span class=&#8217;fas fa-star&#8217;&gt;&lt;\/span&gt;&#8221;;      }      \/\/ Add Partial Star (for floating ratings)      if (full &amp;&amp; i &lt; 5 &amp;&amp; ++i) template += &#8220;&lt;span class=&#8217;fas fa-star&#8217;&gt;&lt;\/span&gt;&#8221;;      else if (half &amp;&amp; i &lt; 5 &amp;&amp; ++i)        template += &#8220;&lt;span class=&#8217;fas fa-star-half-alt&#8217;&gt;&lt;\/span&gt;&#8221;;      \/\/ Populate Remaining With Empty Stars      while (i++ &lt; 5) template += &#8220;&lt;span class=&#8217;far fa-star&#8217;&gt;&lt;\/span&gt;&#8221;;      return template;    };    const getMicroBrandsHighlightsData = (microBrandsHighlight) =&gt; {      const result = {        &#8220;Opening Date&#8221;: &#8220;&#8221;,        &#8220;Closing Date&#8221;: &#8220;&#8221;,      };      let currentObject = &#8220;&#8221;;      microBrandsHighlight.forEach((element) =&gt; {        if (          element.type == &#8220;heading6&#8221; &amp;&amp;          element.content.text == &#8220;Opening Date&#8221;        ) {          currentObject = &#8220;Opening Date&#8221;;        } else if (          element.type == &#8220;heading6&#8221; &amp;&amp;          element.content.text == &#8220;Closing Date&#8221;        ) {          currentObject = &#8220;Closing Date&#8221;;        } else {          if (currentObject == &#8220;Opening Date&#8221;) {            result[&#8220;Opening Date&#8221;] = element.content.text;          } else if (currentObject == &#8220;Closing Date&#8221;) {            result[&#8220;Closing Date&#8221;] = element.content.text;          }          currentObject = &#8220;&#8221;;        }      });      return result;    };    const monthSubCategoryFilter = jQuery(&#8220;.month-sub-category-filter&#8221;);    const filterEnabled = monthSubCategoryFilter.data(&#8220;filter-enabled&#8221;) === 1;    const categoryNameMap = {};    const filterHeading = monthSubCategoryFilter?.[0].getAttribute(      &#8220;data-filter-heading&#8221;    );    const subCategoryIds = monthSubCategoryFilter?.[0]      .getAttribute(&#8220;data-sub-category-ids&#8221;)      ?.split(&#8220;,&#8221;);    const monthCSV = monthSubCategoryFilter?.[0]      ?.getAttribute(&#8220;data-months&#8221;)      ?.split(&#8220;,&#8221;)      ?.filter((d) =&gt; d !== &#8220;&#8221;);    const firstMonth = monthCSV?.[0];    let allTours = [];    const getRatingStar = (rating) =&gt; {      let starMarkup = &#8220;&#8221;;      const coloredStar = Math.floor(rating);      const isRatingDecimal = rating &#8211; coloredStar != 0;      const uncoloredStar = Math.floor(5 &#8211; rating);      for (let i = 1; i &lt;= coloredStar; i++) {        starMarkup += `&lt;i aria-hidden=&#8221;true&#8221;&gt;&lt;\/i&gt;`;      }      if (isRatingDecimal) {        starMarkup += `&lt;i aria-hidden=&#8221;true&#8221;&gt;&lt;\/i&gt;`;      }      for (let i = 1; i &lt;= uncoloredStar; i++) {        starMarkup += `&lt;i aria-hidden=&#8221;true&#8221;&gt;&lt;\/i&gt;`;      }      return starMarkup;    };    const functionsAfterDataUpdate = () =&gt; {      allTours.forEach((tour, index) =&gt; {        if (tour?.listingPrice) {          const opening = getMicroBrandsHighlightsData(            tour.microBrandsHighlight          )[&#8220;Opening Date&#8221;];          const tourImageUrl = `${tour.imageUrl}?auto=compress&amp;w=500&amp;h=250&amp;crop=faces&amp;fit=min`;          const mainCard = `&lt;div data-rating=&#8221;${            tour.averageRating          }&#8221; data-tgid=&#8221;${tour.id}&#8221; data-open=&#8221;${opening}&#8221;&gt;                  &lt;a href=&#8221;https:\/\/www.headout.com\/tour\/${                    tour.id                  }&#8221; target=&#8221;_blank&#8221; data-id=&#8221;${index}&#8221;&gt;&lt;span&gt;&lt;\/span&gt;&lt;\/a&gt;                                    &lt;div&gt;                  &lt;picture&gt;                      &lt;source type=&#8221;image\/webp&#8221; data-srcset=&#8221;${tourImageUrl}&#8221;&gt;                      &lt;img data-src=&#8221;${tourImageUrl}&#8221; data-sizes=&#8221;auto&#8221; alt=&#8221;${            tour.name          }&#8221; sizes=&#8221;275px&#8221; loading=&#8221;lazy&#8221; src=&#8221;${tourImageUrl}&#8221;&gt;                  &lt;\/picture&gt;                  &lt;\/div&gt;                  &lt;div&gt;                  &lt;div&gt;                      &lt;div&gt;                      &lt;div&gt;${                        tour.primaryCategory.displayName                      }&lt;\/div&gt;                      &lt;div&gt;${tour.name}&lt;\/div&gt;                      &lt;\/div&gt;                      ${                        tour.averageRating != 0                          ? `&lt;div&gt;                              &lt;div&gt;                                  &lt;div&gt;&lt;span&gt;${getRatingStar(                                    tour.averageRating                                  )} &lt;\/span&gt;&lt;\/div&gt;                              &lt;\/div&gt;                          &lt;\/div&gt;`                          : `&lt;div&gt;New Arrival&lt;\/div&gt;`                      }                  &lt;\/div&gt;                  &lt;div&gt;                    &lt;div&gt;                        ${                          tour.listingPrice.bestDiscount != 0                            ? `&lt;div&gt;                                &lt;div&gt;&lt;span&gt;upto ${tour.listingPrice.bestDiscount}% off&lt;\/span&gt;&lt;\/div&gt;                                &lt;\/div&gt;`                            : &#8220;&#8221;                        }                        &lt;\/div&gt;                    &lt;div&gt;                                                      ${tour.tags                                                        .map(                                                          (item) =&gt;                                                            `&lt;div data-cat=&#8221;${item}&#8221;&gt;${categoryNameMap[item]}&lt;\/div&gt;`                                                        )                                                        .join(&#8221; &#8220;)}                                                      &lt;\/div&gt;                                    &lt;div&gt;                      &lt;div&gt;&lt;span&gt;from&lt;\/span&gt;&lt;\/div&gt;                      &lt;div&gt;                        ${                          tour.listingPrice.originalPrice !=                            tour.listingPrice.finalPrice &amp;&amp;                          tour.listingPrice.originalPrice &gt;                            tour.listingPrice.finalPrice                            ? `&lt;span&gt;\u00a3${tour.listingPrice.originalPrice}&lt;\/span&gt;`                            : &#8220;&#8221;                        }                          &lt;span&gt;\u00a3${tour.listingPrice.finalPrice}&lt;\/span&gt;                      &lt;\/div&gt;                      &lt;\/div&gt;                  &lt;\/div&gt;                                    &lt;\/div&gt;              &lt;\/div&gt;                      `;          const htmlObject = `${mainCard}&lt;\/div&gt; `;          jQuery(&#8220;.page-card-wrapper&#8221;).append(htmlObject);          jQuery(`.show-wrapper[data-tgid=${tour.id}]`)            .find(&#8220;[data-show-ratings]&#8221;)            .html(getStars(tour.averageRating));        }      });      jQuery(&#8220;.accCtrl&#8221;).on(&#8220;click&#8221;, function (e) {        selEle = jQuery(e.target).closest(&#8220;.show-wrapper&#8221;);        jQuery(selEle).find(&#8220;.listicle-item-arrow&#8221;).toggleClass(&#8220;invert&#8221;);        target = jQuery(selEle).find(&#8220;.accBody&#8221;);        console.log(target);        jQuery(target).slideToggle(&#8220;slow&#8221;);      });      filterEnabled &amp;&amp;        monthCSV.forEach((month, index) =&gt; {          const monthName = month.trim();          const isSingleMonth = monthCSV?.length === 1;          console.log(isSingleMonth);          let htmlObject;          let ids = &#8220;0&#8221;;          if (monthName != &#8220;ALL SHOWS&#8221;) {            ids = getTGIDListForMonth(allTours, monthName).join();          }          if (index == 0) {            htmlObject = `&lt;divhide-tab&#8221; : &#8220;&#8221;            }&#8221; data-tab=&#8221;${              index + 1            }&#8221; data-ids=&#8221;${ids}&#8221; data-active=&#8221;1&#8243; &gt; ${monthName}&lt;\/div&gt; `;          } else {            htmlObject = `&lt;div data-tab=&#8221;${              index + 1            }&#8221; data-ids=&#8221;${ids}&#8221; data-active=&#8221;0&#8243;&gt;${monthName}&lt;\/div&gt;`;          }          jQuery(&#8220;.shows-filters .tab-wrapper .mobi-text .mobi-wrap&#8221;).append(            htmlObject          );        });      \/\/ Page Init Products List Generation      showTab(        jQuery(&#8220;.tab-item[data-active=&#8217;1&#8242;]&#8221;).addClass(&#8220;active&#8221;).data(&#8220;ids&#8221;)      );      \/\/ Months Tab Change Handler      jQuery(&#8220;.tab-item&#8221;).click(function () {        jQuery(&#8220;.tab-item&#8221;).data(&#8220;active&#8221;, 0).removeClass(&#8220;active&#8221;);        jQuery(this).data(&#8220;active&#8221;, 1).addClass(&#8220;active&#8221;);        jQuery(this)          .closest(&#8220;.mobi-text&#8221;)          .find(&#8220;.text&#8221;)          .text(jQuery(this).text());        showTab(jQuery(this).data(&#8220;ids&#8221;));        jQuery(jQuery(&#8220;input.filter-chckbox:checked&#8221;).prop(&#8220;checked&#8221;, false));        jQuery(&#8220;.cat-filter label:first-child&#8221;).delay(500).trigger(&#8220;click&#8221;);      });      \/\/ On Window Resize Hide Mobile Months Tab.      jQuery(window).resize(function (e) {        if (jQuery(window).width() &gt; 630)          jQuery(&#8220;.mobi-wrap&#8221;).attr(&#8220;style&#8221;, &#8220;&#8221;);      });      if (monthCSV?.length === 1) {        jQuery(&#8220;.mobi-text&#8221;).addClass(&#8220;hide-tab&#8221;);      }      \/\/ Mobile Months Tabs Change Handler      jQuery(&#8220;.mobi-text&#8221;).click(function (e) {        if (          jQuery(&#8220;.mobi-wrap&#8221;).is(&#8220;:hidden&#8221;) ||          jQuery(this).hasClass(&#8220;active&#8221;)        )          jQuery(this)            .closest(&#8220;.mobi-text&#8221;)            .toggleClass(&#8220;active&#8221;)            .find(&#8220;.mobi-wrap&#8221;)            .slideToggle(&#8220;slow&#8221;);      });      \/\/ Category Change Handler      jQuery(&#8220;[data-filter-cat]&#8221;).change(function (e) {        jQuery(&#8220;[data-cat]&#8221;).removeClass(&#8220;mobi-active-filter&#8221;);        jQuery(&#8220;[data-infotab].active&#8221;).removeClass(&#8220;active&#8221;);        let catName = jQuery(this).data(&#8220;filter-cat&#8221;);        jQuery(`[data-infotab=&#8217;${catName.toLowerCase()}&#8217;]`).addClass(&#8220;active&#8221;);        jQuery(&#8220;[data-filter-cat]&#8221;).each(function (ele) {          if (jQuery(this).find(&#8220;input&#8221;).is(&#8220;:checked&#8221;)) {            cat = jQuery(this).data(&#8220;filter-cat&#8221;).toLowerCase();            const activeMonth = jQuery(&#8220;.tab-item.active&#8221;).text();            if (              activeMonth != &#8220;All Shows&#8221; &amp;&amp;              (cat == &#8220;new arrivals&#8221; || cat == &#8220;shows reopening&#8221;)            ) {              const elements = jQuery(&#8220;.show-wrapper.tabbed&#8221;).has(                `[data-cat=&#8221;${cat}&#8221;]`              );              for (i = 0; i &lt; elements.length; i++) {                ele = elements[i];                const condition =                  dayjs(jQuery(ele).data(&#8220;open&#8221;), &#8220;MM\/DD\/YYYY&#8221;).format(                    &#8220;MMMM&#8221;                  ) === activeMonth;                if (condition) {                  jQuery(ele)                    .addClass(&#8220;prepare&#8221;)                    .find(`[data-cat=&#8221;${cat}&#8221;]`)                    .addClass(&#8220;mobi-active-filter&#8221;);                }              }            } else {              jQuery(&#8220;.show-wrapper.tabbed&#8221;)                .has(`[data-cat=&#8221;${cat}&#8221;]`)                .addClass(&#8220;prepare&#8221;)                .find(`[data-cat=&#8221;${cat}&#8221;]`)                .addClass(&#8220;mobi-active-filter&#8221;);            }          }        });        slideInShows(&#8220;prepare&#8221;, &#8220;active&#8221;);      });      \/\/ Page init default Category Handler &amp; Default Open Listicle      filterEnabled &amp;&amp;        setTimeout(function () {          jQuery(&#8220;[data-filter-cat]&#8221;).each(function (ele) {            if (jQuery(this).find(&#8220;input&#8221;).is(&#8220;:checked&#8221;)) {              cat = jQuery(this).data(&#8220;filter-cat&#8221;).toLowerCase();              jQuery(&#8220;.show-wrapper.tabbed&#8221;)                .has(`[data-cat=&#8221;${cat}&#8221;]`)                .addClass(&#8220;prepare&#8221;);            }          });          slideInShows(&#8220;prepare&#8221;, &#8220;active&#8221;);          jQuery(&#8220;.cat-filter label:first-child&#8221;).delay(500).trigger(&#8220;click&#8221;);          jQuery(&#8220;.show-wrapper:first-child .accCtrl&#8221;)            .eq(0)            .delay(1000)            .trigger(&#8220;click&#8221;);        }, 300);      \/\/ Lower Case All Data Attributes.      let lowerCaseAll = function (ele) {        jQuery(ele).each(function () {          var $this = jQuery(this),            data = $this.data();          for (var k in data)            $this.attr(&#8220;data-&#8221; + k, data[k].toLowerCase().trim());        });      };      lowerCaseAll(jQuery(&#8220;[data-filter-cat], [data-cat], [data-infotab]&#8221;));      if (!filterEnabled) {        jQuery(&#8220;.show-wrapper&#8221;).each(function (i) {          jQuery(this).addClass(&#8220;active&#8221;).css(&#8220;display&#8221;, &#8220;block&#8221;);        });      }      jQuery(&#8220;.page-card-wrapper&#8221;).append(        `&lt;a href=&#8221;https:\/\/www.headout.com\/broadway-tickets-c-24\/&#8221; target=&#8221;_blank&#8221; rel=&#8221;noopener&#8221;&gt;&lt;p&gt;Show More&lt;\/p&gt;&lt;\/a&gt;`      );    };    filterEnabled &amp;&amp;      monthSubCategoryFilter.append(`&lt;div&gt;                &lt;div&gt;                  &lt;h3&gt;${filterHeading}&lt;\/h3&gt;                  &lt;div&gt;                  &lt;\/div&gt;                &lt;\/div&gt;              &lt;\/div&gt;`);    filterEnabled &amp;&amp;      monthSubCategoryFilter.prepend(`&lt;div&gt;                &lt;div&gt;                  &lt;div&gt;                    &lt;div&gt; &lt;span&gt;${firstMonth}&lt;\/span&gt;&lt;span&gt;&lt;\/span&gt;&lt;\/div&gt;                    &lt;div&gt;                    &lt;\/div&gt;                  &lt;\/div&gt;                &lt;\/div&gt;              &lt;\/div&gt;`);    async function getData() {      for (const [index, subCategory] of subCategoryIds.entries()) {        subCategoryId = subCategory.trim();        if (subCategoryId != &#8220;&#8221;) {          await jQuery.get(            {              url: `https:\/\/vivillion.netlify.app\/api\/parsed-tours\/?primarySubCategory=${subCategoryId}&amp;limit=100&amp;city=New York`,            },            function (res) {              const displayName = res.subCategory.displayName;              const subCategoryId = res.subCategory.id;              const subCategoryDiscription = monthSubCategoryFilter.data(                `${subCategoryId.toString()}-des`              );              const subCategoryName = monthSubCategoryFilter.data(                `${subCategoryId.toString()}-name`              );              categoryNameMap[displayName] = subCategoryName                ? subCategoryName                : displayName;              res.pageData.items.forEach((item) =&gt; {                item.tags = [displayName];                if (allTours.filter((x) =&gt; x.id === item.id).length === 0) {                  allTours.push(item);                } else {                  allTours                    .filter((x) =&gt; x.id === item.id)[0]                    .tags.push(displayName);                }              });              jQuery(&#8220;.filter-combo .new-filters .cat-filter&#8221;)                .append(`&lt;label data-filter-cat=&#8221;${displayName.toLowerCase()}&#8221; data-filtercat=&#8221;${displayName.toLowerCase()}&#8221;&gt; &lt;input type=&#8221;radio&#8221; name=&#8221;cat&#8221;&gt;                        &lt;div&gt;&lt;span&gt;&lt;\/span&gt;${                          categoryNameMap[displayName]                        }&lt;\/div&gt;                      &lt;\/label&gt; `);              jQuery(&#8220;.info-tab&#8221;).append(                `&lt;div data-infotab=&#8221;${displayName}&#8221;&gt;                          &lt;h2&gt;${displayName}&lt;\/h2&gt;                          &lt;p&gt;${subCategoryDiscription}&lt;\/p&gt;                        &lt;\/div&gt;`              );              if (index == subCategoryIds.length &#8211; 1) {                allTours = allTours.map((tour) =&gt; {                  const result = getMicroBrandsHighlightsData(                    tour.microBrandsHighlight                  );                  return {                    &#8230;result,                    &#8230;tour,                  };                });                functionsAfterDataUpdate();              }            }          );        }      }    }    getData();  });[\/tcb-script]<\/p>\n<h2>Frequently Asked Questions About Broadway Shows in January<\/h2>\n<h2>Best Broadway Shows &#8211; Month on Month Guide <\/h2>\n<p>Wondering what are the <a href=\"https:\/\/www.headout.com\/blog\/best-broadway-shows-in-new-york\/\" target=\"_blank\" rel=\"noopener\">best Broadway shows<\/a> running through the year? Our month-on-month guide has you covered. <\/p>\n<p><a href=\"https:\/\/www.headout.com\/blog\/best-broadway-shows-january\/\" target=\"_blank\" rel=\"noopener\">Best Broadway Shows in January<\/a><\/p>\n<p><a href=\"https:\/\/www.headout.com\/blog\/best-broadway-shows-in-february\/\" target=\"_blank\" rel=\"noopener\">Best Broadway Shows in February<\/a><\/p>\n<p><a href=\"https:\/\/www.headout.com\/blog\/best-broadway-shows-in-march\/\" target=\"_blank\" rel=\"noopener\">Best Broadway Shows in March<\/a><\/p>\n<p><a href=\"https:\/\/www.headout.com\/blog\/best-broadway-shows-in-april\/\" target=\"_blank\" rel=\"noopener\">Best Broadway Shows in April<\/a><\/p>\n<p><a href=\"https:\/\/www.headout.com\/blog\/best-broadway-shows-in-may\/\" target=\"_blank\" rel=\"noopener\">Best Broadway Shows in May<\/a><\/p>\n<p><a href=\"https:\/\/www.headout.com\/blog\/best-broadway-shows-in-june\/\" target=\"_blank\" rel=\"noopener\">Best Broadway Shows in June<\/a><\/p>\n<p><a href=\"https:\/\/www.headout.com\/blog\/best-broadway-shows-in-july\/\" target=\"_blank\" rel=\"noopener\">Best Broadway Shows in July<\/a><\/p>\n<p><a href=\"https:\/\/www.headout.com\/blog\/best-broadway-shows-in-august\/\" target=\"_blank\" rel=\"noopener\">Best Broadway Shows in August<\/a><\/p>\n<p><a href=\"https:\/\/www.headout.com\/blog\/best-broadway-shows-in-september\/\" target=\"_blank\" rel=\"noopener\">Best Broadway Shows in September<\/a><\/p>\n<p><a href=\"https:\/\/www.headout.com\/blog\/best-broadway-shows-in-october\/\" target=\"_blank\" rel=\"noopener\">Best Broadway Shows in October<\/a><\/p>\n<p><a href=\"https:\/\/www.headout.com\/blog\/best-broadway-shows-in-november\/\" target=\"_blank\" rel=\"noopener\">Best Broadway Shows in November<\/a><\/p>\n<p><a href=\"https:\/\/www.headout.com\/blog\/best-broadway-shows-in-december\/\" target=\"_blank\" rel=\"noopener\">Best Broadway Shows in December<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Want some respite from the cold, yet some place that&#8217;s warm and entertaining? Head over to the New York Theatre District and grab tickets to the best Broadway shows running this January. Best prices. Easy tickets. 100% entertainment! Best Broadway Shows in January [tcb-script src=&#8221;https:\/\/cdn.jsdelivr.net\/npm\/dayjs@1.10.7\/dayjs.min.js&#8221;][\/tcb-script][tcb-script src=&#8221;https:\/\/unpkg.com\/dayjs@1.8.21\/plugin\/isSameOrAfter.js&#8221;][\/tcb-script][tcb-script src=&#8221;https:\/\/unpkg.com\/dayjs@1.8.21\/plugin\/isSameOrBefore.js&#8221;][\/tcb-script][tcb-script] dayjs.extend(window.dayjs_plugin_isSameOrAfter); dayjs.extend(window.dayjs_plugin_isSameOrBefore); const getTGIDListForMonth = (allTours, displayMonth) =&gt; [&hellip;]<\/p>\n","protected":false},"author":95,"featured_media":96488,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[760,501,534,19],"tags":[6800,6994,6990,6291,7012,6282,6359],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v22.5 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Best Broadway Shows in January 2026 Broadway Theatre Guide | Headout<\/title>\n<meta name=\"description\" content=\"Browse our Broadway Theatre 2026 calendar and book your tickets for Broadway shows, musicals &amp; plays running in January 2026.\" \/>\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.headout.com\/blog\/best-broadway-shows-january\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Best Broadway Shows in January 2026 Broadway Theatre Guide | Headout\" \/>\n<meta property=\"og:description\" content=\"Browse our Broadway Theatre 2026 calendar and book your tickets for Broadway shows, musicals &amp; plays running in January 2026.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.headout.com\/blog\/best-broadway-shows-january\/\" \/>\n<meta property=\"og:site_name\" content=\"Headout Blog\" \/>\n<meta property=\"article:published_time\" content=\"2022-05-26T10:54:46+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2023-08-10T17:26:13+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/cdn-imgix.headout.com\/blog-banner\/image\/d912ca8c3d6cc46f3b3cc78c6589ade9-Theatre-Shows-January.jpg\" \/>\n<meta name=\"author\" content=\"Maitray Oberoi\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:image\" content=\"https:\/\/cdn-imgix.headout.com\/blog-banner\/image\/d912ca8c3d6cc46f3b3cc78c6589ade9-Theatre-Shows-January.jpg\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Maitray Oberoi\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"6 minutes\" \/>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Best Broadway Shows in January 2026 Broadway Theatre Guide | Headout","description":"Browse our Broadway Theatre 2026 calendar and book your tickets for Broadway shows, musicals & plays running in January 2026.","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.headout.com\/blog\/best-broadway-shows-january\/","og_locale":"en_US","og_type":"article","og_title":"Best Broadway Shows in January 2026 Broadway Theatre Guide | Headout","og_description":"Browse our Broadway Theatre 2026 calendar and book your tickets for Broadway shows, musicals & plays running in January 2026.","og_url":"https:\/\/www.headout.com\/blog\/best-broadway-shows-january\/","og_site_name":"Headout Blog","article_published_time":"2022-05-26T10:54:46+00:00","article_modified_time":"2023-08-10T17:26:13+00:00","og_image":[{"url":"https:\/\/cdn-imgix.headout.com\/blog-banner\/image\/d912ca8c3d6cc46f3b3cc78c6589ade9-Theatre-Shows-January.jpg"}],"author":"Maitray Oberoi","twitter_card":"summary_large_image","twitter_image":"https:\/\/cdn-imgix.headout.com\/blog-banner\/image\/d912ca8c3d6cc46f3b3cc78c6589ade9-Theatre-Shows-January.jpg","twitter_misc":{"Written by":"Maitray Oberoi","Est. reading time":"6 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.headout.com\/blog\/best-broadway-shows-january\/#article","isPartOf":{"@id":"https:\/\/www.headout.com\/blog\/best-broadway-shows-january\/"},"author":{"name":"Maitray Oberoi","@id":"https:\/\/www.headout.com\/blog\/#\/schema\/person\/d8cb52afc3ae4a38e4a1b29d0273f385"},"headline":"Best Broadway shows in January, a New York theatre guide","datePublished":"2022-05-26T10:54:46+00:00","dateModified":"2023-08-10T17:26:13+00:00","mainEntityOfPage":{"@id":"https:\/\/www.headout.com\/blog\/best-broadway-shows-january\/"},"wordCount":1765,"publisher":{"@id":"https:\/\/www.headout.com\/blog\/#organization"},"image":{"@id":"https:\/\/www.headout.com\/blog\/best-broadway-shows-january\/#primaryimage"},"thumbnailUrl":"https:\/\/cdn-imgix.headout.com\/blog-banner\/image\/d912ca8c3d6cc46f3b3cc78c6589ade9-Theatre-Shows-January.jpg","keywords":["c-24","Entertainment","Listicle","New York","Plays","United States","Winter Blogs"],"articleSection":["Best of Broadway","Broadway","Broadway Show Tickets","Things to do in New York"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/www.headout.com\/blog\/best-broadway-shows-january\/","url":"https:\/\/www.headout.com\/blog\/best-broadway-shows-january\/","name":"Best Broadway Shows in January 2026 Broadway Theatre Guide | Headout","isPartOf":{"@id":"https:\/\/www.headout.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.headout.com\/blog\/best-broadway-shows-january\/#primaryimage"},"image":{"@id":"https:\/\/www.headout.com\/blog\/best-broadway-shows-january\/#primaryimage"},"thumbnailUrl":"https:\/\/cdn-imgix.headout.com\/blog-banner\/image\/d912ca8c3d6cc46f3b3cc78c6589ade9-Theatre-Shows-January.jpg","datePublished":"2022-05-26T10:54:46+00:00","dateModified":"2023-08-10T17:26:13+00:00","description":"Browse our Broadway Theatre 2026 calendar and book your tickets for Broadway shows, musicals & plays running in January 2026.","breadcrumb":{"@id":"https:\/\/www.headout.com\/blog\/best-broadway-shows-january\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.headout.com\/blog\/best-broadway-shows-january\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.headout.com\/blog\/best-broadway-shows-january\/#primaryimage","url":"https:\/\/cdn-imgix.headout.com\/blog-banner\/image\/d912ca8c3d6cc46f3b3cc78c6589ade9-Theatre-Shows-January.jpg","contentUrl":"https:\/\/cdn-imgix.headout.com\/blog-banner\/image\/d912ca8c3d6cc46f3b3cc78c6589ade9-Theatre-Shows-January.jpg","width":"2400","height":"1600","caption":"best-broadway-shows-january"},{"@type":"BreadcrumbList","@id":"https:\/\/www.headout.com\/blog\/best-broadway-shows-january\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Things to do in New York","item":"https:\/\/www.headout.com\/things-to-do-city-new-york\/"},{"@type":"ListItem","position":2,"name":"Broadway","item":"https:\/\/www.headout.com\/broadway-tickets-c-24\/"},{"@type":"ListItem","position":3,"name":"Broadway Show Tickets","item":"https:\/\/www.headout.com\/blog\/category\/things-to-do-city-new-york\/broadway-tickets-c-24\/wcp-broadway-show-tickets-category\/"},{"@type":"ListItem","position":4,"name":"Shows in January"}]},{"@type":"WebSite","@id":"https:\/\/www.headout.com\/blog\/#website","url":"https:\/\/www.headout.com\/blog\/","name":"Headout Blog","description":"Where will you go next?","publisher":{"@id":"https:\/\/www.headout.com\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.headout.com\/blog\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.headout.com\/blog\/#organization","name":"Headout","url":"https:\/\/www.headout.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.headout.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/www.headout.com\/blog\/wp-content\/uploads\/2016\/07\/headout-logo.png","contentUrl":"https:\/\/www.headout.com\/blog\/wp-content\/uploads\/2016\/07\/headout-logo.png","width":550,"height":84,"caption":"Headout"},"image":{"@id":"https:\/\/www.headout.com\/blog\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/www.headout.com\/blog\/#\/schema\/person\/d8cb52afc3ae4a38e4a1b29d0273f385","name":"Maitray Oberoi","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.headout.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/fe9e3565610654aaecefbd37bf913b05?s=96&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/fe9e3565610654aaecefbd37bf913b05?s=96&r=g","caption":"Maitray Oberoi"},"url":"https:\/\/www.headout.com\/blog\/author\/maitray-oberoiheadout-com\/"}]}},"_links":{"self":[{"href":"https:\/\/www.headout.com\/blog\/wp-json\/wp\/v2\/posts\/89978"}],"collection":[{"href":"https:\/\/www.headout.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.headout.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.headout.com\/blog\/wp-json\/wp\/v2\/users\/95"}],"replies":[{"embeddable":true,"href":"https:\/\/www.headout.com\/blog\/wp-json\/wp\/v2\/comments?post=89978"}],"version-history":[{"count":25,"href":"https:\/\/www.headout.com\/blog\/wp-json\/wp\/v2\/posts\/89978\/revisions"}],"predecessor-version":[{"id":140160,"href":"https:\/\/www.headout.com\/blog\/wp-json\/wp\/v2\/posts\/89978\/revisions\/140160"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.headout.com\/blog\/wp-json\/wp\/v2\/media\/96488"}],"wp:attachment":[{"href":"https:\/\/www.headout.com\/blog\/wp-json\/wp\/v2\/media?parent=89978"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.headout.com\/blog\/wp-json\/wp\/v2\/categories?post=89978"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.headout.com\/blog\/wp-json\/wp\/v2\/tags?post=89978"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}