{"id":84916,"date":"2022-03-08T15:42:35","date_gmt":"2022-03-08T15:42:35","guid":{"rendered":"https:\/\/www.headout.com\/blog\/?p=84916"},"modified":"2023-09-19T18:35:34","modified_gmt":"2023-09-19T14:35:34","slug":"best-west-end-shows-november","status":"publish","type":"post","link":"https:\/\/www.headout.com\/blog\/best-west-end-shows-november\/","title":{"rendered":"Best West End shows in November, a London Theatre guide"},"content":{"rendered":"<p>Wondering which West End show to catch this November? We&#8217;ve got your back. Browse the top selling West End shows running this November and choose your pick. Be it kid-friendly musicals or world-class plays, buy your West End show tickets on Headout and enjoy a smooth theatre experience. <\/p>\n<p>        [tcb-script]  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,&#8221;years&#8221;);    const endMonthNextYearDate = endMonthDate.add(1,&#8221;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;,&#8221;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;,                &#8220;Blog Summary&#8221;: &#8220;&#8221;,                &#8220;Seating Plan&#8221;: null,                &#8220;Read More&#8221;: &#8220;&#8221;,                &#8220;Theatre Name&#8221;: null,                &#8220;Getting There&#8221;: null,            };            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 (                    element.type == &#8220;heading6&#8221; &amp;&amp;                    element.content.text == &#8220;Blog Summary&#8221;                ) {                    currentObject = &#8220;Blog Summary&#8221;;                } else if (                    element.type == &#8220;heading6&#8221; &amp;&amp;                    element.content.text == &#8220;Blog Theatre Seating Plan&#8221;                ) {                    currentObject = &#8220;Seating Plan&#8221;;                } else if (                    element.type == &#8220;heading6&#8221; &amp;&amp;                    element.content.text == &#8220;Blog Show Page&#8221;                ) {                    currentObject = &#8220;Read More&#8221;;                } else if (                    element.type == &#8220;heading6&#8221; &amp;&amp;                    element.content.text == &#8220;Theatre Name&#8221;                ) {                    currentObject = &#8220;Theatre Name&#8221;;                } else if (                    element.type == &#8220;heading6&#8221; &amp;&amp;                    element.content.text == &#8220;Getting There Map Link&#8221;                ) {                    currentObject = &#8220;Getting There&#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;                    } else if (currentObject == &#8220;Blog Summary&#8221;) {                        result[&#8220;Blog Summary&#8221;] = element.content.text;                    } else if (currentObject == &#8220;Seating Plan&#8221;) {                        result[&#8220;Seating Plan&#8221;] = element.content.text;                    } else if (currentObject == &#8220;Read More&#8221;) {                        result[&#8220;Read More&#8221;] = element.content.spans?.[0]?.data.url;                    } else if (currentObject == &#8220;Theatre Name&#8221;) {                        result[&#8220;Theatre Name&#8221;] = element.content.text;                    } else if (currentObject == &#8220;Getting There&#8221;) {                        result[&#8220;Getting There&#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;) === 0;        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 !== &#8221;);        const firstMonth = monthCSV?.[0];        let allTours = [];        const functionsAfterDataUpdate = () =&gt; {            allTours.forEach((tour,index) =&gt; {                const showBody = tour[&#8220;Blog Summary&#8221;] || tour.shortSummary;                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;div data-id=&#8221;${index}&#8221;&gt;                                    &lt;div&gt;                                        &lt;div&gt;                                            &lt;div&gt;                                                &lt;picture&gt;                                                    &lt;source type=&#8221;image\/webp&#8221; data-srcset=&#8221;${tourImageUrl}&amp;fm=webp&#8221;&gt;                                                    &lt;img data-src=&#8221;${tourImageUrl}&amp;fm=pjpg&#8221; data-sizes=&#8221;auto&#8221; data-cover-image=&#8221;&#8221; alt=${tour.name}&#8221; title=&#8221;${tour.name}&#8221;&gt;                                                &lt;\/picture&gt;                                                &lt;div div&gt;${tour.name}&lt;\/div&gt;                                                &lt;div&gt;                                                ${tour.tags.map((item) =&gt; `&lt;div data-cat=&#8221;${item}&#8221;&gt;${item}&lt;\/div&gt;`).join(&#8221; &#8220;)}                                                &lt;\/div&gt;                                                &lt;div data-show-ratings=&#8221;${tour.averageRating}&#8221;&gt;&lt;\/div&gt;                                                &lt;div&gt;${showBody ? `&lt;span&gt;&lt;\/span&gt;` : &#8220;&#8221;}&lt;\/div&gt;                                                &lt;div&gt;                                                    &lt;span&gt;                                                        &lt;span&gt;from&lt;\/span&gt;                                                        &lt;span&gt;\u00a3${tour.listingPrice ? tour.listingPrice.finalPrice : &#8220;&#8221;}&lt;\/span&gt;                                                    &lt;\/span&gt;                                                &lt;\/div&gt;                                                &lt;div&gt;&lt;\/div&gt;                                                &lt;div&gt;&lt;\/div&gt;                                            &lt;\/div&gt;                                        &lt;\/div&gt;                                    &lt;\/div&gt;                                  &lt;\/div&gt;                `;                const htmlObject = `                                ${showBody ? mainCard : `&lt;a href=&#8221;https:\/\/www.headout.com\/tour\/${tour.id}&#8221; target=&#8221;_blank&#8221; style=&#8221;text-decoration: none;&#8221;&gt;${mainCard}&lt;\/a&gt;`}                                ${showBody ?                        `&lt;div data-id=&#8221;${index}&#8221;&gt;                                        &lt;div&gt;                                            &lt;div&gt;                                            &lt;div&gt;                                                &lt;div&gt;                                                    ${tour.microBrandsDescriptor?.split(&#8220;rn&#8221;)?.map((item) =&gt; (`&lt;div&gt;${item?.trim()}&lt;\/div&gt;`)).join(&#8221; &#8220;)}                                                &lt;\/div&gt;                                                &lt;div&gt;                                                   &lt;div&gt;&lt;span&gt;Duration:&lt;\/span&gt; ${msToTime(tour.maxDuration)}&lt;\/div&gt;                                                &lt;\/div&gt;                                            &lt;\/div&gt;                                            &lt;div&gt;                                                ${tour[&#8220;Blog Summary&#8221;] || tour.shortSummary}                                            &lt;\/div&gt;                                            &lt;div&gt;                                                &lt;div&gt;                                                    &lt;div&gt;                                                        ${tour[&#8220;Seating Plan&#8221;] || tour[&#8220;Getting There&#8221;] ? `&lt;a href=&#8221;${tour[&#8220;Seating Plan&#8221;] || tour[&#8220;Getting There&#8221;]}&#8221; target=&#8221;_blank&#8221;&gt;                                                            &lt;div&gt;                                                                &lt;div&gt;                                                                    &lt;i&gt;&lt;\/i&gt;                                                                    &lt;span&gt;${tour[&#8220;Theatre Name&#8221;]}&lt;\/span&gt;                                                                    &lt;span&gt;${tour[&#8220;Seating Plan&#8221;] ? &#8220;Seating Plan&#8221; : &#8220;Getting There&#8221;}&lt;\/span&gt;                                                                &lt;\/div&gt;                                                            &lt;\/div&gt;                                                        &lt;\/a&gt;` : &#8220;&#8221;}                                                        &lt;a href=&#8221;${tour[&#8220;Read More&#8221;] || `https:\/\/www.headout.com\/tour\/${tour.id}`}&#8221; target=&#8221;_blank&#8221;&gt;                                                            &lt;div&gt;READ MORE&lt;\/div&gt;                                                        &lt;\/a&gt;                                                        &lt;a href=&#8221;https:\/\/www.headout.com\/book\/${tour.id}\/seatmap-select\/&#8221; target=&#8221;_blank&#8221;&gt;                                                                &lt;div&gt;BOOK NOW&lt;\/div&gt;                                                        &lt;\/a&gt;                                                    &lt;\/div&gt;                                                &lt;\/div&gt;                                            &lt;\/div&gt;                                        &lt;\/div&gt;                                    &lt;\/div&gt;`                        : &#8220;&#8221;                    }&lt;\/div&gt; `;                jQuery(&#8220;.product-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;div&#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;,&#8221;&#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;),&#8221;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;,&#8221;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;,&#8221;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;,&#8221;block&#8221;);\/\/                 });\/\/             }        };\/\/         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=London`,\/\/                         },\/\/                         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();\/\/                             }\/\/                         }\/\/                     );\/\/                 }\/\/             }            await jQuery.get(                         {                              url: &#8216;https:\/\/vivillion.netlify.app\/api\/parsed-collection?collectionId=167&amp;limit=100&amp;city=London&#8217;,                         },                         function (res) {                              const displayName = &#8221;;                              const subCategoryId = &#8221;;                              const subCategoryDiscription = &#8221;                              const subCategoryName = &#8221;                              res.pageData.items.forEach((item) =&gt; {                                   item.tags = [item?.primarySubCategory?.displayName || &#8221;];                                   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(item?.primarySubCategory?.displayName || &#8221;);                                   }                              });                              if (allTours?.length &gt; 1) {                                   allTours = allTours.map((tour) =&gt; {                                        const result = getMicroBrandsHighlightsData(                                             tour.microBrandsHighlight                                        );                                        return {                                             &#8230;result,                                             &#8230;tour,                                        };                                   });                                   functionsAfterDataUpdate();                              }                         }                    );        }        getData();    });[\/tcb-script]<\/p>\n<h2>Best West End Shows to Catch This November<\/h2>\n<ul> <a href=\"#bestwestendshowsnovember1\"><\/p>\n<li>Top 5 Musicals to Watch This November<\/li>\n<p><\/a><a href=\"#bestwestendshowsnovember2\"><\/p>\n<li>Top 5 Plays This Watch in November<\/li>\n<p><\/a><a href=\"#bestwestendshowsnovember3\"><\/p>\n<li>Top 5 Comedy Shows to Watch This November<\/li>\n<p><\/a><a href=\"#bestwestendshowsnovember4\"><\/p>\n<li>Top 5 Kids Shows to Watch This November<\/li>\n<p><\/a><a href=\"#bestwestendshowsnovember5\"><\/p>\n<li>Top 5 Shows Reopening This November<\/li>\n<p><\/a><a href=\"#bestwestendshowsnovember6\"><\/p>\n<li>Top 5 New West Shows to Watch This November<\/li>\n<p><\/a><a href=\"#bestwestendshowsnovember7\"><\/p>\n<li>What to Wear to a West End Show in November?<\/li>\n<p><\/a><a href=\"#bestwestendshowsnovember8\"><\/p>\n<li>Frequently Asked Questions About West End Shows<\/li>\n<p><\/a><\/ul>\n<h2 id=\"bestwestendshowsnovember1\"> Top 5 Musicals to Watch This November<\/h2>\n<p>If you&#8217;re looking for something lively &#8211; something to tap your feet to, you need to check out musicals at West End. With some incredible music, dance, and plotlines, these musicals are sure to blow your mind!<\/p>\n<h2 id=\"bestwestendshowsnovember2\"> Top 5 Plays to Watch This November<\/h2>\n<p>Not in the mood for song and dance? We have an alternative that might just make you happy. With plays spanning genres like drama, comedy, and fantasy, you can experience theatre like it was meant to be enjoyed. Pure, unadulterated, and without any frills.<\/p>\n<h2 id=\"bestwestendshowsnovember3\"> Top 5 Comedy Shows to Watch This November<\/h2>\n<p>West End isn&#8217;t just drama and musicals &#8211; it&#8217;s got some absolutely hilarious comedies! So if you&#8217;re looking for an evening of fun and laughter, look no further! Here are some incredible comedies that will leave you in splits!<\/p>\n<h2 id=\"bestwestendshowsnovember4\"> Top 5 Kids Shows to Watch This November<\/h2>\n<p>It\u2019s never too early to take your kids to the theatre and West End has no shortage of shows to offer for children of all ages. Get your kids away from the telly and take them out to a show they\u2019ll never forget. From the wizarding world of Harry Potter to the endless adventures of Mary Poppins, the vast number of shows for kids in London will entice anyone.<\/p>\n<h2 id=\"bestwestendshowsnovember5\">Top 5 Shows Reopening This November<\/h2>\n<p>These shows are back on West End and for good reason. Theatre enthusiasts just can&#8217;t have enough of them! Catch them before they sell out again.<\/p>\n<h2 id=\"bestwestendshowsnovember6\">Top 5 New West Shows to Watch This November<\/h2>\n<p>Every season brings a whole roster of West End experiences &#8211; some that entertain us fleetingly while some go on to become classics. Watch these shows as the season starts.<\/p>\n<h2 id=\"bestwestendshowsnovember7\">What to Wear to a West End Show in November?<\/h2>\n<p>If you are looking for ideas on what to wear to a West End show in November, there are a few things to consider. For starters, the weather can be unpredictable so make sure you bring a coat just in case.<\/p>\n<p> As for what to wear, it is generally dressier than going to the cinema or theatre, so something like a dress or smart trousers and blouse may be appropriate.<\/p>\n<p> If you want to be really dressed up, why not try a evening gown or suit? And finally, don&#8217;t forget to add some sparkle with some jewellery or a scarf!<\/p>\n<p>With these tips in mind, you&#8217;re sure to look great at your next West End show in November!<\/p>\n<h2 id=\"bestwestendshowsnovember8\">Frequently Asked Questions About West End Shows<\/h2>\n<h2>More West End Guides<\/h2>\n<p>Check out the <a href=\"https:\/\/www.headout.com\/blog\/best-west-end-shows-london\/\" target=\"_blank\" rel=\"noopener\">best West End shows<\/a> and use our handy guides to plan your visit to London theatre!  <\/p>\n<p><a href=\"https:\/\/www.headout.com\/blog\/cheap-west-end-tickets\/\" target=\"_blank\" rel=\"noopener\"><img decoding=\"async\" src=\"https:\/\/cdn-imgix-open.headout.com\/blog\/media\/images\/London\/Westend+District+Theatre+London.jpg?auto=compress&amp;fm=pjpg&amp;w=500&amp;h=1000&amp;q=30\" alt=\"Cheap West End Tickets\" data-pagespeed-url-hash=\"1377021273\" onload=\"pagespeed.CriticalImages.checkImageForCriticality(this);\">Buying Cheap West End Tickets<\/a><a href=\"https:\/\/www.headout.com\/blog\/tkts-london-tickets\/\" target=\"_blank\" rel=\"noopener\"><img decoding=\"async\" src=\"\/\/cdn-imgix.headout.com\/tour\/4746\/TOUR-IMAGE\/1d6bafa2-31e3-4e29-b160-2f0cc14d9e0a-3037-london-wicked-01.jpg?auto=compress&amp;fm=pjpg&amp;w=500&amp;h=1000&amp;q=30\" alt=\"Best West End Shows London\" data-pagespeed-url-hash=\"517640946\" onload=\"pagespeed.CriticalImages.checkImageForCriticality(this);\">All about TKTS London Tickets <\/a><a href=\"https:\/\/www.headout.com\/blog\/london-theatres\/\" target=\"_blank\" rel=\"noopener\"><img decoding=\"async\" src=\"https:\/\/www.headout.com\/blog\/wp-content\/uploads\/2018\/01\/kilyan-sockalingum-nW1n9eNHOsc-unsplash-scaled.jpg?auto=compress&amp;fm=pjpg&amp;w=500&amp;h=1000&amp;q=30\" alt=\"West End Seating Plans\" data-pagespeed-url-hash=\"146626299\" onload=\"pagespeed.CriticalImages.checkImageForCriticality(this);\">London Theatre Seating Plans<\/a><a href=\"https:\/\/www.headout.com\/blog\/west-end-shows\/\" target=\"_blank\" rel=\"noopener\"><img decoding=\"async\" src=\"https:\/\/cdn-imgix.headout.com\/tour\/4384\/TOUR-IMAGE\/3f77cc19-bae2-4e37-bce8-f7326f46e9f8-2832-london-aladdin-01.jpg?auto=compress&amp;fm=pjpg&amp;w=500&amp;h=1000&amp;q=30\" alt=\"West End London Guide\" data-pagespeed-url-hash=\"1322199381\" onload=\"pagespeed.CriticalImages.checkImageForCriticality(this);\">Complete West End Guide<\/a><\/p>\n<h2>Best West End Shows &#8211; Month On Month Guide <\/h2>\n<p><a href=\"https:\/\/www.headout.com\/blog\/best-west-end-shows-january\/\" target=\"_blank\" rel=\"noopener\">Best West End Shows in January<\/a><\/p>\n<p><a href=\"https:\/\/www.headout.com\/blog\/best-west-end-shows-february\/\" target=\"_blank\" rel=\"noopener\">Best West End Shows in February<\/a><\/p>\n<p><a href=\"https:\/\/www.headout.com\/blog\/best-west-end-shows-march\/\" target=\"_blank\" rel=\"noopener\">Best West End Shows in March<\/a><\/p>\n<p><a href=\"https:\/\/www.headout.com\/blog\/best-west-end-shows-april\/\" target=\"_blank\" rel=\"noopener\">Best West End Shows in April<\/a><\/p>\n<p><a href=\"https:\/\/www.headout.com\/blog\/best-west-end-shows-may\/\" target=\"_blank\" rel=\"noopener\">Best West End Shows in May<\/a><\/p>\n<p><a href=\"https:\/\/www.headout.com\/blog\/best-west-end-shows-june\/\" target=\"_blank\" rel=\"noopener\">Best West End Shows in June<\/a><\/p>\n<p><a href=\"https:\/\/www.headout.com\/blog\/best-west-end-shows-july\/\" target=\"_blank\" rel=\"noopener\">Best West End Shows in July<\/a><\/p>\n<p><a href=\"https:\/\/www.headout.com\/blog\/best-west-end-shows-august\/\" target=\"_blank\" rel=\"noopener\">Best West End Shows in August<\/a><\/p>\n<p><a href=\"https:\/\/www.headout.com\/blog\/best-west-end-shows-september\/\" target=\"_blank\" rel=\"noopener\">Best West End Shows in September<\/a><\/p>\n<p><a href=\"https:\/\/www.headout.com\/blog\/best-west-end-shows-october\/\" target=\"_blank\" rel=\"noopener\">Best West End Shows in October<\/a><\/p>\n<p><a href=\"https:\/\/www.headout.com\/blog\/best-west-end-shows-november\/\" target=\"_blank\" rel=\"noopener\">Best West End Shows in November<\/a><\/p>\n<p><a href=\"https:\/\/www.headout.com\/blog\/best-west-end-shows-december\/\" target=\"_blank\" rel=\"noopener\">Best West End Shows in December<\/a><\/p>\n<p>[tcb-script]document.addEventListener(&#8220;DOMContentLoaded&#8221;, function (event) {    \/\/device = (\/android|webos|iphone|ipad|ipod|blackberry|iemobile|opera mini\/i.test(navigator.userAgent.toLowerCase()));    \/\/ HTML Stars Generation    let getStars = function (rating) {      \/\/console.log(rating)      rating = rating &lt; 0 ? 0 : rating;      if (rating &lt; .25)        return;      let round = Math.floor(rating);      let full = (rating &gt; (round + .5)) ? true : false;      let half = (rating &gt; (round + .25)) ? true : false;      let template = &#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;    }    \/\/ On Window Resize Hide Mobile Months Tab.    jQuery(window).resize(function (e) {      \/\/console.log(e);      if (jQuery(window).width() &gt; 630)        jQuery(&#8216;.mobi-wrap&#8217;).attr(&#8220;style&#8221;, &#8221;)    });    let thisEle = [];    let i = 0;    \/\/ Populating API Data    jQuery(&#8220;.show-wrapper[data-tgid]&#8221;).each(function () {      let pgid = jQuery(this).data(&#8220;tgid&#8221;);      thisEle.push(this);      if (parseInt(pgid) &amp;&amp; pgid != &#8221;) {        jQuery.get(&#8220;https:\/\/api.headout.com\/api\/v5\/tour-group\/get\/&#8221; + pgid, function (res) {          \/\/ console.log(res);          if (res.currency)            symb = res.currency.localSymbol;          uEle = `.show-wrapper[data-tgid=${res.id}]`;          jQuery(uEle).find(&#8220;[data-show-ratings]&#8221;).html(getStars(jQuery(uEle).data(&#8216;rating&#8217;)));          jQuery(uEle).find(&#8220;.review-count&#8221;).text(res.reviewCount);          \/\/jQuery(uEle).find(&#8220;.himage&#8221;).attr(&#8216;src&#8217;, &#8220;https:&#8221; + res.imageUploads[0].url + &#8220;?auto=compress&amp;crop=faces&amp;fm=pjpg&amp;w=720&amp;h=500&amp;q=30&#8221;);          jQuery(uEle).find(&#8220;.himage&#8221;).attr(&#8216;alt&#8217;, res.imageUploads[0].alt);          jQuery(uEle).find(&#8220;.himage&#8221;).attr(&#8216;title&#8217;, res.imageUploads[0].title);          \/\/jQuery(uEle).find(&#8220;.listicle-item-name&#8221;).text(res.name);          if (res.listingPrice) {            console.log(&#8220;here&#8221;)            jQuery(uEle).find(&#8220;.price sup&#8221;).text(symb + res.listingPrice.originalPrice);            jQuery(uEle).find(&#8220;.price .current&#8221;).text(symb + res.listingPrice.finalPrice);          }          jQuery(uEle).find(&#8220;.listicle-item-product-image img&#8221;).attr(&#8216;src&#8217;, res.imageUploads[Math.ceil(Math.random() * res.imageUploads.length &#8211; 1)].url);        })      }    });    \/\/ Generating Stars    jQuery(&#8220;[data-show-ratings]&#8221;).each(function (n, ele) {      jQuery(this).append(getStars(jQuery(jQuery(ele).closest(&#8220;.show-wrapper&#8221;)).data(&#8220;rating&#8221;)))    })    \/\/ Loads All Listed Products as in Months Tab    let showTab = function (tabId) {      \/\/ console.log(tabId)      showTgids = [];      jQuery(&#8220;.show-wrapper&#8221;).removeClass(&#8220;tabbed&#8221;)      jQuery(&#8216;[data-infotab]&#8217;).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;);    }    \/\/ Open Tab On Click Handler.    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;)      jQuery(target).slideToggle(&#8220;slow&#8221;);    })    \/\/ 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();          })        });    }    \/\/ 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;);    })    \/\/ 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(&#8216;[data-cat]&#8217;).removeClass(&#8216;mobi-active-filter&#8217;);      jQuery(&#8216;[data-infotab].active&#8217;).removeClass(&#8216;active&#8217;);      var catName = jQuery(this).data(&#8216;filter-cat&#8217;);      jQuery(`[data-infotab=&#8217;${catName.toLowerCase()}&#8217;]`).addClass(&#8216;active&#8217;);      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;).find(`[data-cat=&#8221;${cat}&#8221;]`).addClass(&#8216;mobi-active-filter&#8217;);        }      })      slideInShows(&#8220;prepare&#8221;, &#8220;active&#8221;);    });    \/\/ Page init default Category Handler &amp; Default Open Listicle    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;));  });[\/tcb-script]<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Wondering which West End show to catch this November? We&#8217;ve got your back. Browse the top selling West End shows running this November and choose your pick. Be it kid-friendly musicals or world-class plays, buy your West End show tickets on Headout and enjoy a smooth theatre experience. [tcb-script] const getTGIDListForMonth = (allTours,displayMonth) =&gt; { [&hellip;]<\/p>\n","protected":false},"author":30,"featured_media":85155,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[781,779,547],"tags":[6745,6994,6372,6990,6284,7120],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v22.5 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Top 5 West End Shows to Catch in London This November<\/title>\n<meta name=\"description\" content=\"Looking for the best West End Show Tickets this November 2026? Look no more beyond our guide - best tickets, tips &amp; more!\" \/>\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-west-end-shows-november\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Top 5 West End Shows to Catch in London This November\" \/>\n<meta property=\"og:description\" content=\"Looking for the best West End Show Tickets this November 2026? Look no more beyond our guide - best tickets, tips &amp; more!\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.headout.com\/blog\/best-west-end-shows-november\/\" \/>\n<meta property=\"og:site_name\" content=\"Headout Blog\" \/>\n<meta property=\"article:published_time\" content=\"2022-03-08T15:42:35+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2023-09-19T14:35:34+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/cdn-imgix.headout.com\/tour\/20765\/TOUR-IMAGE\/499f8b39-9f0b-4da5-9f89-60bde61f9182-prettywoman-7.JPG\" \/>\n<meta name=\"author\" content=\"Lakshmi Menon\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:image\" content=\"https:\/\/cdn-imgix.headout.com\/tour\/20765\/TOUR-IMAGE\/499f8b39-9f0b-4da5-9f89-60bde61f9182-prettywoman-7.JPG\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Lakshmi Menon\" \/>\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":"Top 5 West End Shows to Catch in London This November","description":"Looking for the best West End Show Tickets this November 2026? Look no more beyond our guide - best tickets, tips & more!","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-west-end-shows-november\/","og_locale":"en_US","og_type":"article","og_title":"Top 5 West End Shows to Catch in London This November","og_description":"Looking for the best West End Show Tickets this November 2026? Look no more beyond our guide - best tickets, tips & more!","og_url":"https:\/\/www.headout.com\/blog\/best-west-end-shows-november\/","og_site_name":"Headout Blog","article_published_time":"2022-03-08T15:42:35+00:00","article_modified_time":"2023-09-19T14:35:34+00:00","og_image":[{"url":"https:\/\/cdn-imgix.headout.com\/tour\/20765\/TOUR-IMAGE\/499f8b39-9f0b-4da5-9f89-60bde61f9182-prettywoman-7.JPG"}],"author":"Lakshmi Menon","twitter_card":"summary_large_image","twitter_image":"https:\/\/cdn-imgix.headout.com\/tour\/20765\/TOUR-IMAGE\/499f8b39-9f0b-4da5-9f89-60bde61f9182-prettywoman-7.JPG","twitter_misc":{"Written by":"Lakshmi Menon","Est. reading time":"6 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.headout.com\/blog\/best-west-end-shows-november\/#article","isPartOf":{"@id":"https:\/\/www.headout.com\/blog\/best-west-end-shows-november\/"},"author":{"name":"Lakshmi Menon","@id":"https:\/\/www.headout.com\/blog\/#\/schema\/person\/fe80bf96115b325c05ea56f8a6e0a2f7"},"headline":"Best West End shows in November, a London Theatre guide","datePublished":"2022-03-08T15:42:35+00:00","dateModified":"2023-09-19T14:35:34+00:00","mainEntityOfPage":{"@id":"https:\/\/www.headout.com\/blog\/best-west-end-shows-november\/"},"wordCount":3271,"commentCount":0,"publisher":{"@id":"https:\/\/www.headout.com\/blog\/#organization"},"image":{"@id":"https:\/\/www.headout.com\/blog\/best-west-end-shows-november\/#primaryimage"},"thumbnailUrl":"https:\/\/cdn-imgix.headout.com\/tour\/20765\/TOUR-IMAGE\/499f8b39-9f0b-4da5-9f89-60bde61f9182-prettywoman-7.JPG","keywords":["c-167","Entertainment","Fall Blogs","Listicle","London","United Kingdom"],"articleSection":["Best West End Shows","London Theatre Tickets","Things to do in London"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/www.headout.com\/blog\/best-west-end-shows-november\/","url":"https:\/\/www.headout.com\/blog\/best-west-end-shows-november\/","name":"Top 5 West End Shows to Catch in London This November","isPartOf":{"@id":"https:\/\/www.headout.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.headout.com\/blog\/best-west-end-shows-november\/#primaryimage"},"image":{"@id":"https:\/\/www.headout.com\/blog\/best-west-end-shows-november\/#primaryimage"},"thumbnailUrl":"https:\/\/cdn-imgix.headout.com\/tour\/20765\/TOUR-IMAGE\/499f8b39-9f0b-4da5-9f89-60bde61f9182-prettywoman-7.JPG","datePublished":"2022-03-08T15:42:35+00:00","dateModified":"2023-09-19T14:35:34+00:00","description":"Looking for the best West End Show Tickets this November 2026? Look no more beyond our guide - best tickets, tips & more!","breadcrumb":{"@id":"https:\/\/www.headout.com\/blog\/best-west-end-shows-november\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.headout.com\/blog\/best-west-end-shows-november\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.headout.com\/blog\/best-west-end-shows-november\/#primaryimage","url":"https:\/\/cdn-imgix.headout.com\/tour\/20765\/TOUR-IMAGE\/499f8b39-9f0b-4da5-9f89-60bde61f9182-prettywoman-7.JPG","contentUrl":"https:\/\/cdn-imgix.headout.com\/tour\/20765\/TOUR-IMAGE\/499f8b39-9f0b-4da5-9f89-60bde61f9182-prettywoman-7.JPG","width":"900","height":"562","caption":"Best West End Shows in November | London Theatre Guide"},{"@type":"BreadcrumbList","@id":"https:\/\/www.headout.com\/blog\/best-west-end-shows-november\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Things to do in London","item":"https:\/\/www.headout.com\/things-to-do-city-london\/"},{"@type":"ListItem","position":2,"name":"London Theatre Tickets","item":"https:\/\/www.headout.com\/london-theatre-tickets-c-167\/"},{"@type":"ListItem","position":3,"name":"Best West End Shows","item":"https:\/\/www.headout.com\/blog\/best-west-end-shows-london\/"},{"@type":"ListItem","position":4,"name":"Best West End Shows in November"}]},{"@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\/fe80bf96115b325c05ea56f8a6e0a2f7","name":"Lakshmi Menon","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.headout.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/47293d4b1b985cc456d8d147bb654bc4?s=96&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/47293d4b1b985cc456d8d147bb654bc4?s=96&r=g","caption":"Lakshmi Menon"},"description":"Born to parents bit by the wander bug, Lakshmi calls her love for travel \"hereditary and habitual\". Perpetually ensconced with a book in her hand and a mug of coffee in the other, she has been to over 15 countries in her 23 years of existence and is currently saving miles and money for her solo trip to Iceland. Always hustling towards the least trodden path, she has encountered some wonderful people during her escapades and if you ever meet her, she won't stop gushing about them.","url":"https:\/\/www.headout.com\/blog\/author\/lakshmi-menon\/"}]}},"_links":{"self":[{"href":"https:\/\/www.headout.com\/blog\/wp-json\/wp\/v2\/posts\/84916"}],"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\/30"}],"replies":[{"embeddable":true,"href":"https:\/\/www.headout.com\/blog\/wp-json\/wp\/v2\/comments?post=84916"}],"version-history":[{"count":25,"href":"https:\/\/www.headout.com\/blog\/wp-json\/wp\/v2\/posts\/84916\/revisions"}],"predecessor-version":[{"id":144960,"href":"https:\/\/www.headout.com\/blog\/wp-json\/wp\/v2\/posts\/84916\/revisions\/144960"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.headout.com\/blog\/wp-json\/wp\/v2\/media\/85155"}],"wp:attachment":[{"href":"https:\/\/www.headout.com\/blog\/wp-json\/wp\/v2\/media?parent=84916"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.headout.com\/blog\/wp-json\/wp\/v2\/categories?post=84916"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.headout.com\/blog\/wp-json\/wp\/v2\/tags?post=84916"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}