The Event Views module makes the event fields available to the Views module, and creates default event views that filter events using a drop-down date selector, the jscalendar selector, or by arguments in the url. Set up a default event view by going to admin/views and select add. Save the default views as-is or make any changes you like. The event_views module will automatically be disabled if either the event module or the views module is disabled, since it requires both those modules to work. You can change the format of the output. The default views display a list of events, but you can change it to a table or a teaser list in the Page settings. You can also add or remove fields from the view. You can filter events in several ways. Use filters to pre-select a date range, expose those filters to allow the viewer to select a date range, or eliminate the filters and give the view year, month, and day arguments to filter the events by the url (i.e. YYYY/MM/DD). Arguments can be confusing but are very powerful. You can combine arguments in various ways, like year/month, year/month/day, or year/week. You can also add content type and taxonomy arguments before or after the year/month/day arguments for even more granularity. For each argument you add, you need to select a display. For lower-level arguments, like the year argument in a year/month combination, select the option to provide a summary view. That will display a list of all the months that have events in that year. You can then click on the month to see the events for that month. To view a week calendar, create a view with Year and Week arguments, the go to YYYY/WW where WW is the week number (1-53) that you want to see. To theme the exposed filters, put the following in your template.php file. Change 'phptemplate' to your theme name and make whatever other style changes you want. /** * Example to override standard views handling of the exposed filters to mimic event display * This will change the display only for the calendar view types to show the exposed filters * One on top of the other above the calendar instead of side-by-side in a table */ function phptemplate_views_filters($form) { $view = $form['view']['#value']; // changed display only for event_views page types if (array_key_exists($view->page_type, event_views_view_types())) { foreach ($view->exposed_filter as $count => $expose) { $form["filter$count"]['#title'] = $expose['label']; } return form_render($form['q']) . form_render($form); // standard views explosed filters display for all other types } else { foreach ($view->exposed_filter as $count => $expose) { $row[] = form_render($form["op$count"]) . form_render($form["filter$count"]); $label[] = $expose['label']; } $row[] = form_render($form['submit']); $label[] = ''; // so the column count is the same. return form_render($form['q']) . theme('table', $label, array($row)) . form_render($form); } }