Linus becomes infatuated with his teacher, Miss Othmar, and purchases a large, heart-shaped box of chocolates as a token of affection. Sally misinterprets his actions, assuming the gift is for her, and begins preparing a valentine in return. Meanwhile, Lucy attends a "pawpet" show staged by Snoopy and narrated by Charlie Brown, which explores the meaning of true love. At home, Sally struggles to create a proper valentine, prompting Charlie Brown to demonstrate how to cut a heart shape. However, Snoopy surpasses him by crafting a complex, music box-inspired valentine. On Valentine's Day, the children gather to exchange cards and candy. Charlie Brown, optimistic about receiving several valentines, arrives with a briefcase. During the celebration, the group distributes their valentines, including a candy heart that—when read by Sally and interpreted by Snoopy—contains the full text of
Elizabeth Barrett Browning's
Sonnet 43. As the event ends, Charlie Brown receives nothing except a single candy heart inscribed with "FORGET IT, KID!" Linus also faces disappointment, having missed the chance to deliver his gift to Miss Othmar, who has left with her boyfriend. Frustrated, Linus throws the box of chocolates off a bridge, where it is quickly eaten by Snoopy and Woodstock. Charlie Brown vents his disappointment by striking and attempting to kick his mailbox, injuring himself in the process. The following day, Charlie Brown checks his mailbox again, hoping for a belated valentine from the Little Red-Haired Girl, but instead receives a surprise kiss from Snoopy. Later, Violet gives him a reused valentine with her name erased. Schroeder criticizes Violet and the others for their insensitivity and advises Charlie Brown not to accept such a pity gesture. Charlie Brown accepts it anyway. As he and Linus reflect at the brick wall, Charlie Brown expresses regret for ignoring Schroeder’s defense but remains hopeful that Violet’s gesture might lead to more recognition the next year. Linus cautions him against such optimism. ==Voice cast==