相关疑难解决方法(0)

如何使用脚本同步Google日历和电子表格

我正在尝试创建一个Google Apps脚本,以使Google日历和云端硬盘上的“主电子表格”保持同步-这可能吗?我发现了这两篇文章:

我很确定这可以使用很多if语句和逻辑来完成,但是也许有更简单的方法吗?

我最后只提供了以下简单脚本。真正需要做的只是基于两列添加事件,这将花费很长时间来开发。

function onOpen() {
  //spawns a menu with a button that triggers AddToCal
  var sheet = SpreadsheetApp.getActiveSpreadsheet();
  var entries = [{
    name : "Add event to calendar",
    functionName : "AddToCal"
  }];
  sheet.addMenu("Data To Calendar Plugin", entries);
};

function AddToCal(){

  //get the current row
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var cell = ss.getActiveCell();
  var R = cell.getRow();

  //grab values for current row to pass to calendar event
  var date_of_event = ss.getRange('G'+R).getValue();
  var date = new Date(date_of_event);
  var …
Run Code Online (Sandbox Code Playgroud)

javascript synchronization google-calendar-api google-sheets google-apps-script

5
推荐指数
1
解决办法
1万
查看次数

在 CalendarEvent 上调用 addGuest 时如何发送标准邀请电子邮件?

每当我通过 Google 日历 UI 添加访客时,都会弹出以下对话框:

在此处输入图片说明

如果我选择“发送”,它会向用户发送一封格式良好的电子邮件,并提供响应日历事件的选项:

在此处输入图片说明

当您手动使用 Google 日历 UI 时,这可以完美运行。问题是我正在尝试使用 Google Apps 脚本来自动将人员添加到事件中。

我正在使用addGuest()以编程方式将客人添加到 CalendarEvent :

event.addGuest("user@example.com");
Run Code Online (Sandbox Code Playgroud)

但是,似乎没有发送电子邮件的选项。

我能找到的最接近的是,当您以编程方式创建事件时,您可以设置sendInvites

  var event = CalendarApp.getDefaultCalendar().createEvent(
    'Test',
    new Date('April 5, 2029 20:00:00 UTC'),
    new Date('April 5, 2029 21:00:00 UTC'),
    {sendInvites: true, guests:"your.email+1@example.com"});
  Logger.log(event.getId());
Run Code Online (Sandbox Code Playgroud)

这将正确发送格式良好的电子邮件。

但是,该sendInvites选项仅在新创建事件时有效。如果以后我打电话:

  var event = CalendarApp.getEventById("insert_id_here");
  event.addGuest("your.email+2@example.com");
Run Code Online (Sandbox Code Playgroud)

...它不会发送电子邮件更新(即使该事件是使用 创建的sendInvites=true)。这意味着sendInvites是暂时的,不会在事件上持续存在。

sendInvites调用addGuest()事件时有什么办法吗?例如event.addGuest("user@example.com", {sendInvite: true})

是否有任何其他解决方法会产生与点击上面 UI 中的“发送”按钮时发送的电子邮件相同的电子邮件?

注:我希望使用MailApp,因为它不会被很好地格式化像一个谷歌发送电子邮件自动发送出去(例如,具有嵌入式日历邀请,出席者,描述,响应链接等,等,等)。


更新:

  • 我刚刚在 API 中看到 …

google-calendar-api google-apps-script

3
推荐指数
1
解决办法
2613
查看次数

如何构建指向 Google 日历活动的链接?

如果我有 Google Calendar event 的 event ID,例如:

4htgpmm1hmak744r0kbkdcodar@google.com

如何构建 URL 以在 Google 日历界面中查看事件详细信息?

例如,如果我去参加一个谷歌日历活动,我会看到一个像这样的 URL:

https://calendar.google.com/calendar/r/eventedit/NGh0Z3BtbTFobWFrNzQ0cjBrYmtkY29kYXIgZXVndTlrYW4xZGRpMXBtaTZzazNpYjWoNmdAZw

什么功能/算法可我跑从去4htgpmm1hmak744r0kbkdcodar@google.comNGh0Z3BtbTFobWFrNzQ0cjBrYmtkY29kYXIgZXVndTlrYW4xZGRpMXBtaTZzazNpYjWoNmdAZw

奖励:如果还有一个通过 Google Apps Script 处理CalendarEvent的快捷方法,那就太棒了。例如,如果有一个方法,getUrl()就像有一个getId()方法一样。

google-calendar-api google-apps-script

1
推荐指数
1
解决办法
1874
查看次数