I have recently integrated WebCalendar into Moodle, see http://moodle.org/mod/forum/discuss.php?d=3944. Now, one-by-one, all modules can be extended to make use of the calendar. As a start I suggest that the due dates for appointments should be entered in the calendar. This requires a change to the functions
assignment_add_instance(), assignment_update_instance() and assignment_delete_instance
in cvs:/moodle/mod/assignment/lib.php so that they automatically add, update, or delete the corresponding due date event. I have attached a zip file with the new version of lib.php. You can simply replace the existing one with this new one. Of course you will also have to install the event module (which integrates the calendar).
More integration is possible. For example if you replace the line
$due = userdate($assignment->timedue);
in cvs:/moodle/mod/assignment/index.php by
if (record_exists('event')) { // events module is installed
require_once('../event/lib.php');
$due = calendar_link_userdate($assignment->timedue, 'week');
} else {
$due = userdate($assignment->timedue);
}
then the date will become a link to the correct place in the calendar. You could change 'week' above into 'day', or 'month' if you want a day or month view of the calendar instead of a week view.
A similar change could be made in view.php. Replace the line
$strduedate = userdate($assignment->timedue)." ($strdifference)";
by
if (record_exists('event')) { // events module is installed
require_once('../event/lib.php');
$strduedate = calendar_link_userdate($assignment->timedue, 'week')." ($strdifference)";
} else {
$strduedate = userdate($assignment->timedue)." ($strdifference)";
}
The changes could be made a standard part of the assignment module because if the event module is not installed then they will be ignored.