Be flexible
This is one of the things to know before traveling to Iran. Some patience is essential because Iranians are generally laid-back when it comes to the idea of time. Don't expect things to go smoothly or on schedule. It's even conceivable (though luckily not very often) to go to an attraction only to discover that it's closed on that particular day. While a broad itinerary is useful, leave some space for flexibility in case things don't go as planned.
As a visitor to the country, you will very certainly be welcomed to people's homes for lunch. Say yes if you can. Cooking Persian food is a time-consuming procedure, and the greatest dishes are those produced at home—not to mention the company. The only risk is that you will fill your whole itinerary with invites in a couple of minutes. Maintain flexibility in your plans and recognize that Iranian time operates on its own schedule.