How to Display CiviCRM events on a Drupal Calendar using CiviEvent’s iCal Feed and the Drupal Calendar Module:
- Pre-requisits: You’ll need an instance of CiviCRM running on Drupal, (we’re using Drupal 5.5 with CiviCRM 1.9) with CiviEvents Enabled.
- Download & Install the following Drupal modules:
- Calendar: http://drupal.org/project/calendar
- Views (required by Calendar): http://drupal.org/project/views
- Date (required by Calendar): http://drupal.org/project/date
- Go to your Module management screen ( Administer >> Site Building >> Modules )
- Enable Calendar View
- Enable Calendar iCal
- Enable all other modules required by these
- Go to the “Administer Views” screen ( Administer >> Site Building >> Views)
- Set ‘calender’ view status to ‘enabled’
- Click on the ‘add’ link next to calendar
- On the “Add a View” Screen, under Access, select all the roles you want to be able to view this calendar.
- Go to the bottom of the page and click save
- You will now see ‘calendar’ listed under ‘existing views’
- Click on the ‘calendar’ link listed in that same row or go to the calendar url, which should be http://www.yoursite.com/calendar (if you have drupal installed in the base directory) or http://www.yoursite.com/drupal/calendar (if you have drupal in it’s own directory).
- Go to your “Access Control” page. (Administer >> User Management >> Access Control)
- Under CiviCRM, make sure “register for events” is enabled for your anonymous role, and any other roles you are going to want to register for events.
- From the Calendar page, you should see the following:
- Click on the “iCal” tab, and insert the following information:
- Under “Expire iCal cache:” I recommend setting this to ‘0 sec’ for debugging purposes, and then scale back based on your traffic and update timing requirements.
- Set the Name as anything, I went with “civi” to keep it simple.
- Set the Url to your civi iCal feed. Should be something like: http://www.yoursite.com/civicrm/event/ical?reset=1&page=1 or http://www.yoursite.com/drupal/civicrm/event/ical?reset=1&page=1 .
- And that should be it! Set up a test event, and make sure it shows up on your calendar page.