Partage du planning de disponibilité pendant une période spécifiée dans un calendrier
Cet exemple obtient les informations de disponibilité d’une semaine spécifiée à partir d’un calendrier et affiche les détails de disponibilité et d’objet à l’utilisateur.
Exemple
Cet exemple de code utilise la méthode GetCalendarExporter de l'objet Folder pour obtenir un objet CalendarSharing pour le dossier Calendrier par défaut pour une période spécifique d'une semaine. Il appelle ensuite la méthode ForwardAsICal sur l'objet CalendarSharing et affiche le message avec une charge utile iCalendar.
Si vous utilisez Visual Studio pour tester cet exemple de code, vous devez d’abord ajouter une référence au composant Bibliothèque d’objets Microsoft Outlook 15.0 et spécifier la variable lorsque vous importez l’espace de noms Microsoft.Office.Interop.Outlook. L'instruction Importer ou utilisation ne doit pas se produire juste avant les fonctions de l'exemple de code, mais doit être ajoutée avant la déclaration publique. Les lignes de code suivantes montrent comment effectuer l’importation et l’affectation dans Visual Basic et dans C#.
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);
}