Override widget in function WordPress

You are getting this error because your class ass no method named widget which is a must to properly use the widgets api. Meaning that each class/widget that extends the WP_Widget class must have a method named widget which is responsible for the actual widget display. So consider this structure as a widget class skeleton:

class custom_Widget extends WP_Widget {
    public function __construct() {}// widget actual processes
    public function widget( $args, $instance ) {} // outputs the content of the widget
    public function form( $instance ) {} // outputs the options form on admin
    public function update( $new_instance, $old_instance ) {} // processes widget options to be saved
}

And in your case you have all but the widget method which to answer your second question (how to fix?) simply reanme your WP_Widget_Calendar method to widget.