i have a calendar list and a task list. The calendar list has normal events and recurring events. I sync the events in the calender list to the tasklist with a modified version of this code:

// Get the Events list
SPSite site = new SPSite("http://localhost");
SPWeb web = site.RootWeb;
SPList calendarList = web.Lists["Calendar"];

// Construct a query that expands recurring events
SPQuery query = new SPQuery();
query.ExpandRecurrence = true;
query.Query = "<Where><DateRangesOverlap><FieldRef Name=\"EventDate\" /><FieldRef Name=\"EndDate\" /><FieldRef Name=\"RecurrenceID\" /><Value Type=\"DateTime\"><Month /></Value></DateRangesOverlap></Where>";

// Look forward from the beginning of the current month
query.CalendarDate = new DateTime(DateTime.Now.Year, DateTime.Now.Month, 1);

// Returns all items (including recurrence instances) that
// would appear in the calendar view for the current month
SPListItemCollection calendarItems = calendarList.GetItems(query);

foreach (SPListItem item in calendarItems)
Console.WriteLine(item["Title"] + ": starts "
+ item["EventDate"].ToString() + " and ends "
+ item["EndDate"].ToString());

Now i want to save the information "already synced" to prevent double entries in the task list.

To do this i can store the information "already synced" in the calender list item or in the task list item.

Here is my problem: Because the calender event is maybe a recurring event i have to break the recurrence to save this data and must create a recurrence exception.

For a daily recurring event this would create 365 entries for example instead of the original one recurring event. This sounds way to complicated.

The second idea: Instead of storing the information "already synced" in the calender list i could possibly store the unique identifier of a event in the created task list item.

First problem here: What is a unique identifier for a recurring event?

Second problem: If the unique identifier is RecurringID (a datetime value normally) what if the event recurrence is broken up by the user? Would the ReccuringID stay the same?

So in the end...

Can anybody jump onboard and help out?

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.