The Automatic Calendar plug-in uses this to create feeds from the calendar data you give it.
But if you want to create an iCalendar/vCal format file using your data, use:
If your events have an ending time as well as a beginning, specify it using “endtimestamp” or “enddatetime” just as you would for “timestamp” and “datetime”.
If an event starts at exactly midnight and has no endtimestamp or enddatetime, it is assumed to be an all-day event and is assigned a duration of 24 hours.
A UID uniquely identifies a calendar entry; it isn’t necessary to have one in your feed, and most calendar software (Google Calendar, iCal, Exchange) can use feeds that don’t have one. However, it’s easy enough to create one. You just have to give the system a code that it can use to generate your unique ID. The system will take that code and wrap it into the date of the event, the event’s row Id, and the server name (www.sandiego.edu).
A UID, if it exists, must be absolutely unique throughout the known universe. A good choice for your UID code is the name of the database, or the name of the database and the table, that you’re pulling the events from.
The system assumes that the unique row id is stored in a field called “ID”. If yours is not, you’ll need to let the system know or it won’t generate a UID field in your feed.
$feed->field('id', 'real id field');