首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >你能用Google Script在特定的时间为未来的日期创建日历事件吗?

你能用Google Script在特定的时间为未来的日期创建日历事件吗?
EN

Stack Overflow用户
提问于 2020-02-11 03:27:09
回答 3查看 170关注 0票数 0

我想根据电子邮件进入我的收件箱的时间来创建日历事件。我希望这发生在电子邮件到达后14天,但特别是在上午9点。现在,我正在尝试让脚本在第二天上午9点运行,然后在该运行时间的13天后创建一个事件。在脚本中有没有更有效的方法来做到这一点呢?

代码语言:javascript
复制
//This script runs the next day around 9am, calendar invite will be created for 13 days form then 
    to account for the next day
var now = new Date().getTime();
var MILLIS_PER_DAY = 1000 * 60 * 60 * 24;
for (i in threads) {
  cals[0].createEvent(reminderLabel + '- '+ i.getFirstMessageSubject(),
    new Date(now+(MILLIS_PER_DAY*13)),
      new Date(now+(MILLIS_PER_DAY*13)+900000), {description: i.getPermalink()});
}
EN

Stack Overflow用户

发布于 2020-02-11 23:40:38

您可以在time-driven trigger上每天自动运行该函数

函数的内容应如下所示

  • 实现if语句以仅列出在过去24小时内到达的消息
  • 创建时间为9:00 am of today的date对象
  • 对于所有新消息,创建从今天上午9:00起13天内的事件

示例(绑定一个可安装的时间驱动触发器):

代码语言:javascript
复制
function myFunction() {
  var threads = GmailApp.getInboxThreads();
  var cals = CalendarApp.getAllCalendars();
  var now = new Date().getTime();
  var nineAm = new Date();
  nineAm.setHours(09);
  nineAm.setMinutes(00);
  nineAm = nineAm.getTime();
  var reminderLabel = "Reminder: ";
  var MILLIS_PER_DAY = 1000 * 60 * 60 * 24;
  for (var i =0; i <threads.length; i++) {
    if(threads[i].getLastMessageDate().getTime()>=(now-24*3600*1000)){
      Logger.log(threads[i].getLastMessageDate());
      cals[0].createEvent(reminderLabel + '- '+ threads[i].getFirstMessageSubject(),
        new Date(nineAm+(MILLIS_PER_DAY*13)),
          new Date(nineAm+(MILLIS_PER_DAY*13)+900000), {description: threads[i].getPermalink()});
    }else{
      return;
    }
  }
}
票数 0
EN
查看全部 3 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60157096

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档