Rosie Ming [Sandra Oh] lives in Vancouver with Gloria [Nancy Kwan] and Stephen [Eddy Ko Hung], her maternal grandparents who are of Chinese descent. Rosie's mother Caroline [Kristen Thomson] died in a car accident when Rosie was a child. An aspiring poet with a fixation on Paris, Rosie compiles her poems into a self-published book that catches the attention of organizers of a poetry festival in Shiraz, Iran.
Though Gloria is firmly opposed to Rosie traveling to Iran, she ultimately relents after witnessing Rosie’s unwavering determination. The grandparents even pack a black chador for their granddaughter, only to discover that many festival guests are puzzled by her presence—Rosie is not a devout Muslim, and Iran does not require women to wear chadors.
Among the poets at the festival, Rosie meets Mehrnaz [Shohreh Aghdashloo], the festival’s cultural ambassador, the Chinese poet Di Di, and the German poet Dietmar [Don McKellar]. At an early competition, Rosie performs one of her poems by singing it, a choice that earns poor scores because in Iran a woman singing in public can be seen as provocative. Mehrnaz remains supportive and later takes Rosie to the tomb of Shiraz’s famed poet Hafez for inspiration. Dietmar, by contrast, is openly disdainful of Rosie’s Parisian sensibilities, and his satirical poem about wealthy Europeans feeding expensive food to their dogs at the dinner table lands badly with the audience. Rosie helps defuse the moment by proposing a slam, and the two poets improvise a joint piece that wins the crowd over, softening the rift between them.
A traditional consultation with the poems of Hafez leads Mehrnaz to task Rosie with translating one of Di Di’s poems into English for the festival’s finale. In conversation with Di Di, Rosie learns that the poet is a political exile who spent time in the United Kingdom during the Beijing massacre and has refused to return to China, and Di Di urges Rosie to make the poem her own in translation.
Early in the festival, Rosie reveals that Mehran [Navid Negahban] is her Iranian father; she has carried the belief that he abandoned the family since she was seven. As her Iran visit unfolds, she learns more about him from his friends and relatives. Mehran hails from a prominent Shiraz family and originally trained in the United States to be a fighter pilot during the Shah’s era. After the Revolution, Mehran’s ties to the Shah lead to his removal from the Air Force; he becomes a teacher of poetry and literature, and later the government asks him to pilot again during the Iran–Iraq War. The war drags on, and Mehran deserts, fleeing to Turkey where he meets Caroline, and the couple eventually settles in Canada.
Even as the risks mount, Mehran decides to return to Iran to see his dying mother, only to be arrested upon arrival and have his passport revoked. Grief-stricken by the consequences, Caroline drives carelessly, resulting in a fatal car accident. When Mehran is released, he asks Rosie to come live with him in Iran, but Rosie’s grandparents refuse and tell her a false tale that her father abandoned her. As the festival nears its climax, Mehran is hospitalized with pneumonia, and Rosie arrives to discover that he has already checked out. A doctor at the hospital provides her with her father’s home address, and relatives from Mehran’s side welcome her, sharing letters Mehran wrote to her that her grandparents had kept hidden.
With new family ties forming, Rosie learns that Mehran invited her to Iran and is waiting at the festival for a reunion. Her relatives hurry to the presentation, replacing her chador with a headscarf and more casual attire so she can perform. As she recites her revised take on Di Di’s poem, Mehran appears in the audience, and the long-awaited father–daughter reunion finally unfolds.