web-dev-qa-db-fra.com

Comment importer des événements Google Agenda dans une feuille de calcul Google?

J'ai juste besoin de lignes avec nom, date/heure et lieu.

Idéalement, cela devrait être fait automatiquement toutes les n heures ou à chaque événement ajouté.

J'ai trouvé une solution de script sur Stack Overflow , mais existe-t-il un autre moyen de le faire par programme?

2
maborg

On dirait que ce Zap de Zapier devrait vous couvrir. Il vérifie automatiquement Google Agenda toutes les 15 minutes environ pour les nouveaux événements et les enregistre sur une nouvelle ligne dans une feuille de calcul Google.

Google Calendar to Google Spreadsheet

Discloser: Je suis le co-fondateur de cette société. Mais je pense toujours que c'est une excellente solution. :)

4
Wade

Résumé

Vous pouvez importer le format adresse de calendrier publique ou secrète dans iCal avec la fonction =importdata() .

Exemple

J'ai créé un exemple Google Sheet

Le lien devrait se terminer par ".ics"

  • A2: =index(IMPORTDATA(A1),,1)

La fonction index() supprime les colonnes non désirées. Normalement, le fichier iCal ne contient qu'une colonne. Cependant, les descriptions sont parfois importées sous forme de plusieurs colonnes, mais les descriptions ne m'importaient pas.

  • C2: =filter($A:$A, FIND("SUMMARY",$A:$A))

Trouve les lignes avec un titre.

  • D2: =filter($A:$A, FIND("DTSTART",$A:$A))

Trouve les lignes avec la date et l'heure de début.

  • H2: =ARRAYFORMULA(SUBSTITUTE(C2:C2000,"SUMMARY:",""))

Rend le titre plus lisible.

  • I2: =ARRAYFORMULA(iferror(DATE(mid(D2:D2000,9,4),mid(D2:D2000,13,2),mid(D2:D2000,15,2))+TIME(mid(D2:D2000,18,2),mid(D2:D2000,20,2),0),""))

Formate la date et l'heure de début.

Astuce pour l'actualisation du flux

Le calendrier iCal sera encaissé par la feuille Google. De temps en temps, les nouvelles données seront chargées. Lorsque vous souhaitez forcer une actualisation, modifiez l'URL de "https" à "http" ou inversement. Cela peut être parfaitement automatisé avec par exemple la "case à cocher".

1
Benjamin Ziepert