Créer des rendez-vous dans un fuseau horaire spécifique à l’aide d’EWS dans ExchangeCreate appointments in a specific time zone by using EWS in Exchange

Découvrez comment créer des rendez-vous dans des fuseaux horaires spécifiques à l’aide de l’API managée EWS ou d’EWS dans Exchange.Learn how to create appointments in specific time zones by using the EWS Managed API or EWS in Exchange.

Lorsqu’un rendez-vous ou une réunion est créé dans un calendrier Exchange, le fuseau horaire utilisé pour spécifier les heures de début et de fin est enregistré comme fuseau horaire de création pour le rendez-vous.When an appointment or meeting is created on an Exchange calendar, the time zone used to specify the start and end times is saved as the creation time zone for the appointment. Ce fuseau horaire est également utilisé pour interpréter les valeurs de date et d’heure qui n’ont pas de fuseau horaire explicite spécifié, c’est pourquoi il est important de comprendre les options permettant de spécifier le fuseau horaire.That time zone is also used to interpret date and time values that do not have an explicit time zone specified, so it is important to understand your options to specify the time zone.

Création de rendez-vous dans différents fuseaux horaires à l’aide de l’API managée EWSCreating appointments in different time zones by using the EWS Managed API

Lorsque vous créez des rendez-vous ou des réunions à l’aide de l’API managée EWS, vous disposez de trois options pour spécifier le fuseau horaire :When creating appointments or meetings using the EWS Managed API, you have three options for specifying the time zone:

  • Pour utiliser le fuseau horaire de l’ordinateur sur lequel votre API managée EWS est en cours d’exécution, ne spécifiez pas de fuseau horaire lors de la création de l’objet ExchangeService .To use the time zone of the computer where your EWS Managed API is executing, do not specify a time zone when creating the ExchangeService object.

  • Pour utiliser un fuseau horaire spécifique pour toutes les propriétés de date/heure, y compris les propriétés lors de la création d’un rendez-vous ou d’une réunion, spécifiez un fuseau horaire dans le constructeur pour l’objet ExchangeService .To use a specific time zone for all date/time properties, including properties when creating a new appointment or meeting, specify a time zone in the constructor for the ExchangeService object.

  • Pour utiliser un autre fuseau horaire que celui spécifié dans la propriété ExchangeService. TimeZone , utilisez les propriétés appointment. StartTimeZone et appointment . EndTimeZone .To use a different time zone than the one specified in the ExchangeService.TimeZone property, use the Appointment.StartTimeZone and Appointment.EndTimeZone properties.

    Notes

    La propriété EndTimeZone est disponible uniquement lorsque la propriété ExchangeService. RequestedServerVersion est définie sur Exchange2010 ou une version ultérieure.The EndTimeZone property is only available when the ExchangeService.RequestedServerVersion property is set to Exchange2010 or later. Si elle n’est pas disponible, la définition de StartTimeZone s’applique aux heures de début et de fin du rendez-vous.If it is not available, setting the StartTimeZone applies to both the start and end times of the appointment.

Dans l’exemple suivant, l’API managée EWS est utilisée pour créer trois rendez-vous.In the following example, the EWS Managed API is used to create three appointments. Chaque rendez-vous est défini pour démarrer à 1:00 à partir de deux jours, dans un fuseau horaire non spécifié et se terminer une heure plus tard.Each appointment is set to start at 1:00 PM two days from now, in an unspecified time zone, and end one hour later. Le premier rendez-vous est créé dans le fuseau horaire de l’ordinateur client en utilisant le comportement par défaut de l’API managée EWS.The first appointment is created in the client computer's time zone by using default EWS Managed API behavior. La deuxième est créée dans le fuseau horaire central à l’aide des propriétés appointment . StartTimeZone et appointment . EndTimeZone .The second is created in the Central time zone by using the Appointment.StartTimeZone and Appointment.EndTimeZone properties. Le troisième est créé dans le fuseau horaire montagnes à l’aide de la propriété ExchangeService. TimeZone .The third is created in the Mountain time zone by using the ExchangeService.TimeZone property.

using Microsoft.Exchange.WebServices.Data;
using System.Security;
static void CreateAppointments(string userEmail, SecureString userPass)
{
    // *****************************************************
    // Create an appointment using the client computer's time zone.
    // *****************************************************
    // Do not specify a time zone when creating the ExchangeService.
    ExchangeService clientTZService = new ExchangeService(ExchangeVersion.Exchange2010);
    clientTZService.Credentials = new NetworkCredential(userEmail, userPass);
    clientTZService.AutodiscoverUrl(userEmail, redirectionCallback);
    // Create the appointment.
    Appointment clientTZAppt = new Appointment(clientTZService);
    clientTZAppt.Subject = "Appointment created using client time zone";
    clientTZAppt.Body = new MessageBody(string.Format("Time zone: {0}", clientTZService.TimeZone.DisplayName));
    // Set the start time to 1:00 PM two days from today.
    DateTime startTime = new DateTime(DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day + 2);
    startTime = startTime.AddHours(13);
    clientTZAppt.Start = startTime;
    // Set the end time to 2:00 PM on that same day.
    DateTime endTime = startTime.AddHours(1);
    clientTZAppt.End = endTime;
    // Save the appointment to the default calendar.
    try
    {
        // This method results in a call to EWS.
        clientTZAppt.Save(SendInvitationsMode.SendToNone);
    }
    catch (Exception ex)
    {
        Console.WriteLine("Error saving appointment: {0}", ex.Message);
    }
    // *****************************************************
    // Create an appointment in the Central time zone by
    // using the StartTimeZone property.
    // *****************************************************
    // Retrieve the Central time zone.
    TimeZoneInfo centralTZ = TimeZoneInfo.FindSystemTimeZoneById("Central Standard Time");
    // Create the appointment.
    Appointment centralTZAppt = new Appointment(clientTZService);
    centralTZAppt.Subject = "Appointment created using Central time zone";
    centralTZAppt.Body = new MessageBody(string.Format("Time zone: {0}", centralTZ.DisplayName));
    // Set the time zone on the appointment.
    centralTZAppt.StartTimeZone = centralTZ;
    centralTZAppt.EndTimeZone = centralTZ;
    // Set the start time to 1:00 PM two days from today.
    centralTZAppt.Start = startTime;
    // Set the end time to 2:00 PM on that same day.
    centralTZAppt.End = endTime;
    // Save the appointment to the default calendar.
    try
    {
        // This method results in a call to EWS.
        centralTZAppt.Save(SendInvitationsMode.SendToNone);
    }
    catch (Exception ex)
    {
        Console.WriteLine("Error saving appointment: {0}", ex.Message);
    }
    // *****************************************************
    // Create an appointment in the Mountain time zone by
    // using the ExchangeService.TimeZone property.
    // *****************************************************
    // Specify the Mountain time zone when creating the ExchangeService.
    TimeZoneInfo mountainTZ = TimeZoneInfo.FindSystemTimeZoneById("Mountain Standard Time");
    ExchangeService mountainTZService = new ExchangeService(ExchangeVersion.Exchange2010, mountainTZ);
    mountainTZService.Credentials = new NetworkCredential(userEmail, userPass);
    mountainTZService.AutodiscoverUrl(userEmail, redirectionCallback);
    // Create the appointment.
    Appointment mountainTZAppt = new Appointment(mountainTZService);
    mountainTZAppt.Subject = "Appointment created using Mountain time zone";
    mountainTZAppt.Body = new MessageBody(string.Format("Time zone: {0}", mountainTZService.TimeZone.DisplayName));
    // Set the start time to 1:00 PM two days from today.
    mountainTZAppt.Start = startTime;
    // Set the end time to 2:00 PM on that same day.
    mountainTZAppt.End = endTime;
    // Save the appointment to the default calendar.
    try
    {
        // This method results in a call to EWS.
        mountainTZAppt.Save(SendInvitationsMode.SendToNone);
    }
    catch (Exception ex)
    {
        Console.WriteLine("Error saving appointment: {0}", ex.Message);
    }
}

Lorsque cet exemple est exécuté sur un ordinateur client configuré dans le fuseau horaire est et que les trois rendez-vous qu’il crée sont affichés à partir d’un client configuré dans le fuseau horaire est, ils apparaissent à 1:00 PM, 2:00 PM et 3:00 PM, respectivement.When this example is executed on a client computer configured in the Eastern time zone, and the three appointments it creates are viewed from a client configured in the Eastern time zone, they appear at 1:00 PM, 2:00 PM, and 3:00 PM, respectively.

Création de rendez-vous dans différents fuseaux horaires à l’aide d’EWSCreating appointments in different time zones by using EWS

Lorsque vous créez des rendez-vous ou des réunions à l’aide d’EWS, vous disposez de trois options pour spécifier le fuseau horaire :When creating appointments or meetings using EWS, you have three options for specifying the time zone:

L’exemple suivant de demande d' opération CreateItem crée un rendez-vous à l’aide de l’UTC.The following example CreateItem operation request creates an appointment using UTC. Notez que l’élément TimeZoneContext , l’élément StartTimeZone et l’élément EndTimeZone sont absents.Notice that the TimeZoneContext element, the StartTimeZone element, and the EndTimeZone element are absent. Les valeurs des éléments Start et end sont exprimées au format UTC.The Start and End element values are expressed in UTC.

<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xmlns:m="https://schemas.microsoft.com/exchange/services/2006/messages" 
    xmlns:t="https://schemas.microsoft.com/exchange/services/2006/types" 
    xmlns:soap="https://schemas.xmlsoap.org/soap/envelope/">
  <soap:Header>
    <t:RequestServerVersion Version="Exchange2010" />
  </soap:Header>
  <soap:Body>
    <m:CreateItem SendMeetingInvitations="SendToNone">
      <m:Items>
        <t:CalendarItem>
          <t:Subject>Appointment created using UTC</t:Subject>
          <t:Body BodyType="HTML">Time zone: UTC</t:Body>
          <t:Start>2014-06-07T17:00:00.000Z</t:Start>
          <t:End>2014-06-07T18:00:00.000Z</t:End>
        </t:CalendarItem>
      </m:Items>
    </m:CreateItem>
  </soap:Body>
</soap:Envelope>

L’exemple suivant de demande d' opération CreateItem utilise les éléments StartTimeZone et EndTimeZone pour spécifier le fuseau horaire central pour le rendez-vous.The following example CreateItem operation request uses the StartTimeZone and EndTimeZone elements to specify the Central time zone for the appointment. Notez que l’élément TimeZoneContext est absent.Notice that the TimeZoneContext element is absent. Toutefois, s’il était présent, les valeurs des éléments StartTimeZone et EndTimeZone substitueront sa valeur.However, if it were present, the values of the StartTimeZone and EndTimeZone elements would override its value. Encore une fois, les valeurs des éléments Start et end sont exprimées au format UTC.Again, the Start and End element values are expressed in UTC.

<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xmlns:m="https://schemas.microsoft.com/exchange/services/2006/messages" 
    xmlns:t="https://schemas.microsoft.com/exchange/services/2006/types" 
    xmlns:soap="https://schemas.xmlsoap.org/soap/envelope/">
  <soap:Header>
    <t:RequestServerVersion Version="Exchange2010" />
  </soap:Header>
  <soap:Body>
    <m:CreateItem SendMeetingInvitations="SendToNone">
      <m:Items>
        <t:CalendarItem>
          <t:Subject>Appointment created using Central time zone</t:Subject>
          <t:Body BodyType="HTML">Time zone: (UTC-06:00) Central Time (US &amp;amp; Canada)</t:Body>
          <t:Start>2014-06-07T18:00:00.000Z</t:Start>
          <t:End>2014-06-07T19:00:00.000Z</t:End>
          <t:StartTimeZone Id="Central Standard Time" />
          <t:EndTimeZone Id="Central Standard Time" />
        </t:CalendarItem>
      </m:Items>
    </m:CreateItem>
  </soap:Body>
</soap:Envelope>

Dans l’exemple suivant, la demande de l' opération CreateItem définit l’élément TimeZoneContext sur le fuseau horaire montagnes Rocheuses.The following example CreateItem operation request sets the TimeZoneContext element to the Mountain time zone. Notez que les éléments StartTimeZone et EndTimeZone sont absents.Notice that the StartTimeZone and EndTimeZone elements are absent. Encore une fois, les valeurs des éléments Start et end sont exprimées au format UTC.Again, the Start and End element values are expressed in UTC.

<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xmlns:m="https://schemas.microsoft.com/exchange/services/2006/messages" 
    xmlns:t="https://schemas.microsoft.com/exchange/services/2006/types" 
    xmlns:soap="https://schemas.xmlsoap.org/soap/envelope/">
  <soap:Header>
    <t:RequestServerVersion Version="Exchange2010" />
    <t:TimeZoneContext>
      <t:TimeZoneDefinition Id="Mountain Standard Time" />
    </t:TimeZoneContext>
  </soap:Header>
  <soap:Body>
    <m:CreateItem SendMeetingInvitations="SendToNone">
      <m:Items>
        <t:CalendarItem>
          <t:Subject>Appointment created using Mountain time zone</t:Subject>
          <t:Body BodyType="HTML">Time zone: (UTC-07:00) Mountain Time (US &amp;amp; Canada)</t:Body>
          <t:Start>2014-06-07T19:00:00.000Z</t:Start>
          <t:End>2014-06-07T20:00:00.000Z</t:End>
        </t:CalendarItem>
      </m:Items>
    </m:CreateItem>
  </soap:Body>
</soap:Envelope>

Lorsque les trois rendez-vous créés par les requêtes d’exemple EWS précédentes sont visualisés à partir d’un client configuré dans le fuseau horaire est, ils apparaissent respectivement à 1:00 PM, 2:00 PM et 3:00 PM.When the three appointments created by the previous EWS example requests are viewed from a client configured in the Eastern time zone, they appear at 1:00 PM, 2:00 PM, and 3:00 PM, respectively.

Maintenant que vous saurez comment créer des rendez-vous dans des fuseaux horaires spécifiques, vous souhaiterez peut-être mettre à jour les fuseaux horaires des rendez-vous existants .Now that you know how to create appointments in specific time zones, you might want to update the time zones on existing appointments to a different one.

Voir aussiSee also