Ethan (Christopher Gorham) is a struggling writer who meets a waitress named Jesse (Alyssa Milano) at a café, the same day that his agent tells him that his latest attempt at a novel is not good enough or "real" enough for publishing. Ethan is taken with Jesse and asks her on a date. She accepts. Right after Ethan leaves, a handsome young man named Troy (Michael Landes) comes into the café and is also smitten with Jesse. He ends up asking her out as well, and she accepts.
Ethan and Jesse start dating, and soon enough he falls in love with her, even promising to Jesse that he will finish another novel. He discovers that she is divorced. Her marriage fell apart because her ex-husband did not feel like Jesse was the right woman for him to spend the rest of his life with. Ethan and Jesse grow close, and he gets to know her family very well and she meets his family, noting how enchanted he is with his sister's children. Her brother (Tom Lenk) and uncle (Beau Bridges) know that Jesse is struggling with a secret that she is keeping from Ethan.
In the meantime, Troy is also falling in love with Jesse. Jesse, knowing how much Ethan wants a family is afraid of telling him the truth so she ends their relationship and decides to leave town with Troy. Ethan is devastated, but determined to keep his promise to Jesse he completes his book. After submitting his book to his agent, he gets a call that the book will be published. He is thrilled, and while on the phone with his agent Jesse calls him from the airport. He tries to call her back, but her phone is turned off.
Now, Ethan is in a race against time. Sorting through what is fiction, and what is real, Ethan decides that he cannot lose his soul mate.