การเพิ่ม ID ปฏิทินหลายรายการและอีเมลผู้เข้าร่วมในกิจกรรม

ฉันมีสคริปต์เพื่อทำให้ปฏิทินของเราเป็นแบบอัตโนมัติตามกำหนดการของ Google ชีตที่เรามี ใช้งานได้ในการเพิ่มกิจกรรมลงในปฏิทินเฉพาะ แต่ฉันต้องการเพิ่มปฏิทินแต่ละรายการลงในสคริปต์ รวมถึงเพิ่ม Google Group เป็นแขกในกิจกรรมโดยอัตโนมัติ เพื่อให้การแจ้งเตือนออกมาเหมือนกับกิจกรรม Google ปฏิทินปกติ

   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();
}

comment
คุณช่วยยกตัวอย่างที่เฉพาะเจาะจงของสิ่งที่คุณต้องการทำได้ไหม? สิ่งที่เราสามารถแก้ไขได้อย่างเป็นรูปธรรมด้วยชุดข้อมูลทดสอบขนาดเล็ก ฉันไม่แน่ใจว่าคุณกำลังขอให้แก้ไขปฏิทินของคนอื่นโดยไม่ได้รับอนุญาตหรือไม่?   -  person CodeCamper    schedule 12.11.2019
comment
สิ่งที่ฉันต้องการทำคืออัปเดตเซลล์ในบางคอลัมน์ของ Google ชีต และมันจะส่งคำเชิญปฏิทินไปยังบุคคลเหล่านั้นเพื่อแจ้งให้ผู้คนทราบถึงวันที่โทรมา ในปัจจุบัน เราเพียงแค่แสดงรายการไว้ในชีตและเรียกมันออกมาในช่องหย่อน ฉันสังเกตเห็นว่าผู้คนพลาดข้อความที่หย่อนคล้อยเหล่านั้น เนื่องจากเรามีช่องทางมากมายให้ติดตามในระหว่างวัน สคริปต์จะพุชกิจกรรมในปฏิทิน แต่ไม่ได้กำหนดอีเมล เพื่อให้มีคนได้รับการแจ้งเตือนมาตรฐาน ต้องการโทรมากกว่าหนึ่ง ID ปฏิทิน   -  person Lucas Hammonds    schedule 12.11.2019


คำตอบ (1)


สิ่งที่คุณต้องการทำคือเปลี่ยนโค้ดการสร้างกิจกรรมเพื่อใช้ createEvent(title, startTime, endTime, options) ฟังก์ชัน

ด้วยวิธีนี้ คุณสามารถเพิ่มออบเจ็กต์เป็นพารามิเตอร์ที่ 4 ได้ดังนี้:

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

ดังนั้น ตรวจสอบให้แน่ใจว่าคุณแก้ไข eventCal.createEvent(oncall, startTime, endTime); ของคุณเพื่อให้มีอาร์กิวเมนต์เพิ่มเติม

นอกจากนี้ คุณอาจต้องการสร้างรายการอีเมลที่จะเพิ่มอัตโนมัติและคู่คีย์และค่าสำหรับการเชื่อมโยงชื่อและอีเมลเข้าด้วยกัน

ขอให้โชคดี!

person ZektorH    schedule 13.11.2019
comment
ขอบคุณสำหรับความช่วยเหลือที่นี่ ฉันยังใหม่กับการเขียนสคริปต์ โดยพื้นฐานแล้วเป็นเพียงสคริปต์วิศวกรรมย้อนกลับที่ฉันพบในการค้นคว้าของฉัน ฉันเข้าใจสิ่งที่คุณพูด แต่มีปัญหาในการรวบรวมไว้ในสคริปต์ ฉันจะเพิ่มบรรทัดโค้ดของคุณที่ไหน ระหว่างงานที่ 3 และ 4 ของสคริปต์ (บรรทัดที่ 45) แล้วเพิ่มวัตถุที่ 4? นอกจากนี้ ฉันจะตั้งค่าให้เรียกใช้วันที่ที่ระบุเพียงครั้งเดียวได้อย่างไร ทุกครั้งที่ฉันเรียกใช้แมโคร มันจะทำการรันทุกอย่างใหม่อีกครั้ง ความช่วยเหลือใด ๆ ที่นี่จะได้รับการชื่นชม - person Lucas Hammonds; 14.11.2019