I have followed the instruction to create a new block [here][1] which is basically the same as [here on SE][2]. My block is indeed created but the region is wrongly set to "none" instead of "Content Post".

In my module event.module file:

 function events_block_info () {
 return [
 'events_list' => [
 'info' => "Events list",
 'region' => 'content_post',
 'visibility' => BLOCK_VISIBILITY_NOTLISTED
 ]
 ];
 }

 function events_block_view ($delta = '') {
 $result = false;
 if ($delta == 'events_list') {
 /* ... do my stuff .... */
 }
 
 return $result;
 }

This creates a block but the region is set to "none". The drawback is I have to go on each environment and change the region manually back to "Content Post". It is inefficient.

I also find it extremely weird that the creation of a block is done this way. I would expect instead that the creation takes place in the module.install file in the hook_install() function. Maybe there is way?

 [1]: http://kahthong.com/2013/06/create-your-own-custom-drupal-block-programmatically
 [2]: http://drupal.stackexchange.com/questions/27379/how-do-i-create-a-static-block-programmatically