Using a combination of CCK, Views, FeedAPI, FeedAPI Mapper, Date, Calendar, and the iCal parser, you can create a view of events from an iCal feed (or multiple iCal feeds).
Much of this is copied from the Advanced help in the latest -dev version of the Date module, which you can see if the Advanced help module is installed. Also make sure you have the latest -dev code for the Date module, too.
- 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.
- 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.
- Create a new content type for iCal feeds. Do not simply add iCal processing to the existing Feed content type. You need to create new content type for iCal feeds on a content type that has no other parsers enabled. 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.
- Go to 'Create Content' and create a new node using the iCal feed content type. When you create the node, you will find a place to input the url of the feed and make sure the content type from Step 2 is selected.
- 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.
- Scroll way down and look for "options->VEVENT:" and map options->VEVENT:DATE to "field_**** (date**): iCal VEVENT" (the date field in your feed item content type).
Do NOT map any other "options->VEVENT:DATE" fields. Start, end, and repeating rule will all be transferred automatically.
You may map non-VEVENT fields to other fields in the target node. Scroll over and click "Add."
- Once mapped, you can click on the 'Refresh' tab to add in the new feed items.
- You can check the Content screen in the administration area to see that the nodes have been imported.
- 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.
- Within the settings page for your new view, add a Filter for 'Node: Type' and choose the content type that your iCal feed is creating. If you didn't use a separate content type for your iCal feed, you will need to find another way to filter out the feed elements, unless you want to show more than just the feed items.
- Under Arguments, you will need to set a 'Date: Date' argument. If you cloned the default calendar view, then you will need to modify the Date Argument that's already set. In the Arguments settings, select a date field filter with the argument. Do not select both the 'From date' and 'To date' for CCK date fields, only one of them is needed.
- Besides any other adjustments you might want to make, your view should be setup.
Note: The following attachments are screenshots provided at: http://drupal.org/node/214688