Lara Jean Coveys gymnasieskola har inrättat ett volontärprogram; medan hennes pojkvän Peter Kavinsky arbetar som volontär med sina vänner åker Lara Jean istället till Belleviews ålderdomshem, dit hennes äldre syster Margot åkte.
På sin första dag där träffar hon Stormy, en excentrisk gammal dam som Margot ofta nämnde, och upptäcker att John Ambrose McClaren också arbetar som volontär på Belleview. De pratar om ett kärleksbrev som hon hade skrivit till honom för många år sedan, och han låter henne läsa brevet så länge hon ger tillbaka det till honom efteråt. Lara Jean kan inte sluta tänka på deras samtal och är dessutom ständigt osäker på sin relation med Peter eftersom hon inte kan sluta jämföra sig med sin före detta bästa vän och Peters före detta flickvän Gen.
På Alla hjärtans dag bevittnar Lara Jean hur hennes klasskamrater får en serenad av särskilda acapella-grupper, och får veta av en vän att Peter hade skickat en grupp för att sjunga en serenad för Gen varje period, när de fortfarande var tillsammans. Detta förstärker hennes osäkerhet, även om hon glömmer detta när hon träffar Peter senare samma dag. Han ger henne ett hjärtahalsband i silver och läser en dikt, som hon tror är original men som visar sig vara två verser ur en Edgar Allan Poe-dikt. Han ber senare om ursäkt och säger till henne att han önskar att han kunde skriva något liknande för henne, även om han menar allt i dikten.
Under volontärarbetet på Belleview kommer Lara Jean och John Ambrose närmare varandra och anordnar en stjärnbal för Belleview efter att ha upptäckt några gamla dekorationer; Han tycks utveckla känslor för henne, som inte har berättat för honom om sin relation med Peter. Istället arrangerar de sig för att åka till sin gamla mellanstadieplats, ett trädkoja, för att gräva upp den tidskapsel som de begravde för flera år sedan tillsammans med sina vänner, däribland Gen, och turas om att packa upp den. Gen hävdar att hon inte lade något i tidskapseln, Peter blir svartsjuk på John Ambrose och avslöjar sitt förhållande med Lara Jean. Hon och Peter bråkar men slutar med att bli sams.
Dagen därpå ber Lara Jean John Ambrose om ursäkt för att hon inte berättade för honom om Peter, och klär sedan upp sig inför Peters match. När hon väntar på att Peter ska komma ut visar Chris henne ett foto av Gen och honom. Hon konfronterar Peter och inser att Peter aldrig slutade prata med Gen och att Peter på skidresan planerade att bli ihop med Gen igen den kvällen. Eftersom Peter har bråttom till matchen säger han till Lara Jean att de får prata om det senare, men hon är för sårad och gör slut med honom. Hon går till trädkojan senare och träffar Gen, som avslöjar att Peter bara tröstade henne eftersom hennes föräldrar håller på att separera. Hon gick till Peter för att han hade genomgått samma upplevelse, att Peter är galen i Lara Jean och att hon inte ska tvivla på honom. Hon avslöjar också att hon faktiskt hade lagt ett vänskapsarmband som är identiskt med Lara Jeans armband i kapseln, men att hon var för generad för att visa det. Lara Jean inser att det var hon och inte Peter som alltid hade Gen i åtanke, och hon försonas med Gen.
På kvällen på pensionärsbalen ger Stormy Lara Jean en klänning och en makeover. Hon och John Ambrose dansar innan de går ut i snön. När de kysser varandra inser Lara Jean att hon verkligen älskar Peter och inte hyser några känslor för John. Hon ber om ursäkt till honom och rusar ut, förvånad över att Peter väntar utanför på henne. Han väntar utanför eftersom han kommer ihåg att hon inte gillar att köra i snö, något som hon berättade för honom på deras första dejt. Han säger att hon kan krossa hans hjärta om hon vill, men hon säger att hon älskar honom istället, och han säger att han älskar henne tillbaka. De kysser varandra och gör upp, och i en slutröst säger Lara Jean att hon hade velat ha en sagorelation med Peter, men att hon nu är nöjd med det hon har.