In 1843, dealing with the failure of his last three books, Charles Dickens (Dan Stevens) is once again rejected by his publishers. As he grows deeper in debt, the father of four sets out to write and self-publish a book he hopes will revive his career.
One night, he hears the Irish housemaid tell his kids a folk tale about the awakening of spirits at Christmas. This instantly sparks an idea about the ghosts of Christmas past, present and future. He brings to life characters that he meets in London, including a man at a cemetery that inspired him to create the character of Ebenezer Scrooge (Christopher Plummer) while the character of Tiny Tim is based on his disabled nephew.
He then races to publish the book in six weeks, just in time for Christmas. His beloved book is titled A Christmas Carol.