WordPress cron running twice

I tried WP Crontrol instead and it turned out that two cron jobs were being created for generate_send_csv. To fix this, I created the crons within activation hooks and deactivation hooks as follows:

register_activation_hook( __FILE__, 'my_activation' );
add_action( 'generate_send_csv', 'generate_and_send_csv' );

function my_activation() {
    wp_schedule_event('1488979800', 'daily', 'generate_send_csv');
}

register_deactivation_hook( __FILE__, 'my_deactivation' );

function my_deactivation() {
    wp_clear_scheduled_hook( 'generate_send_csv' );
}