Apps Script vers Calendar sans dupliquer

Bonjour à tous,

J'ai essayé de suivre un tuto Apps Script pour automatiser les rendez vous vers Google Calendar, l'ajout se fait bien mais j'aimerais bien modifier plusieurs choses :

- La possibilité de modifier / supprimer les rendez vous depuis le Sheet pour que le même evenement en question soit modifié ou supprimé sur Calendar

- Lorsque je créer de nouveau rendez vous, je remarque que tous mes anciens rendez-vous sont dupliqués, choses que je voudrais éviter.

Je vous mets le lien GSheet avec le script (j'ai effacé l'url du calendar pour des raisons de confidentialité, il faudrait essayer sur un de vos calendriers et je remettrai le mien)

Je vous remercie.

https://docs.google.com/spreadsheets/d/1w5TP0HoJDLNUq0CF6EN9rbEpFEBC-t3TTijW4i0XIZI/edit#gid=0

Bonjour,

comment peut-on identifier un rendez-vous existant ? son titre ? l'heure de début et/ou de fin ?

car si la modification porte sur une donnée comme le titre, ou les heures, on ne sera pas sûr de bien le retrouver ... la seule solution fiable dans ce cas est d'attribuer une sorte d'identifiant au rendez-vous !

on pourrait avec onEdit retrouver l'ancienne valeur et donc retrouver le rendez-vous en question mais à la condition que les modifications soient faites une par une

J'ai rien compris, mais je suppose que c'est au titre ce qu'il y a en colonne A "RS" sinon on peut ajouter une colonne avec des identifiants numérotés effectivement 001 002 003 ...

Pour les identifiants, j'ai trouvé ... le but est de le capter lors de la création, on peut ensuite supprimer par la case à cocher ou modifier. On pourra aussi utiliser cette colonne D pour en créer de nouveaux (quand la valeur dans D est absente ou a été effacée par la suppression)

image
modifié ci-dessous

Pardon, je n'ai pas précisé ...

Mais en fait tous les rendez-vous se feront sur un seul agenda google donc ça sera la même adressee xxxxx@google.com

Peut être que ça sera plus simple du coup ?

Merci.

C'est bien le cas ... as-tu testé le script proposé (je l'ai remis dans le fichier) ?

on pourra ensuite automatiser davantage si tu le souhaites

j'ai trouvé comment modifier la date et l'heure

const myCalend = CalendarApp.getCalendarById("xxxxxxxxx");
const sheet = SpreadsheetApp.getActiveSheet();

function onOpen() {
  SpreadsheetApp.getUi().createMenu('⇩ M E N U ⇩')
    .addItem('👉 créer un ou des événements', 'createCalendarEvent')
    .addItem('👉 modifier', 'updateCalendarEvent')
    .addItem('👉 supprimer', 'delCalendarEvent')
    .addToUi();
}

function createCalendarEvent() {
  sheet.getDataRange().getValues().forEach((entry, i) => {
    if (entry[0] != '' && entry[3] == '' && entry[4] == false) {
      let id = myCalend.createEvent(entry[0], entry[1], entry[2]).getId();
      sheet.getRange(+i + 1, 4).setValue(id)
    }
  });
}

function updateCalendarEvent() {
  sheet.getDataRange().getValues().forEach((entry, i) => {
    if (entry[0] != '' && entry[3] != '' && entry[5] == true) {
      myCalend.getEventById(entry[3]).setTitle(entry[0])
      myCalend.getEventById(entry[3]).setTime(entry[1], entry[2])
    }
  });
}

function delCalendarEvent() {
  sheet.getDataRange().getValues().forEach((entry, i) => {
    if (entry[0] != '' && entry[3] != '' && entry[4] == true) {
      try { myCalend.getEventById(entry[3]).deleteEvent() }
      catch (e) { }
      sheet.getRange(+i + 1, 4).setValue('')
    }
  });
}
Rechercher des sujets similaires à "apps script calendar dupliquer"