This documentation relates to CiviCRM version 3.2. It's not maintained anymore.
Current version of documentation.

Using Drupal Calendar with CiviEvent

Skip to end of metadata
Go to start of metadata

This page refers to outdated version of CiviCRM. Check current version of documentation.


Documentation Search


CiviCRM 3.2 Documentation

Support and Participation

Developer Resources


CiviCRM book!

Make sure to check out Understanding CiviCRM as well! You can also support this project by ordering a hard copy.

Important Note

You will want to carefully read up on views integration if you have civicrm in a separate DB from drupal before following these instructions.http://wiki.civicrm.org/confluence/display/CRMDOC/Views2+Integration+Module

Integrating CiviEvents with Drupal's Calendar Module

There have been many forum posts and general help requests to assist in pulling CiviEvents into Drupal's calendar. There are multiple ways of doing this. Below you will find different options that are available. Make sure to read the 'Use this option if' section and minimum requirements to help you decide what's best for you.

Option 1. Use default CiviEvent View to build a CiviEvent Calendar

Use this Option If
  • you want a fast & easy way to automatically show CiviCRM Events in your Drupal Calendar
  • you do not need anything other than CiviCRM events in your calendar (if you want to include other drupal content types, this option is not sufficient and you must use option 2 below)

This option requires the following:

* On your drupal site, navigate to Administer > Site Building > Views

  • Look for the view called CiviCRM Events view: civicrm_events
  • Enable this view OR clone the view to create your own customization
  • That's it! Navigate to the view page to see it in action, or:

Once enabled, if you would like to customize the view:

  • Click the Edit button
  • Make customizations

Example:
You want the title of the event to be clickable and take you to the event information page.

  • Click on Fields > CiviCRM Events: Title
  • Under 'Choose where to link this field:' select 'Link to event page'
More Resources

The original blog post by jalama that explains the reasoning behind doing this and another set of instructions on how. http://civicrm.org/node/557

Option 2. Integrate CiviEvents iCal feed with Drupal Calendar

Use this Option If
  • you want the calendar to include both CiviEvents and other Drupal event-related nodes
  • you want all CiviEvents to become Drupal nodes
  • you want more control over the calendar items

This option requires the following:

  • Drupal 6.x
  • Views 2
  • Date & Calendar module versions with a release date later than JUNE 8th, 2009
  • CCK 6.x-2.x
  • CiviCRM 2.2 (2.1 will likely also work but I have not tested it)
  • FeedAPI, FeedAPI mapper
  • iCal parser
  • CCK Link (optional)

This section is taken from a combination of different postings on drupal.org and forum.civicrm.org. These original links are posted below in the more resources area.

Instructions:
1. Enable the following modules and sub-modules: CCK, Calendar, Calendar iCal, Date, Date API, Date Timezone, FeedAPI Mapper, iCal parser, FeedAPI, FeedAPI Node, Views, Views UI. Then browse to Administer > Users > Permissions and make sure you have administrative priviledges for each of the above modules.

2. Decide what content type will be used for nodes imported from your iCal feed. It can be a separate content type for each feed, or they can be combined into other content types. Make sure the content type you select has a date field that can be used for the iCal date, plus fields for any other iCal information that will be imported. If you would like to include the link to register in this node, you will also want to have CCK Link module enabled and installed, and your content type should include a field for this.

3. Decide if you are going to use the 'Feed' content type or create a new one to be the container for your CiviEvent feed. If you create a new one: Create a new content type for iCal feeds. Make sure that "Refresh feed on creation" is unchecked. Under "FeedAPI", check that this is a content type for downloading feeds to your site. Scroll down and under "Parser Common iCal Syndication", check that you want to enable the ical parser for this feed. Under "FeedAPI Node", check the box to enable the feedapi_node processor on this feed and make sure the content type from Step 2 is selected.

4. Go to CiviCRM > Event > Administer Events (civicrm/admin/event) and copy the link location (right click in Firefox) of the gray calendar icon (directly to the left of the GREEN iCAL icon - do not use the green ical icon, it will not work).

5. Go to 'Create Content' and create a new node using the feed content type from step 3. When you create the node, you will find a place to input the url of the feed from step 4 and make sure the content type from Step 2 is selected in the node options.

6. Save the node. Once the feed node has been created, you will see a tab at the top where you can 'map' its data to the fields in your target content type. Click 'map' (If you don't see a 'map' tab, you need to apply proper permissions for the FeedAPI mapper module at Administer > Users > Permissions).

7. Scroll way down and look for 'options->VEVENT:' and map it to 'field_** (date*): iCal VEVENT' (the date field in your feed item content type). **Do NOT map any other options->VEVENT fields* You may map non-VEVENT fields to other fields in the target node. However, if you did in fact create a cck link field in your event content type from step 2, then you can also map 'options->VEVENT->URL' to the cck link field.

But I Don't See Any VEVENT Fields!

If you do not have any VEVENT field options, and instead just have 4 default fields like 'author' and 'created', then you have not input the feed url correctly in step 5. Things to consider:

  • Did you copy and paste the URL of the gray calendar icon? this is the one to use.
  • Is your Civi/Drupal install inside a folder on your domain like 'http://mysite.com/drupal'? If so, the feed mapper doesn't like this. It wants to map just to 'http://mysite.com'
  • Test out the feed url from the CiviCRM Drupal demo site and see if that makes the VEVENT fields available. The url to try is: http://drupal.demo.civicrm.org/civicrm/event/ical?reset=1
    If this works, make sure your feed url resembles that - if not, then you didn't click the right icon.

8. Save. Once mapped, you can click on the 'Refresh' tab to add in the new feed items.

9. You can check the Content screen in the administration area to see that the nodes have been imported.

10. Now, if your interested, you can use Views to setup a calendar view of all the items from your feed. It's probably easiest to simply clone the default calendar view. You can do this in the Views UI.

11. When you are editing the view, make sure you include at least the 'from date' field of your CiviEvent content type from step 2. Then, under arguments, click the date argument and change the date field (scroll down on the view page if you don't see the fields) to 'Content: your_date_field_from_step_2 - From Date'

12. Make sure you change the path/url of the view under the page display so that it's not the same as teh default calendar view. Update and save the view.

13. Check out your view...you should see the CiviEvents populating! Now you can go back to the view and customize fields, content types, etc, however you please.

More Resources

The above section was taken from a combination of areas:

Other Options

Use this Option if
  • you are on Drupal 5
More Resources

Here are some posts relating to setting this up with Drupal 5:

  • blog post with detailed steps on how to do integrate Calendar and the CiviEvent iCal feed. This should be helpful to get folks started
Labels
  • None

Creative Commons License
Except where otherwise noted, content on this site is licensed under a Creative Commons Attribution-Share Alike 3.0 United States Licence.