Change layout of post depending on category

You can use the Conditional Tag in_category() within the loop:

if( in_category( 'events' ) ):
    // output stuff for events category post
else:
    // not in events category
endif;

Another option for single posts is to load a different template with a filter based on the category:

function wpa8176_category_single_template( $template="" ){
    $categories = get_the_category();
    foreach( $categories as $cat ):
        if( 'events' == $cat->name ):
            $template = locate_template( array( "events-single.php", $template ), false );
        endif;
    endforeach;
    return $template;
}
add_filter( 'single_template', 'wpa8176_category_single_template' );