Extract from the cron man pages:
Under dow 0 and 7 are both Sunday.
If both the dom and dow are specified, the command will be executed when
either of the events happen.
* 12 16 * Mon root cmd
Will run cmd at midday every Monday and every 16th, and will produce the
same result as both of these entries put together would:
* 12 16 * * root cmd
* 12 * * Mon root cmd
Basically, specifying the day of week and day of month does not mean that your command executes on a specific day of month ONLY. Your cron entry means that this command is executed:
1. On the 22nd day of May
2. On every Saturday.
If you wanted the command to run ONLY on Saturday 22nd May, then you should rather specify:
0 12 22 05 * /sbin/shutdown -h now
This tells the crond that this command must ONLY run on 12:00 on the 22nd Day of the 5th Month (ie. May); irrespective of what day of the week that date falls on.
Also if you wanted this to happen once off on the 22nd, you could have commented this entry out in the cron and it would not have happened again.