Kalenderliste mit Serienterminen darstellen

Heute mal wieder eine Anforderung eines Kunden: Auf der Startseite von SharePoint sollten die nächsten anstehenden Termine im Unternehmen angezeigt werden und zwar als Liste, da die Kalenderansicht zu viel Platz weg nimmt.

Problem war dabei, dass in dieser Liste die Serientermine nicht korrekt angezeigt wurden, lediglich der erste Termin erschien, aber alle weiteren Instanzen wurden nicht mehr dargestellt.

Das Phänomen lässt sich leicht nachstellen: Es gibt zwar die Ansicht “Aktuelle Ereignisse”, die auch Serientermine korrekt darstellt, sobald man diese kopiert, ist das Verhalten dasselbe, alle kommenden Serientermine tauchen nicht mehr in der Liste auf. Hintergrund ist, dass ein Serientermin ein einziges Element ist, dass mehrfach abgefragt werden muss. Und die dazu notwendigen Einstellungen können über die Oberfläche nicht gesetzt werden.

Wird die Ansicht also kopiert und modifiziert, muss z.B. per PowerShell das WebPart und die dahinterliegende View verändert werden:

$web = Get-SPWeb "[Url zur Site]"
 $wpm = $web.GetLimitedWebPartManager("[relative Url zur ASPX-Datei]","Shared")
 $wp = $wpm.WebParts | ?{$_.Title -eq "[Titel des WebParts]"}
 $wp.ViewFlags = $wp.ViewFlags -bor [Microsoft.SharePoint.SPViewFlags]::RecurrenceRowset
 $wp.View.Query = "<Where><DateRangesOverlap><FieldRef Name="EventDate" /><FieldRef Name="EndDate" /><FieldRef Name="RecurrenceID" /><Value Type="DateTime"><Now /></Value></DateRangesOverlap></Where><OrderBy><FieldRef Name="EventDate" /></OrderBy>"
 $wpm.SaveChanges($wp)

Dies setzt die notwendigen Einstellungen und danach sollten die Serientermine korrekt dargestellt werden.

Schreibe einen Kommentar