【问题标题】:Multiple Google Calendars to Google Sheet Two Way Sync Issue多个 Google 日历到 Google 表格的两种方式同步问题
【发布时间】:2019-12-17 01:37:57
【问题描述】:

您好,我正在尝试修改将谷歌日历与谷歌表格同步的脚本。 从日历到工作表以及从工作表到日历。

目前日历ID是在google代码的这一行手动输入的:

var calendarId = '(calendarid@group.calendar.google.com';

这是来自 Dave Par https://github.com/Davepar/gcalendarsync 的脚本

我修改了显示的菜单如下:

  var ui = SpreadsheetApp.getUi();


var subMenu = SpreadsheetApp.getUi().createMenu('Update to Calendar')
                          .addItem('Update to Calendar', 'syncToCalendar')


var topMenu = SpreadsheetApp.getUi().createMenu('Calendar Sync')
                          .addItem('Update from Calendar', 'syncFromCalendar')
                          .addSubMenu(subMenu);

topMenu.addToUi();
}

我想要做的是在菜单中获取两个函数 SyncToCalendar 和 SyncFromCalendar 中的每一个,以便能够使用以下函数将子菜单作为下拉列表填充我的所有日​​历

https://developers.google.com/calendar/v3/reference/calendarList/list#examples

  var calendars, pageToken;
  do {
    calendars = Calendar.CalendarList.list({
      maxResults: 100,
      pageToken: pageToken
    });
    if (calendars.items && calendars.items.length > 0) {
      for (var i = 0; i < calendars.items.length; i++) {
        var calendar = calendars.items[i];
        Logger.log('%s (ID: %s)', calendar.summary, calendar.id);
      }
    } else {
      Logger.log('No calendars found.');
    }
    pageToken = calendars.nextPageToken;
  } while (pageToken);
}

所以基本上能够选择一个特定的日历来运行函数 SyncTocalendar 和函数 SyncFromCalendar。

我们将不胜感激。

我看到一个主题是在一个单元格上完成的,你只需更改一个 id,所以我希望这个脚本可以修改为在子菜单下拉菜单中显示日历名称?

https://www.oipapio.com/question-5536049

【问题讨论】:

    标签: google-calendar-api google-sheets-api submenu


    【解决方案1】:

    您最好的选择是更改syncToCalendarsyncFromCalendar 以输入参数。但这是不可能的,因为通过菜单执行的功能不带参数。你可以看到一个非常相似的问题here

    如果日历的数量是固定的并且很少,您可以尝试只包装这两个函数并根据菜单调用一个或另一个,就像在this question 中所做的那样。

    但是,如果您遇到大量无法静态包装的日历,您应该尝试使用 Function 构造函数动态地执行此操作。这将为您提供一种在运行代码时创建函数的方法,请查看this question to create functions

    您也可以尝试其他方法,例如,您可以创建一个cell with a dropdown 来获取所有日历 ID。并从该单元格中获取日历 ID。

    【讨论】:

    • 您好,感谢您的帮助,不幸的是我是一个非常新手的编码器,但我想学习!你有没有机会为我在谷歌表格中提供的最后 3 个解决方案建立一个工作示例?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-05-12
    • 1970-01-01
    • 2015-01-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多