[]
Riding off into the sunset! Kelley Flanagan and Peter Weber went on a romantic cruise trip after getting back together — and the reality stars offered a special look at the getaway.
“My idea of cruises from 2012 has definitely changed 🤯,” Flanagan, 30, captioned a TikTok video uploaded on Tuesday, November 8, which featured clips from inside the ship.
In the footage, the attorney gushed about her unique experience with Weber, 31, and their friends. “This was the first cruise I did since 2012, and guys, I am not going to lie — I had no idea cruise ships looked like this these days,” she said in the voiceover. “We had our own private hot tub and the bedroom was upstairs. It is just absolutely breathtaking. Everything was amazing.”
Flanagan also included a sweet video from her dinner with the pilot, saying, “This is Peter feeding me dessert, but I am not the biggest dessert person, so I gave half of it back.”
The vacation comes two months after Us Weekly confirmed that Weber and Flanagan are dating again.
Viewers originally watched their romance unfold during season 24 of The Bachelor. The dramatic finale, which aired in 2020, ended with the Virginia native proposing to Hannah Ann Sluss. However, the duo split while the season was still airing after Weber realized he still had feelings for runner-up Madison Prewett.
Following Weber and Prewett’s brief attempt to get back together — and they broke up weeks after the March 2020 Bachelor finale — he rekindled his romance with Flanagan.
“My relationship with Kelley has just been a lot of things that have kind of been serendipitous,” he said on the “Viall Files” podcast in April 2020. ”You go all the way back to the very beginning, her and I running into each other before any of this started, her getting a sign of running into me. That was crazy. What I don’t know if a lot of people know is, obviously the show happened, it didn’t work out for us on the show. After the show, I was in Miami, I had the opportunity to go to the Super Bowl there with my brother and I ran into her on Saturday night before the Super Bowl.”
{ let bidders = [‘a9’, ‘ix’, ‘iris’]; // create a requestManager to keep track of bidder state to determine when to send ad server // request and what amazonSlots to request from the ad server var requestManager = { adserverRequestSent: false, }; //loop through bidder array and add the bidders to the request manager: bidders.forEach( function( bidder ) { requestManager[bidder] = false; } ); // return true if all bidders have returned function allBiddersBack() { var allBiddersBack = bidders // get the booleans from the object .map( function( bidder ) { return requestManager[bidder]; } ) // get rid of false values – indicates that the bidder has responded .filter( Boolean ) // if length is equal to bidders, all bidders are back .length === bidders.length; return allBiddersBack; } // handler for header bidder responses function headerBidderBack( bidder ) { // return early if request to adserver is already sent if ( requestManager.adserverRequestSent === true ) { return; } // flip bidder back flag if ( bidder === ‘a9’ ) { requestManager.a9 = true; console.log(‘second promise a9 ready’); } else if ( bidder === ‘ix’ ) { requestManager.ix = true; console.log(‘second promise ix ready’); } else if ( bidder === ‘iris’ ) { requestManager.iris = true; console.log(‘second promise iris ready’); } // if all bidders are back, send the request to the ad server if ( allBiddersBack() ) { resolve( url ); } } if ( typeof apstag == ‘object’ && apstag ) { apstag.fetchBids({ slots: [{ slotID: window.prerollTag[vHash], mediaType: ‘video’ }] }, function( bids ) { console.log( “AMI jwp amazon bid callback”, new Date().getTime(), bids ); window.jwpBids[vHash].amazon = true; if ( bids.length > 0 ) { //If we have received any bids back try { console.log(“AMI jwp amazon bid request ad”, bids[0].encodedQsParams); url = url + ‘&scp=’ + bids[0].encodedQsParams; } catch ( e ) { console.log(e); } } else { console.log(“AMI jwp amazon no bids”); } headerBidderBack(‘a9’); }); } else { headerBidderBack(‘a9’); } headertag.cmd.push( function() { headertag.retrieveVideoDemand( [{‘htSlotName’: ‘preroll’}], function( demand ) { console.log( “AMI jwp IX callback”, demand ); if ( ‘undefined’ !== typeof demand.preroll && demand.preroll.length ){ window.jwpBids[vHash].ixBids = demand.preroll[0].targeting.price; console.log( ‘AMI jwp IX Bids’, new Date().getTime(), demand.preroll[0].targeting ); var vastURL = new URL( url ); var vastParams = new URLSearchParams( vastURL.search ); if ( vastParams.has( ‘cust_params’ ) ) { var custParams = new URLSearchParams( vastParams.get( ‘cust_params’ ) ); } else { var custParams = new URLSearchParams(); } var keys = Object.keys( demand.preroll[0].targeting.price ); for ( var key of keys ) { custParams.set( key, demand.preroll[0].targeting.price[key][0]); } vastParams.set( ‘cust_params’, custParams.toString() ); vastURL.search = vastParams.toString(); url = vastURL.toString(); } headerBidderBack(‘ix’); } ); } ); // Get main item context data window.irisContext.getContext(jwplayer(el).getPlaylistItem().mediaid).then(function(data) { // Encode the context data console.log( ‘AMI jwp IrisTV Bids’, new Date().getTime(), data.context ); // Replace the server url with the context data (this is for simple ad requests), // If you have the serverUrl dynamically configured, then you will need to append the context data // under cust_params, so this is just for testing purpose if ( data.context && Object.keys( data.context ).length ) { var vastURL = new URL( url ); var vastParams = new URLSearchParams( vastURL.search ); if ( vastParams.has( ‘cust_params’ ) ) { var custParams = new URLSearchParams( vastParams.get( ‘cust_params’ ) ); } else { var custParams = new URLSearchParams(); } custParams.set( ‘iris_context’, data.context.join(‘,’)); vastParams.set( ‘cust_params’, decodeURIComponent( custParams.toString() ) ); vastURL.search = vastParams.toString(); url = vastURL.toString(); } headerBidderBack(‘iris’); }); setTimeout(function(){ resolve( url ); }, 10000); }); } var player_jwplayer_Dy65ZAmG_zhNYySv2_div = jwplayer(el).setup(videoParams).on(“ready”, function(){ var el = decodeURIComponent( “jwplayer_Dy65ZAmG_zhNYySv2_div” ); var playerInstance = jwplayer(el); ns_.StreamingAnalytics.JWPlayer( playerInstance, { publisherId: “6036076”, labelmapping: “ns_st_pu=”AMI”, c3=”Us Weekly”, ns_st_ge=”” + decodeURIComponent( “%2Anull” ) + “”, ns_st_ia=”” + decodeURIComponent( “%2Anull” ) + “”, ns_st_ce=”” + decodeURIComponent( “1” ) + “”, ns_st_ddt=”” + decodeURIComponent( “%2Anull” ) + “”, ns_st_tdt=”” + decodeURIComponent( “%2Anull” ) + “””, }); }).on(‘adsManager’, (e) => { var vHash = ‘ami’ + decodeURIComponent( ‘Dy65ZAmG’ ); const { adsManager, videoElement } = e; const iasConfig = { anId: ‘928572’, campId: `${jwplayer().getWidth()}x${jwplayer().getHeight()}`, // This is dynamic based on player dimensions, but can be hard coded chanId: window.prerollTag[vHash], placementId: ‘Open Auction’, pubOrder: ‘Video’, pubId: ‘Direct’ }; if (googleImaVansAdapter) { googleImaVansAdapter.init(window.google, adsManager, videoElement, iasConfig); } }).on( ‘time’, function( e ) { var id = this.id; var pct = Math.round( e.position ); if ( ! window.amiPlayersData ) { window.amiPlayersData = {}; } if ( ! window.amiPlayersData[id] ) { window.amiPlayersData[id] = { m3: false, m10: false }; } if ( window.amiPlayersData[id][‘m3’] === false && pct >= 3 ) { window.amiPlayersData[id][‘m3’] = true; console.log( ‘3sec played: ‘, id ); window.dataLayer = window.dataLayer || []; dataLayer.push( {event: ‘JWPlayEvent’, jwTime: ‘3s played’} ); } if ( window.amiPlayersData[id][‘m10’] === false && pct >= 10 ) { window.amiPlayersData[id][‘m10’] = true; console.log( ’10sec played: ‘, id ); window.dataLayer = window.dataLayer || []; dataLayer.push( {event: ‘JWPlayEvent’, jwTime: ’10s played’} ); } }).on( ‘complete’, function( e ) { if ( window.amiPlayersData && window.amiPlayersData[ this.id ] ) { window.amiPlayersData[ this.id ][‘m3’] = false; window.amiPlayersData[ this.id ][‘m10’] = false; console.log( ‘clear played: ‘, this.id ); } }).once(“play”, function(){ var el = decodeURIComponent( “jwplayer_Dy65ZAmG_zhNYySv2_div” ); var playerInstance = jwplayer(el); loadIrisPlugin(playerInstance, playerInstance.getConfig().plugins[“https://ovp.iris.tv/plugins/jwplayer/v2/iris-jwplayer8.adaptive.min.js”]) }).on(‘play’, (e) => { var el = decodeURIComponent( “jwplayer_Dy65ZAmG_zhNYySv2_div” ); var vHash = “ami” + decodeURIComponent( “Dy65ZAmG” ); var jwInfo = jwplayer(el).getPlaylistItem(jwplayer(el).getPlaylistIndex()); // skip if the video was paused and trying to resume if (jwplayer(el).getState() !== ‘idle’ && jwplayer(el).getState() !== ‘complete’) { return; } window.permutive.track(“VideoPlay”, { play_id: el, //this will stay constant for all of the events emitted during the same video play video: { duration: Math.round(jwInfo.duration), // in seconds name: jwInfo.title, video_id: decodeURIComponent( “Dy65ZAmG” ), description: jwInfo.description, published_at: new Date(jwInfo.pubdate).toISOString() }, enriched_data:{ tvchannel: decodeURIComponent( “Us%20Weekly” ), //tv channel name language:”English”, //language of the content type: “video”, keywords: jwInfo.tags.split(“,”), //keywords for the page } }); console.log(“Permutive video play”); }).on(‘complete’, (e) => { var el = decodeURIComponent( “jwplayer_Dy65ZAmG_zhNYySv2_div” ); var vHash = “ami” + decodeURIComponent( “Dy65ZAmG” ); var jwInfo = jwplayer(el).getPlaylistItem(jwplayer(el).getPlaylistIndex()); // skip if the video was paused and trying to resume if (jwplayer(el).getState() !== ‘idle’ && jwplayer(el).getState() !== ‘complete’) { return; } window.permutive.track(“VideoComplete”, { play_id: el, //this will stay constant for all of the events emitted during the same video play video: { duration: Math.round(jwInfo.duration), // in seconds name: jwInfo.title, video_id: decodeURIComponent( “Dy65ZAmG” ), description: jwInfo.description, published_at: new Date(jwInfo.pubdate).toISOString() }, enriched_data:{ tvchannel: decodeURIComponent( “Us%20Weekly” ), //tv channel name language: “English”, //language of the content type: “video”, keywords: jwInfo.tags.split(“,”), //keywords for the page } }); console.log(“Permutive video event:”, e); window.lock_25 = false; window.lock_50 = false; window.lock_75 = false; window.lock_100 = false; }).on(‘time’, (e) => { var el = decodeURIComponent( “jwplayer_Dy65ZAmG_zhNYySv2_div” ); var vHash = “ami” + decodeURIComponent( “Dy65ZAmG” ); var jwInfo = jwplayer(el).getPlaylistItem(jwplayer(el).getPlaylistIndex()); var progress = (e.currentTime/e.duration).toFixed(2); if ( (0.25 === progress && false === window.lock_25) || (0.5 === progress && false === window.lock_50) || (0.75 === progress && false === window.lock_75) || (100 === progress && false === window.lock_100) ) { window.permutive.track(“VideoProgress”, { play_id: el, //this will stay constant for all of the events emitted during the same video play progress: Number(progress), video: { duration: Math.round(jwInfo.duration), // in seconds name: jwInfo.title, video_id: decodeURIComponent( “Dy65ZAmG” ), description: jwInfo.description, published_at: new Date(jwInfo.pubdate).toISOString() }, enriched_data:{ tvchannel: decodeURIComponent( “Us%20Weekly” ), //tv channel name language: “English”, //language of the content type: “video”, keywords: jwInfo.tags.split(“,”), //keywords for the page } }); if ( 0.25 === progress ) { window.lock_25 = true; } if ( 0.5 === progress ) { window.lock_50 = true; } if ( 0.75 === progress ) { window.lock_75 = true; } if ( 1 === progress ) { window.lock_100 = true; } console.log(“Permutive video play progress ” + progress); } }).on(‘mute’, (e) => { var el = decodeURIComponent( “jwplayer_Dy65ZAmG_zhNYySv2_div” ); var vHash = “ami” + decodeURIComponent( “Dy65ZAmG” ); var jwInfo = jwplayer(el).getPlaylistItem(jwplayer(el).getPlaylistIndex()); window.permutive.track(“VideoEvent”, { play_id: el, //this will stay constant for all of the events emitted during the same video play event: (e.mute) ? “sound off” : “sound on”, video: { duration: Math.round(jwInfo.duration), // in seconds name: jwInfo.title, video_id: decodeURIComponent( “Dy65ZAmG” ), description: jwInfo.description, published_at: new Date(jwInfo.pubdate).toISOString() } }); console.log(“Permutive video event:”, e); }).on(‘fullscreen’, (e) => { var el = decodeURIComponent( “jwplayer_Dy65ZAmG_zhNYySv2_div” ); var vHash = “ami” + decodeURIComponent( “Dy65ZAmG” ); var jwInfo = jwplayer(el).getPlaylistItem(jwplayer(el).getPlaylistIndex()); window.permutive.track(“VideoEvent”, { play_id: el, //this will stay constant for all of the events emitted during the same video play event: (e.fullscreen) ? “fullscreen on” : “fullscreen off”, video: { duration: Math.round(jwInfo.duration), // in seconds name: jwInfo.title, video_id: decodeURIComponent( “Dy65ZAmG” ), description: jwInfo.description, published_at: new Date(jwInfo.pubdate).toISOString() } }); console.log(“Permutive video event:”, e); }).on(‘ready’, (e) => { var el = decodeURIComponent( “jwplayer_Dy65ZAmG_zhNYySv2_div” ); var vHash = “ami” + decodeURIComponent( “Dy65ZAmG” ); var jwInfo = jwplayer(el).getPlaylistItem(jwplayer(el).getPlaylistIndex()); console.log(jwInfo); window.lock_25 = false; window.lock_50 = false; window.lock_75 = false; window.lock_100 = false; window.permutive.track(“VideoLoad”, { play_id: el, //this will stay constant for all of the events emitted during the same video play video: { duration: Math.round(jwInfo.duration), // in seconds name: jwInfo.title, video_id: decodeURIComponent( “Dy65ZAmG” ), description: jwInfo.description, published_at: new Date(jwInfo.pubdate).toISOString() }, enriched_data:{ tvchannel: decodeURIComponent( “Us%20Weekly” ), //tv channel name language: “English”, //language of the content type: “video”, keywords: jwInfo.tags.split(“,”), //keywords for the page } }); console.log(“Permutive video load event”); }).on(‘adPlay’, (e) => { var el = decodeURIComponent( “jwplayer_Dy65ZAmG_zhNYySv2_div” ); var vHash = “ami” + decodeURIComponent( “Dy65ZAmG” ); window.adInfo = e; var jwInfo = jwplayer(el).getPlaylistItem(jwplayer(el).getPlaylistIndex()); window.adlock_25 = false; window.adlock_50 = false; window.adlock_75 = false; window.adlock_100 = false; window.permutive.track(“VideoAdPlay”, { play_id: el, //this will stay constant for all of the events emitted during the same video play ad: { duration: Math.round(window.adInfo.duration), creative_name: window.adInfo.adtitle, ad_id: window.adInfo.adId, title: window.adInfo.adtitle, video_type: “instream” //outstream }, video: { duration: Math.round(jwInfo.duration), // in seconds name: jwInfo.title, video_id: decodeURIComponent( “Dy65ZAmG” ), description: jwInfo.description, published_at: new Date(jwInfo.pubdate).toISOString() }, enriched_data:{ tvchannel: decodeURIComponent( “Us%20Weekly” ), //tv channel name language: “English”, //language of the content type: “video”, keywords: jwInfo.tags.split(“,”), //keywords for the page } }); console.log(“Permutive video ad play”); }).on(‘adClick’, (e) => { var el = decodeURIComponent( “jwplayer_Dy65ZAmG_zhNYySv2_div” ); var vHash = “ami” + decodeURIComponent( “Dy65ZAmG” ); var jwInfo = jwplayer(el).getPlaylistItem(jwplayer(el).getPlaylistIndex()); window.permutive.track(“VideoAdClick”, { play_id: el, //this will stay constant for all of the events emitted during the same video play ad: { duration: Math.round(window.adInfo.duration), creative_name: window.adInfo.adtitle, ad_id: window.adInfo.adId, title: window.adInfo.adtitle, video_type: “instream” //outstream }, video: { duration: Math.round(jwInfo.duration), // in seconds name: jwInfo.title, video_id: decodeURIComponent( “Dy65ZAmG” ), description: jwInfo.description, published_at: new Date(jwInfo.pubdate).toISOString() }, enriched_data:{ tvchannel: decodeURIComponent( “Us%20Weekly” ), //tv channel name language: “English”, //language of the content type: “video”, keywords: jwInfo.tags.split(“,”), //keywords for the page } }); console.log(“Permutive video ad click”); }).on(‘adTime’, (e) => { var el = decodeURIComponent( “jwplayer_Dy65ZAmG_zhNYySv2_div” ); var vHash = “ami” + decodeURIComponent( “Dy65ZAmG” ); var jwInfo = jwplayer(el).getPlaylistItem(jwplayer(el).getPlaylistIndex()); var progress = (e.position/e.duration).toFixed(2); if ( (0.25 >= progress && false === window.adlock_25) || (0.5 >= progress && false === window.adlock_50) || (0.75 >= progress && false === window.adlock_75) || (0.95 >= progress && false === window.adlock_100) ) { window.permutive.track(“VideoAdProgress”, { play_id: el, //this will stay constant for all of the events emitted during the same video play progress: Number(progress), ad: { duration: Math.round(window.adInfo.duration), creative_name: window.adInfo.adtitle, ad_id: window.adInfo.adId, title: window.adInfo.adtitle, video_type: “instream” //outstream }, video: { duration: Math.round(jwInfo.duration), // in seconds name: jwInfo.title, video_id: decodeURIComponent( “Dy65ZAmG” ), description: jwInfo.description, published_at: new Date(jwInfo.pubdate).toISOString() }, enriched_data:{ tvchannel: decodeURIComponent( “Us%20Weekly” ), //tv channel name language: “English”, //language of the content type: “video”, keywords: jwInfo.tags.split(“,”), //keywords for the page } }); if ( 0.25 >= progress ) { window.adlock_25 = true; } if ( 0.5 >= progress ) { window.adlock_50 = true; } if ( 0.75 >= progress ) { window.adlock_75 = true; } if ( 0.95 >= progress ) { window.adlock_100 = true; } console.log(“Permutive video ad progress ” + progress); } }).setPlaylistItemCallback(function(item, index) { return waitForAmazon // Wait until Amazon is loaded. .then(() => performAsyncBidding( player_jwplayer_Dy65ZAmG_zhNYySv2_div, item, index ), () => { console.log(“AMI JWP bidding FAILER”); }) // External bidding. .then(tag => { // Update the playlist item. console.log(“AMI jwp new headerbid”, tag); return Object.assign({}, item, { adschedule: [{ tag, offset: “pre” }] }); }).catch(function(e){ console.log(“AMI jwp bidding failed”, e); return item; }); // If bidding fails, use unmodified playlist item. });; clearInterval(checkJWReady); } }, 500); })(); ]]>
After less than one year of dating, Weber and Flanagan pulled the plug on their relationship in December 2020. “It saddens me to say this, but Peter and I have decided to go our separate ways,” Flanagan wrote via Instagram in January 2021. “Peter and I had some unbelievable times together and they will definitely be missed. Unfortunately, him and I are in two different stages of our lives and saw our future paths differently. I wish Peter the absolute best and want to thank everyone for your continued support as I move on to my next chapter.”
Earlier this year, the twosome sparked reconciliation rumors when they were spotted spending time together in Chicago. In September, a source exclusively told Us that Weber and Flanagan are “full-on back” together.
“Peter wants to be in a serious committed relationship and his feelings for Kelley never went away,” the insider shared at the time. “They’re both happy and looking forward to where things go this time around.”
The ABC personalities have since teased their rekindled bond via social media. Last month, Flanagan also opened up about where she and Weber plan to live in the future.
“It’s a tough one. I love Miami, but it’s not feasible for Peter. It’s been tough,” she told Jason Tartick on his “Trading Secrets” podcast. “I think New York is amazing, but you know, it’s something him and I have to talk about.”
Flanagan continued: “I don’t think L.A. is necessarily my scene. I could see myself in New York way more than any of the other cities that, you know, he has access to or [that] United [Airlines] has a base. So, I don’t know. We’re not necessarily there. We have some conversations [to have] when that does happen.”
Scroll down to see the highlights from Flanagan and Weber’s cruise:
Credit: Courtesy of Kelley Flanagan/Instagram
Bachelor’s Kelley Flanagan Offers a Glimpse at Cruise Ship Getaway With Peter Weber After Reconciliation: ‘Just Absolutely Breathtaking’
Riding off into the sunset! Kelley Flanagan and Peter Weber went on a romantic cruise trip after getting back together — and the reality stars offered a special look at the getaway. “My idea of cruises from 2012 has definitely changed 🤯,” Flanagan, 30, captioned a TikTok video uploaded on Tuesday, November 8, which featured clips from inside the ship. In the footage, the attorney gushed about her unique experience with Weber, 31, and their friends. “This was the first cruise I did since 2012, and guys, I am not going to lie — I had no idea cruise ships looked like this these days,” she said in the voiceover. “We had our own private hot tub and the bedroom was upstairs. It is just absolutely breathtaking. Everything was amazing.” Flanagan also included a sweet video from her dinner with the pilot, saying, “This is Peter feeding me dessert, but I am not the biggest dessert person, so I gave half of it back.” The vacation comes two months after Us Weekly confirmed that Weber and Flanagan are dating again. Viewers originally watched their romance unfold during season 24 of The Bachelor. The dramatic finale, which aired in 2020, ended with the Virginia native proposing to Hannah Ann Sluss. However, the duo split while the season was still airing after Weber realized he still had feelings for runner-up Madison Prewett. Following Weber and Prewett’s brief attempt to get back together — and they broke up weeks after the March 2020 Bachelor finale — he rekindled his romance with Flanagan. “My relationship with Kelley has just been a lot of things that have kind of been serendipitous,” he said on the “Viall Files” podcast in April 2020. ”You go all the way back to the very beginning, her and I running into each other before any of this started, her getting a sign of running into me. That was crazy. What I don’t know if a lot of people know is, obviously the show happened, it didn’t work out for us on the show. After the show, I was in Miami, I had the opportunity to go to the Super Bowl there with my brother and I ran into her on Saturday night before the Super Bowl.” [jwplayer Dy65ZAmG-zhNYySv2] After less than one year of dating, Weber and Flanagan pulled the plug on their relationship in December 2020. “It saddens me to say this, but Peter and I have decided to go our separate ways,” Flanagan wrote via Instagram in January 2021. “Peter and I had some unbelievable times together and they will definitely be missed. Unfortunately, him and I are in two different stages of our lives and saw our future paths differently. I wish Peter the absolute best and want to thank everyone for your continued support as I move on to my next chapter.” Earlier this year, the twosome sparked reconciliation rumors when they were spotted spending time together in Chicago. In September, a source exclusively told Us that Weber and Flanagan are “full-on back” together. “Peter wants to be in a serious committed relationship and his feelings for Kelley never went away,” the insider shared at the time. “They’re both happy and looking forward to where things go this time around.” The ABC personalities have since teased their rekindled bond via social media. Last month, Flanagan also opened up about where she and Weber plan to live in the future. “It’s a tough one. I love Miami, but it’s not feasible for Peter. It’s been tough,” she told Jason Tartick on his “Trading Secrets” podcast. “I think New York is amazing, but you know, it’s something him and I have to talk about.” Flanagan continued: “I don’t think L.A. is necessarily my scene. I could see myself in New York way more than any of the other cities that, you know, he has access to or [that] United [Airlines] has a base. So, I don’t know. We’re not necessarily there. We have some conversations [to have] when that does happen.” Scroll down to see the highlights from Flanagan and Weber’s cruise:
Credit: Courtesy of Kelley Flanagan/Instagram
In Full Glam
The Illinois native wore a light blue gown for her date with Weber.
Credit: Courtesy of Kelley Flanagan/Instagram
Dinner and a Show
Flanagan filmed snippets of her first night at a cruise show.
Credit: Courtesy of Kelley Flanagan/Instagram
A Night Out
Flanagan was all smiles while her boyfriend fed her dessert.
Credit: Courtesy of Kelley Flanagan/Instagram
Having Fun
The TV personality showed her followers the inside of her room, which included a private hot tub and a cozy seating area.
Credit: Courtesy of Kelley Flanagan/Instagram
A Special Occasion
Flanagan and Weber’s trip comes as they give their relationship another try.
In order to view the gallery, please allow Manage Cookies