
Image via Freeform
Freeform’s hottest summer show is back for another season, two years after the first outing left audiences reeling. Now with a new cast and a new setting, season two of Cruel Summer promises more mystery, more drama, and some romance too.
The latest bunch of episodes from the anthology series follows a brand new set of characters, primarily Megan Landry, described as a computer genius, played by Kim Possible‘s Sadie Stanley, and the exchange student who moves into her home Isabella LaRue, played by Little Fires Everywhere‘s Lexi Underwood.
With the coastal town of Chatham, Washington providing the geographical backdrop, Megan and Isabella develop a love triangle with Megan’s best friend Luke (Griffin Gluck), and the three soon become involved in a murder investigation after a body surfaces at a nearby lake. Season two won’t have time jumps as significant as the first season’s, as it takes place over the summer of 1999, the winter of 1999, and the summer of 2000.
What time and where does Cruel Summer air?

Freeform’s Cruel Summer airs Mondays at 10pm ET. Viewers can catch it on Freeform as it airs, but don’t worry if you can’t make it — episodes will all be available on Hulu one day after they air.
What is the release schedule of Cruel Summer‘s second season?

Season two will be composed of ten episodes airing from June 5 through to July 31.
- Episode 1, “Welcome to Chatham” — June 5, 2023
- Episode 2, “Ride or Die” — June 5, 2023
- Episode 3, “Bloody Knuckles” — June 12, 2023
- Episode 4, “Springing a Leak” — June 19, 2023
- Episode 5, “All I Want for Christmas” — June 26, 2023
- Episode 6, “The Plunge” — July 3, 2023
- Episode 7, “It’s the End of the World” — July 10, 2023
- Episode 8, “Confess Your Sins” — July 17, 2023
- Episode 9, “The Miseducation of Luke Chambers” — July 24, 2023
- Episode 10, “Endgame” — July 31, 2023
‘;
About the author
‘+
// ”+
// ‘
‘+
// ‘
// ”+
// ‘ ‘+
// ‘ ‘+
// ‘
‘+
// ”);
// launch zerg
// if ( WGTCADS.isMobile ) {
// (function () {
// var zergnet = document.createElement(‘script’);
// zergnet.type=”text/javascript”;
// zergnet.async = true;
// zergnet.src=”https://www.zergnet.com/zerg.js?id=”;
// var znscr = document.getElementsByTagName(‘script’)[0];
// znscr.parentNode.insertBefore(zergnet, znscr);
// })();
// }
// else {
// (function() {
// var zergnet = document.createElement(‘script’);
// zergnet.type=”text/javascript”; zergnet.async = true;
// zergnet.src=”https://www.zergnet.com/zerg.js?id=”;
// var znscr = document.getElementsByTagName(‘script’)[0];
// znscr.parentNode.insertBefore(zergnet, znscr);
// })();
// }
// hide next link
jQuery(‘.post_pagination .next’).parent().css(‘visibility’, ‘hidden’);
refreshAds();
// tracking
if (typeof window.parent.postMessage !== ‘undefined’) {
parent.postMessage(“encaction”, “*”); // `*` on any domain
}
// hide other rows on mobile
// if ( WGTCADS.isMobile ) {
// jQuery(‘#zerglayout .zergentity:gt(1)’).hide();
// }
}
else {
/*
jQuery.get(addressValue, qparams, function (result) {
var this_result = jQuery(result);
$post_content.removeClass(‘loading’).html(this_result.find(‘#post_content’).children());
this_result.find(‘#post_content > script’).appendTo(‘#post_content’);
if (currentPageUrl == pageLen + 1) {
// hide regular partner ads and show different IDs for tracking
jQuery(‘.js-footer-zerg:eq(0)’).css({‘height’: 0, ‘width’: 0, ‘overflow’: ‘hidden’});
} else {
jQuery(‘.js-footer-zerg:eq(0)’).css({‘height’: ‘auto’, ‘width’: ‘auto’, ‘overflow’: ‘visible’});
}
setTimeout(function () {
loadTheSlider();
}, 1000);
CMNUNT.refreshAds();
// tracking
if (typeof window.parent.postMessage !== ‘undefined’) {
parent.postMessage(“encaction”, “*”); // `*` on any domain
}
}, ‘html’);
*/
jQuery.get(addressValue, qparams, function (result) {
var this_result = jQuery(result);
var video =this_result.find(“[src*=’content.jwplatform.com’]”);
if (video.length >0) {
url = video[0].src;
console.log(url);
// var videourl = this_result.html().substr(video);
var sc = $(”).load(url, function () {
var sub1 = sc.html().substring(sc.html().search(‘document.write’));
var str=”document.write”;
if (sub1.charAt(sub1.search(“;”) – 4) == ‘”‘) {
var sub2 = sub1.substring(28, sub1.search(“;”) – 4);
} else {
var sub2 = sub1.substring(25, sub1.search(“;”) – 10);
}
this_result.find(‘.wgtc-post-video’).append(“”);
$post_content.removeClass(‘loading’).html(this_result.find(‘#post_content’).children());
this_result.find(‘#post_content > script’).appendTo(‘#post_content’);
if (currentPageUrl == pageLen + 1) {
// hide regular partner ads and show different IDs for tracking
jQuery(‘.js-footer-zerg:eq(0)’).css({‘height’: 0, ‘width’: 0, ‘overflow’: ‘hidden’});
} else {
jQuery(‘.js-footer-zerg:eq(0)’).css({
‘height’: ‘auto’,
‘width’: ‘auto’,
‘overflow’: ‘visible’
});
}
setTimeout(function () {
loadTheSlider();
}, 1000);
refreshAds();
// tracking
if (typeof window.parent.postMessage !== ‘undefined’) {
parent.postMessage(“encaction”, “*”); // `*` on any domain
}
});
}
else
{
$post_content.removeClass(‘loading’).html(this_result.find(‘#post_content’).children());
this_result.find(‘#post_content > script’).appendTo(‘#post_content’);
if (currentPageUrl == pageLen + 1) {
// hide regular partner ads and show different IDs for tracking
jQuery(‘.js-footer-zerg:eq(0)’).css({‘height’: 0, ‘width’: 0, ‘overflow’: ‘hidden’});
} else {
jQuery(‘.js-footer-zerg:eq(0)’).css({
‘height’: ‘auto’,
‘width’: ‘auto’,
‘overflow’: ‘visible’
});
}
setTimeout(function () {
loadTheSlider();
}, 1000);
refreshAds();
// tracking
if (typeof window.parent.postMessage !== ‘undefined’) {
parent.postMessage(“encaction”, “*”); // `*` on any domain
}
}
}, ‘html’);
/*
jQuery.get(‘http://wegotthiscovered.com/testvido.html’, qparams, function (result) {
var this_result = jQuery(result);
$post_content.removeClass(‘loading’).html(this_result);
// this_result.find(‘#post_content > script’).appendTo(‘#post_content’);
if (currentPageUrl == pageLen + 1) {
// hide regular partner ads and show different IDs for tracking
jQuery(‘.js-footer-zerg:eq(0)’).css({‘height’: 0, ‘width’: 0, ‘overflow’: ‘hidden’});
} else {
jQuery(‘.js-footer-zerg:eq(0)’).css({‘height’: ‘auto’, ‘width’: ‘auto’, ‘overflow’: ‘visible’});
}
setTimeout(function () {
loadTheSlider();
}, 1000);
CMNUNT.refreshAds();
// tracking
if (typeof window.parent.postMessage !== ‘undefined’) {
parent.postMessage(“encaction”, “*”); // `*` on any domain
}
}, ‘html’);*/
}
};
if (typeof jwplayer == ‘function’)
{
if($vid_short_code.length > 0) {
var address_href = window.location.pathname;
var address_array = address_href.split(“https://wegotthiscovered.com/”);
var final_array = address_array[address_array.length-2];
var not_numeric = isNaN(final_array);
if(not_numeric != true) { $vid_short_code.css( “display”, “none” ); }
}
var playerInstance = jwplayer(0);
var playerContainerEl = document.querySelector(‘.wgtc-post-video’);
function getElementOffsetTop(el) {
var boundingClientRect = el.getBoundingClientRect();
var bodyEl = document.body;
var docEl = document.documentElement;
var scrollTop = window.pageYOffset || docEl.scrollTop || bodyEl.scrollTop;
var clientTop = docEl.clientTop || bodyEl.clientTop || 0;
return Math.round(boundingClientRect.top + scrollTop – clientTop +700);
}
function getScrollTop() {
var docEl = document.documentElement;
return (window.pageYOffset || docEl.scrollTop) – (docEl.clientTop || 0);
}
var config = playerInstance.getConfig();
var utils = playerInstance.utils;
// get height of player element
// var playerHeight = config.containerHeight;
// get player element position from top of document
var playerOffsetTop = getElementOffsetTop(playerContainerEl);
// set player container to match height of actual video element
// this prevents container from disappearing and changing element positions
// on page when player becomes minimized. this also leaves a nice visual
// placeholder space for minimized player to return to when appropriate
// playerContainerEl.style.height = playerHeight + ‘px’;
// below we handle window scroll event without killing performance
// this is a minimal approach. please consider implementing something more extensive:
// i.e. http://joji.me/en-us/blog/how-to-develop-high-performance-onscroll-event
// determine player display when scroll event is called
// if inline player is no longer visible in viewport, add class
// .player-minimize to minimize and float. otherwise, remove the class to put
// player back to inline inline position
function onScrollViewHandler() {
var minimize = getScrollTop() >= playerOffsetTop;
if (!is_mobile()) {
// utils.toggleClass(playerContainerEl, ‘player-minimize’, minimize);
}
// update the player’s size so the controls are adjusted
// playerInstance.resize();
}
// namespace for whether or not we are waiting for setTimeout() to finish
var isScrollTimeout = false;
// window onscroll event handler
window.onscroll = function() {
// skip if we’re waiting on a scroll update timeout to finish
if (isScrollTimeout) return;
// flag that a new timeout will begin
isScrollTimeout = true;
// otherwise, call scroll event view handler
onScrollViewHandler();
// set new timeout
setTimeout(function() {
// reset timeout flag to false (no longer waiting)
isScrollTimeout = false;
}, 80);
};
}
});
function setCookie(cname, cvalue, exdays) {
var d = new Date();
d.setTime(d.getTime() + (exdays*24*60*60*1000));
var expires = “expires=”+d.toUTCString();
document.cookie = cname + “=” + cvalue + “; ” + expires + “; path=/”;
}
function getCookie(cname) {
var name = cname + “=”;
var ca = document.cookie.split(‘;’);
for(var i=0; i
var gallerySlideCount = jQuery(‘.gallery-slider .slider-list li’).length;
gallerySlider = jQuery(‘.gallery-slider .slider-list’).bxSlider({
adaptiveHeight: true,
preloadImages: ‘all’,
pagerCustom: ‘#thumbnails’,
mode:’fade’,
prevText:”,
nextText:”,
nextSelector:’.control.next’,
prevSelector:’.control.prev’,
onSliderLoad: function (currentIndex) {
var slideCount = gallerySlideCount;
/* lazy loading */
var direction = 1;
var $sliderImgs = jQuery(“.slider-list li img”);
var $curImg = $sliderImgs.eq(currentIndex);
if ($curImg && $curImg.hasClass(‘lazy’)) {
$curImg.attr(‘src’, $curImg.data(‘src’)).one(‘load’, function () {
jQuery(this).removeClass(‘lazy’);
gallerySlider.reloadSlider();
});
}
var $nextImg = $sliderImgs.eq(currentIndex+direction);
if ($nextImg && $nextImg.hasClass(‘lazy’)) {
$nextImg.attr(‘src’, $nextImg.data(‘src’)).one(‘load’, function () {
jQuery(this).removeClass(‘lazy’);
});
}
/* end lazy loading */
jQuery(‘.js-image-count’).html( (currentIndex+1) + ‘ of ‘ + slideCount );
jQuery(‘.gallery-slider .gallery-slider-wrap’).css(‘height’, ‘auto’);
if(currentIndex > 0) {
changeHash(currentIndex);
}
if (currentIndex == 0) {
jQuery(‘.control.prev’).hide();
} else {
jQuery(‘.control.prev’).show();
}
jQuery(‘.caption-item[data-index=’+currentIndex+’]’).show();
},
onSlideBefore: function (ele, oI, nI) {
var slideCount = gallerySlideCount;
/* lazy loading */
var direction = nI – oI;
var $sliderImgs = jQuery(“.slider-list li img”);
var $curImg = $sliderImgs.eq(nI);
if ($curImg.hasClass(‘lazy’)) {
$curImg.attr(‘src’, $curImg.data(‘src’)).one(‘load’, function () {
jQuery(this).removeClass(‘lazy’);
gallerySlider.resizeSlider();
});
}
var $nextImg = $sliderImgs.eq(nI+direction);
if ($nextImg && $nextImg.hasClass(‘lazy’)) {
$nextImg.attr(‘src’, $nextImg.data(‘src’)).one(‘load’, function () {
jQuery(this).removeClass(‘lazy’);
gallerySlider.resizeSlider();
});
}
/* end lazy loading */
jQuery(‘.js-image-count’).html( (nI+1) + ‘ of ‘ + slideCount );
var galleryOffset = jQuery(ele).parents(‘.gallery-wrap’).offset().top – 50;
if (galleryOffset) {
jQuery(‘html, body’).animate({scrollTop: galleryOffset+’px’}, 600);
}
if(nI > 0) {
changeHash(nI);
} else {
changeHash(”);
}
if ((oI+1) == slideCount && (nI+1) == (slideCount-1)) {
// _gaq.push([‘_trackEvent’, ‘GalBackLastPage’, ‘clickEvent’, ‘Went back on gallery last page’]);
// ga(‘send’, ‘event’,’GalBackLastPage’ , ‘clickEvent’, ‘Went back on gallery last page’);
}
if (nI == 0) {
jQuery(‘.control.prev’).hide();
} else {
jQuery(‘.control.prev’).show();
}
jQuery(‘.caption-item’).hide();
jQuery(‘.caption-item[data-index=’+nI+’]’).show();
/*
CMNUNT.refreshAds([
‘ads-desktop-btf-leaderboard’,
‘ads-desk-square-1’,
‘ads-desk-square-2’,
‘cmn_ad_toolbar’,
‘top’,
‘ads-mobile-square-1’,
‘ads-mobile-square-2’,
‘ads-mobile-square-3’,
‘ads-mobile-square-4’,
‘ads-mobile-square-end’,
‘toolbar’]);*/
refreshAds();
// tracking
if (typeof window.parent.postMessage !== ‘undefined’) {
parent.postMessage(“encaction”,”*”); // `*` on any domain
}
}
});
}
}
function refreshAds () {
if ( WGTCADS.isMobile ) {
freestar.freestarReloadAdSlot([
“wegotthiscovered_300x250_incontent”,
“wegotthiscovered_300x600_300x250_Sidebar_4”,
“wegotthiscovered_728x90_970x250_970x90_320x50_ATF”,
“wegotthiscovered_300x250_incontent_2”,
“wegotthiscovered_728x90_320x50_Adhesion”,
“wegotthiscovered_300x250_Mobile_Footer”,
“freestar-slot-footer-ad”
]);
} else {
cpmstarAPI({
kind:”refresh”,
data:{
modules:[
“sidebar1”,
“sidebar2”,
“sidebar3”,
“sidebar4”,
“atf”,
“728x90adhesion”
]
}
});
}
}
function changeHash( index ){
var pushAddress, hashnohash;
if (index == ”) {
window.history.pushState({},””, ‘https://’ + window.location.hostname + window.location.pathname);
pushAddress = location.pathname + location.search + ‘wgtc-gallery/’;
} else {
window.location.hash = index;
hashnohash = window.location.hash.substr(1);
pushAddress = location.pathname + location.search + ‘wgtc-gallery/’ + hashnohash + “https://wegotthiscovered.com/”;
}
//pushAddress = addressValue.replace(/^.*\/\/[^\/]+/, ”).substr(1);
gtag(‘config’, ‘UA-17178859-1’, {
“page_path”: pushAddress
});
}