Frage

From C# codebehind I added a recurring event

SPList olist = web.Lists[appname];
SPListItem item = olist.AddItem();
item["EventDate"] = startdate;//  9/5/2016 8:00:00 PM  //   System.DateTime
item["EndDate"] = enddate;//      9/5/2016 9:00:00 PM  //   System.DateTime
item["Title"] = "Each Monday Monthly 4 recurrences";
item["RecurrenceData"] = "<recurrence><rule><firstDayOfWeek>su</firstDayOfWeek><repeat><monthlyByDay mo="TRUE" weekdayOfMonth="first"  monthFrequency="1"/></repeat><repeatInstances>4</repeatInstances></rule></recurrence>";
item["fRecurrence"] = true;
item["fAllDayEvent"] = false;
item["EventType"] = 1;
item.Update();

The allitems view shows the start day and end day as 9/5 and the calendar view shows all the recurrences. If I click on a recurrence I get Item does not exist. If I edit from allitems view and save with no changes, the end date updates to 12/5 then click a on a recurrence from calendar view will bring up the recurrence (URL is the same.)

What am I missing? I also tried .ToUniversalTime() to no avail.

War es hilfreich?

Lösung

You are missing "UID" field. Set it to a GUID.

item["UID"] = System.Guid.NewGuid();

Example:

using (SPSite site = new SPSite("http://aissp2013/sites/Team1/"))
{
    SPWeb rootWeb = site.RootWeb;
    SPList cal = rootWeb.Lists["AIS Calendar"];
    SPListItem newItem = cal.AddItem();
    newItem["Title"] = "IDC Townhall";
    newItem["Location"] = "WAR Room 13";
    newItem["EventDate"] = new DateTime(2015,2,10, 10,0,0);
    newItem["EndDate"] = new DateTime(2015, 2, 10, 11, 0, 0);
    newItem["Recurrence"] = true;
    newItem["RecurrenceData"] = "<recurrence><rule><firstDayOfWeek>su</firstDayOfWeek><repeat><weekly tu='TRUE'" +
    " weekFrequency='1' /></repeat><repeatInstances>2</repeatInstances></rule></recurrence>";
    newItem["EventType"] = 1;
    newItem["UID"] = System.Guid.NewGuid();
    newItem.Update();
    cal.Update();
}

See Recursive Calendar Event for more information.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit sharepoint.stackexchange
scroll top