When should I use the shrink option I have seen a lot of blogs stating that shrinking is not a good habit as it will reduce the performance of the system. I agree with all those things it will lead to side effects like fragmentation, etc.

Now the doubt I have is what are the scenarios where I should use the shrink option in the database.

I have never seen a scenario it was stated as the useful one. Is shrinking always evil?
You'll know when you need to shrink your database files, because it'll most likely come from a requirement to reclaim disk storage.  Even if there is a database that has a large amount of free space in it, I usually still like to keep it as such without shrinking.  No matter what people try to claim that it'll never use all that space, unless the database is read only then there is no guarantee for that.  Obviously, that's within reason.  If you for some reason have 1 TB free space on a 10 GB database, then that may warrant a shrink, unless it's expected to regrow at a quick rate.

The most important aspect about database file shrinking is to only do it when it is a hard requirement and do not do it routinely.