How to Display CiviCRM events on a Drupal Calendar:

How to Display CiviCRM events on a Drupal Calendar using CiviEvent’s iCal Feed and the Drupal Calendar Module:

  1. 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.
  2. Download & Install the following Drupal modules:
    1. Calendar:
    2. Views (required by Calendar):
    3. Date (required by Calendar):
  3. Go to your Module management screen ( Administer >> Site Building >> Modules )
    Screenshot 1

    1. Enable Calendar View
    2. Enable Calendar iCal
    3. Enable all other modules required by these
  4. Go to the “Administer Views” screen ( Administer >> Site Building >> Views)
    Screen shot 2

    1. Set ‘calender’ view status to ‘enabled’
    2. Click on the ‘add’ link next to calendar
    3. Screen Shot 3

    4. On the “Add a View” Screen, under Access, select all the roles you want to be able to view this calendar.
    5. Go to the bottom of the page and click save
    6. You will now see ‘calendar’ listed under ‘existing views’
    7. Click on the ‘calendar’ link listed in that same row or go to the calendar url, which should be (if you have drupal installed in the base directory) or (if you have drupal in it’s own directory).
  5. Go to your “Access Control” page. (Administer >> User Management >> Access Control)
    1. 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.
  6. From the Calendar page, you should see the following:
    Screen Shot 4

    1. Click on the “iCal” tab, and insert the following information:
    2. Screen Shot 5

    3. 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.
    4. Set the Name as anything, I went with “civi” to keep it simple.
    5. Set the Url to your civi iCal feed.  Should be something like:  or .
  7. And that should be it!  Set up a test event, and make sure it shows up on your calendar page.