Ideally, seven days. That gives you enough time to really get to see Zanzibar, do lots of activities while you're here, get to know some of the locals, immerse yourself into the local culture, enjoy the amazing beaches, and fully relax.