Notes
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Vous devez parfois créer et mettre à jour un rendez-vous périodique, par exemple une réunion hebdomadaire pour un projet d’équipe ou un rappel anniversaire annuel. Utilisez l’API JavaScript Office pour gérer les modèles de périodicité d’une série de rendez-vous dans votre complément.
Remarque
La prise en charge de cette fonctionnalité a été introduite dans l’ensemble de conditions requises 1.7. Voir les clients et les plateformes qui prennent en charge cet ensemble de conditions requises.
Périodicités
Le modèle de périodicité d’un rendez-vous est constitué d’un type de périodicité (par exemple, une périodicité quotidienne ou hebdomadaire) et de ses propriétés de périodicité applicables (par exemple, le jour du mois où le rendez-vous a lieu).
Le tableau suivant répertorie les types de périodicité disponibles, leurs propriétés configurables et les descriptions de leur utilisation.
Type de récurrence | Propriétés de récurrence valide | Utilisation |
---|---|---|
daily |
|
|
weekday |
Aucun |
|
monthly |
|
|
weekly |
|
|
yearly |
|
Conseil
Vous pouvez également utiliser la firstDayOfWeek
propriété avec le type de weekly
périodicité. Le jour spécifié commencera la liste des jours affichés dans la boîte de dialogue Récurrence.
Accéder au modèle de périodicité
Comme indiqué dans le tableau suivant, la façon dont vous accédez au modèle de périodicité et ce que vous pouvez faire avec celui-ci dépendent des éléments suivants :
- Que vous soyez l’organisateur du rendez-vous ou un participant.
- Que vous utilisiez le complément en mode composition ou lecture.
- Indique si le rendez-vous actuel est une occurrence unique ou une série.
État de rendez-vous | La récurrence est-elle modifiable ? | La récurrence est-elle visible ? |
---|---|---|
Organisateur de rendez-vous - séries composer | Oui (setAsync ) |
Oui (getAsync ) |
Organisateur de rendez-vous - instance composer | Non (setAsync renvoie une erreur) |
Oui (getAsync ) |
Participant rendez-vous - séries lire | Non (setAsync non disponible) |
Oui (item.recurrence ) |
Participant rendez-vous - instance lire | Non (setAsync non disponible) |
Oui (item.recurrence ) |
Demande de réunion - série lire | Non (setAsync non disponible) |
Oui (item.recurrence ) |
Demande de réunion - instance lire | Non (setAsync non disponible) |
Oui (item.recurrence ) |
Configurer la récurrence en tant qu’organisateur
Tout comme le modèle de récurrence, vous devez également déterminer les dates de début et de fin et heures de vos séries de rendez-vous. L’objet SeriesTime est utilisé pour gérer ces informations.
L’organisateur de rendez-vous peut spécifier la récurrence pour une série de rendez-vous dans le mode Composer uniquement. Dans l’exemple suivant, la série de rendez-vous est définie comme se produisant de 10 h 30 à 11 h 00 PST chaque mardi et jeudi dans la période du 2 novembre 2019 au 2 décembre 2019.
const seriesTimeObject = new Office.SeriesTime();
seriesTimeObject.setStartDate(2019,10,2);
seriesTimeObject.setEndDate(2019,11,2);
seriesTimeObject.setStartTime(10,30);
seriesTimeObject.setDuration(30);
const pattern = {
seriesTime: seriesTimeObject,
recurrenceType: Office.MailboxEnums.RecurrenceType.Weekly,
recurrenceProperties:
{
interval: 1,
days: [Office.MailboxEnums.Days.Tue, Office.MailboxEnums.Days.Thu]
},
recurrenceTimeZone: { name: Office.MailboxEnums.RecurrenceTimeZone.PacificStandardTime }
};
Office.context.mailbox.item.recurrence.setAsync(pattern, (asyncResult) => {
console.log(JSON.stringify(asyncResult));
});
Modifier la périodicité en tant qu’organisateur
Dans l’exemple suivant, l’organisateur de rendez-vous obtient l’objet Périodicité d’une série de rendez-vous, puis définit une nouvelle durée de périodicité. Cette opération s’effectue en mode composition.
Office.context.mailbox.item.recurrence.getAsync((asyncResult) => {
const recurrencePattern = asyncResult.value;
recurrencePattern.seriesTime.setDuration(60);
Office.context.mailbox.item.recurrence.setAsync(recurrencePattern, (asyncResult) => {
if (asyncResult.status === Office.AsyncResultStatus.Failed) {
console.log("Failed to set recurrence.");
return;
}
console.log("Successfully set recurrence.");
});
});
Obtenir la récurrence en tant qu’organisateur
Dans l’exemple suivant, l’organisateur de rendez-vous obtient l’objet Recurrence
d’un rendez-vous pour déterminer s’il s’agit d’une série périodique. Cette opération s’effectue en mode composition.
Office.context.mailbox.item.recurrence.getAsync((asyncResult) => {
const recurrence = asyncResult.value;
if (recurrence == null) {
console.log("Non-recurring meeting.");
} else {
console.log(JSON.stringify(recurrence));
}
});
L’exemple suivant montre les résultats de l’appel getAsync
qui récupère la périodicité d’une série.
Remarque
Dans cet exemple, seriesTimeObject
est un espace réservé pour JSON représentant la recurrence.seriesTime
propriété. Vous devez utiliser les méthodes SeriesTime pour obtenir les propriétés de date et d’heure de périodicité.
{
"recurrenceType": "weekly",
"recurrenceProperties": {
"interval": 1,
"days": ["tue","thu"],
"firstDayOfWeek": "sun"},
"seriesTime": {seriesTimeObject},
"recurrenceTimeZone": {
"name": "Pacific Standard Time",
"offset": -480}}
Obtenir la récurrence en tant que participant
Dans l’exemple suivant, un participant au rendez-vous obtient l’objet Recurrence
d’une demande de rendez-vous ou de réunion.
outputRecurrence(Office.context.mailbox.item);
function outputRecurrence(item) {
const recurrence = item.recurrence;
if (recurrence == null) {
console.log("Non-recurring meeting.");
} else {
console.log(JSON.stringify(recurrence));
}
}
L’exemple suivant montre la valeur de la item.recurrence
propriété d’une série de rendez-vous.
Remarque
Dans cet exemple, seriesTimeObject
est un espace réservé pour JSON représentant la recurrence.seriesTime
propriété. Vous devez utiliser les méthodes SeriesTime pour obtenir les propriétés de date et d’heure de périodicité.
{
"recurrenceType": "weekly",
"recurrenceProperties": {
"interval": 1,
"days": ["tue","thu"],
"firstDayOfWeek": "sun"},
"seriesTime": {seriesTimeObject},
"recurrenceTimeZone": {
"name": "Pacific Standard Time",
"offset": -480}}
Obtenir les détails de récurrence
Une fois que vous avez récupéré l’objet récurrence (soit à partir du getAsync
rappel ou à partir de item.recurrence
), vous pouvez obtenir les propriétés spécifiques de la récurrence. Par exemple, obtenez les dates et heures de début et de fin de la série à l’aide des méthodes SeriesTime sur la recurrence.seriesTime
propriété .
// Get the date and time information of the series.
const seriesTime = recurrence.seriesTime;
const startTime = recurrence.seriesTime.getStartTime();
const endTime = recurrence.seriesTime.getEndTime();
const startDate = recurrence.seriesTime.getStartDate();
const endDate = recurrence.seriesTime.getEndDate();
const duration = recurrence.seriesTime.getDuration();
// Get the series time zone.
const timeZone = recurrence.recurrenceTimeZone;
// Get the recurrence properties.
const recurrenceProperties = recurrence.recurrenceProperties;
// Get the recurrence type.
const recurrenceType = recurrence.recurrenceType;
Identifier quand le modèle de périodicité change
Dans certains scénarios, vous souhaitez que votre complément détecte et gère les modifications apportées au modèle de périodicité d’une série. Par exemple, vous souhaitez mettre à jour l’emplacement du rendez-vous si la série est étendue. Pour implémenter cela, vous devez créer un gestionnaire pour l’événement RecurrenceChanged . Pour ajouter un gestionnaire d’événements pour l’événement RecurrenceChanged
, appelez Office.context.mailbox.item.addHandlerAsync. Lorsqu’une modification est détectée, le gestionnaire d’événements reçoit un argument de type Office.RecurrenceChangedEventArgs, qui fournit l’objet de périodicité mis à jour.
L’exemple suivant montre comment inscrire un gestionnaire d’événements pour l’événement RecurrenceChanged
.
// This sample shows how to register an event handler in Outlook.
Office.onReady(() => {
// Register an event handler to identify when the recurrence pattern of a series is updated.
Office.context.mailbox.item.addHandlerAsync(Office.EventType.RecurrenceChanged, handleEvent, (asyncResult) => {
if (asyncResult.status === Office.AsyncResultStatus.Failed) {
console.log(asyncResult.error.message);
return;
}
console.log("Event handler added for the RecurrenceChanged event.");
});
});
function handleEvent(event) {
// Get the updated recurrence object.
const updatedRecurrence = event.recurrence;
// Perform operations in response to the updated recurrence pattern.
}
Exécuter des exemples d’extraits de code dans Script Lab
Pour tester comment obtenir et définir la périodicité d’un rendez-vous avec un complément, installez le complément Script Lab pour Outlook et exécutez les exemples d’extraits de code suivants.
- « Obtenir la périodicité (lecture) »
- « Obtenir et définir la périodicité (Organisateur de rendez-vous) »
Pour en savoir plus sur Script Lab, consultez Explorer l’API JavaScript Office à l’aide de Script Lab.