Using panic is not a proper way to handle errors.  This assumes that the developer is only ever evaluating static cron specs that aren't configured dynamically.  If I wanted to utilize the Parse function in this library, and manage crons through some type of configuration interface, I would have no way to recover from parsing an improperly-formatted spec, other than deferred recover.  There is a reason we don't see this practice inside the stdlib.  Using errors allows me to recover from that scenario with ease.