Menambahkan beberapa ID kalender dan email peserta ke acara

Saya memiliki skrip untuk mengotomatiskan kalender kami berdasarkan jadwal lembar Google yang kami miliki. Itu berfungsi dalam menambahkan acara ke kalender tertentu, tapi saya ingin menambahkan kalender individual ke skrip serta secara otomatis menambahkan grup Google sebagai tamu ke acara tersebut sehingga pemberitahuan keluar seperti acara kalender Google biasa.

   function scheduleShifts() {
/**
  Task 1) Open the Event Calendar.
**/
var spreadsheet = SpreadsheetApp.getActive();
var calendarID = spreadsheet.getRange("C2").getValue();
var eventCal = CalendarApp.getCalendarById(calendarID);

/**
  Task 2) Pull each shift information into the code, in
  a form that the code can understand. 
**/
var signups = spreadsheet.getRange("A5:C100").getValues();

/**
    [
      [11/9/2019 0:00:00,11/10/2019 0:00:00,Werdah On-Call],
      [11/10/2019 0:00:00,11/11/2019 0:00:00,Lucas On-Call],
      [11/16/2019 0:00:00,11/17/2019 0:00:00,Aiden On-Call],
      [11/17/2019 0:00:00,11/18/2019 0:00:00,Werdah On-Call],
      [11/23/2019 0:00:00,11/24/2019 0:00:00,Mayra On-Call],
      [11/24/2019 0:00:00,11/25/2019 0:00:00,Kyle On-Call],
      [11/30/2019 0:00:00,12/1/2019 0:00:00,Cavan On-Call],
      [12/1/2019 0:00:00,12/2/2019 0:00:00,Adam On-Call],
      [12/7/2019 0:00:00,12/8/2019 0:00:00,Hillary On-Call],
      [12/8/2019 0:00:00,12/9/2019 0:00:00,Melissa Pino On-Call],
      [12/14/2019 0:00:00,12/15/2019 0:00:00,Kristi On-Call],
      [12/15/2019 0:00:00,12/16/2019 0:00:00,Kevin On-Call],
      [12/21/2019 0:00:00,12/22/2019 0:00:00,Alice On-Call],
      [12/22/2019 0:00:00,12/23/2019 0:00:00,Carro On-Call],
      [12/28/2019 0:00:00,12/29/2019 0:00:00,Sruthi On-Call],
      [12/29/2019 0:00:00,12/30/2019 0:00:00,Tara On-Call]
    ]  
**/

/**
  Task 3) Do the work!
**/
for (x=0; x<signups.length; x++) {

var shift = signups[x];

var startTime = shift[0];
var endTime = shift[1];
var oncall = shift[2];

eventCal.createEvent(oncall, startTime, endTime);
  }
}

/**
  Task 4) Make it easy to ue.
**/
function onOpen(){
  var ui = SpreadsheetApp.getUi();
  ui.createMenu('Sync to Calendar')
      .addItem('Schedule shifts now','scheduleShifts')
      .addToUi();
}

person Lucas Hammonds    schedule 12.11.2019    source sumber
comment
Bisakah Anda memberikan contoh spesifik tentang apa yang ingin Anda lakukan? Sesuatu yang dapat kita selesaikan secara nyata dengan kumpulan data pengujian kecil? Saya tidak yakin apakah Anda meminta untuk mengedit kalender orang lain tanpa izin mereka?   -  person CodeCamper    schedule 12.11.2019
comment
Apa yang ingin saya lakukan adalah memperbarui sel di kolom tertentu pada lembar Google dan mendorong undangan kalender ke orang-orang tersebut untuk memberi tahu orang-orang tentang hari-hari panggilan. Saat ini, kami hanya mencantumkannya di sheet dan memanggilnya di saluran slack. Saya perhatikan orang-orang melewatkan pesan-pesan santai itu karena kami memiliki begitu banyak saluran untuk terus dipantau sepanjang hari. Skrip ini mendorong acara kalender, tetapi tidak menetapkan email sehingga seseorang mendapat pemberitahuan standar. juga, ingin menelepon lebih dari satu ID kalender.   -  person Lucas Hammonds    schedule 12.11.2019


Jawaban (1)


Yang ingin Anda lakukan adalah mengubah kode pembuatan acara untuk menggunakan createEvent(title, startTime, endTime, options).

Dengan ini Anda dapat menambahkan objek sebagai parameter ke-4 seperti ini:

{
  "guests": "email1,email2,email3,groupsemail,etc",
  "sendInvites": true,
  "description": "Maybe you want to add more details? Up to you"
}

Jadi, pastikan Anda mengedit eventCal.createEvent(oncall, startTime, endTime); Anda untuk mendapatkan argumen tambahan.

Selain itu, Anda mungkin ingin membuat daftar email yang akan ditambahkan secara otomatis dan pasangan kunci dan nilai untuk menyatukan nama dan email.

Semoga beruntung!

person ZektorH    schedule 13.11.2019
comment
Terima kasih atas bantuannya di sini. Saya baru dalam menulis skrip, pada dasarnya hanya skrip rekayasa balik yang saya temukan dalam penelitian saya. Jadi, saya mengerti apa yang Anda katakan, tetapi kesulitan dalam menyatukannya ke dalam naskah. Di mana saya menambahkan baris kode Anda? Antara tugas 3 dan 4 skrip (baris 45) dan kemudian menambahkan objek ke-4? Juga, bagaimana saya bisa mengatur ini untuk menjalankan tanggal tertentu hanya sekali? Setiap kali saya menjalankan makro, semuanya diulangi lagi. Setiap bantuan di sini akan dihargai. - person Lucas Hammonds; 14.11.2019