直接的な方法はありません。私がしていることは次のとおりです。
- RecurringMaster として予定を取得します。
- 繰り返しの開始時刻と終了時刻を定義します。永遠に続くように終了時刻がない場合は、検索する日数を定義します
- 以前のタイミングに基づいて予定を検索
- タイプ AppointmentType.Occurrence に基づいて結果をフィルタリングし、得られたものを数えます
次のコードは、私が上に書いたことを説明しています。
var occurrencesCounter = 0;
if (appointment.AppointmentType == AppointmentType.RecurringMaster)
{
appointments = ppointment.Service.FindAppointments(WellKnownFolderName.Calendar, new CalendarView(appointment.Start, (appointment.Recurrence.EndDate == null ? DateTime.Today.AddDays(7) : (DateTime)appointment.Recurrence.EndDate)));
foreach (var apt in appointments)
{
if (apt.AppointmentType == AppointmentType.Occurrence)
{
occurrencesCounter++;
}
}
}