Freigeben eines Frei-/Gebucht-Zeitplans innerhalb eines bestimmten Zeitraums in einem Kalender
In diesem Beispiel wird der Frei/Gebucht-Zeitplan einer bestimmten Woche eines Kalenders abgerufen und Einzelheiten zu freien und gebuchten Terminen sowie zum Thema des Termins angezeigt.
Beispiel
Dieses Codebeispiel verwendet die GetCalendarExporter -Methode des Folder -Objekts, um ein CalendarSharing -Objekt für den standardmäßigen Kalenderordner und eine bestimmte Woche anzurufen. Danach wird die ForwardAsICal -Methode für das CalendarSharing-Objekt aufgerufen und die Nachricht mit einer iCalendar-Ladung angezeigt.
Wenn Sie Visual Studio verwenden, um dieses Codebeispiel zu testen, müssen Sie der Microsoft Outlook 15.0-Objektbibliothekkomponente zuerst einen Verweis hinzufügen und die Outlook-Variable angeben, wenn Sie den Microsoft.Office.Interop.Outlook-Namespace importieren. Die Anweisung Imports oder using darf im Codebeispiel nicht direkt vor den Funktionen stehen, sondern muss vor der öffentlichen Class-Deklaration hinzugefügt werden. Die folgenden Codezeilen zeigen, wie Sie den Import und die Zuweisung in Visual Basic und C# vornehmen.
Imports Outlook = Microsoft.Office.Interop.Outlook
using Outlook = Microsoft.Office.Interop.Outlook;
Private Sub DemoCalendarSharing()
' Get instance of CalendarSharing object
Dim calShare As Outlook.CalendarSharing = _
Application.Session.GetDefaultFolder( _
Outlook.OlDefaultFolders.olFolderCalendar). _
GetCalendarExporter()
' Free busy and subject details
calShare.CalendarDetail = _
Outlook.OlCalendarDetail.olFreeBusyAndSubject
' Set start and end dates
calShare.StartDate = DateTime.Today
calShare.EndDate = calShare.StartDate.AddDays(1)
' Call ForwardAsICal method
Dim mail As Outlook.MailItem = _
calShare.ForwardAsICal( _
Outlook.OlCalendarMailFormat.olCalendarMailFormatDailySchedule)
' Add recipient
mail.Recipients.Add("someone@example.com")
mail.Recipients.ResolveAll()
' Set subject
Dim CalName As String = _
Application.Session.GetDefaultFolder( _
Outlook.OlDefaultFolders.olFolderCalendar).Name
mail.Subject = _
Application.Session.CurrentUser.Name & _
CalName.PadLeft(CalName.Length + 1)
' Display calendar sharing item
mail.Display(False)
End Sub
private void DemoCalendarSharing()
{
// Get instance of CalendarSharing object
Outlook.CalendarSharing calShare =
Application.Session.GetDefaultFolder
(Outlook.OlDefaultFolders.olFolderCalendar).
GetCalendarExporter();
// Free busy and subject details
calShare.CalendarDetail =
Outlook.OlCalendarDetail.olFreeBusyAndSubject;
// Set start and end dates
calShare.StartDate = DateTime.Today;
calShare.EndDate = calShare.StartDate.AddDays(1);
// Call ForwardAsICal method
Outlook.MailItem mail =
calShare.ForwardAsICal(Outlook.OlCalendarMailFormat
.olCalendarMailFormatDailySchedule);
// Add recipient
mail.Recipients.Add("someone@example.com");
mail.Recipients.ResolveAll();
// Set subject
string CalName =
Application.Session.GetDefaultFolder
(Outlook.OlDefaultFolders.olFolderCalendar).Name;
mail.Subject =
Application.Session.CurrentUser.Name +
CalName.PadLeft(CalName.Length + 1);
// Display calendar sharing item
mail.Display(false);
}