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
.