想要将自定义Google日历通知添加到Google表格创建的活动中(Want to Add Custom Google Calendar Notifications to Events Created

编程入门 行业动态 更新时间:2024-10-09 20:22:56
想要将自定义Google日历通知添加到Google表格创建的活动中(Want to Add Custom Google Calendar Notifications to Events Created from Google Sheets)

我目前正在制作一个Google表格,允许我为某些报告到期时创建日历活动(提醒)。

基本上,根据给定的开放日期,我有5种不同类型的报告到期,有些报告的间隔时间间隔不同(即开放日期为45天,6个月,12个月)。 我已经能够修改我在网上找到的样本( http://www.adammcfarland.com/2013/08/09/tutorial-using-google-spreadsheets-to-update-a-google-calendar-our-new -vacation-management-system / ),自定义Google表格以生成每种类型报告的截止日期,并根据这些截止日期创建日历条目。 它实际上非常酷,功能强大。

不幸的是,在为不同的报告创建通知时,我遇到了绊脚石。 我知道如何在Google日历界面中创建默认通知,但我目前试图解决的问题是这些各种报告的问题,并非所有报告都要花费很多时间才能完成,因此我希望创建特定于每个报告的通知报告类型,我到目前为止完全无法让事情发挥作用。

这是我正在使用的脚本的副本。

enter code herefunction pushToCalendar() { var sheet = SpreadsheetApp.getActiveSheet(); var lastRow = sheet.getLastRow(); var range = sheet.getRange(2,1,lastRow,5); var values = range.getValues(); var updateRange = sheet.getRange('G1'); var calendar = CalendarApp.getCalendarById('jk.com_5e9gk4@group.calendar.google.com') updateRange.setFontColor('red'); var numValues = 0; for (var i = 0; i < values.length; i++) { if ((values[i][0].length > 0) && (values[i][2].length > 0)) { if (values[i][3] != 'y') { var newEventTitle = 'Note Due: ' + values[i][0] + ' - ' + values[i][2]; var newEvent = calendar.createAllDayEvent(newEventTitle, values[i][1]); var newEventId = newEvent.getId(); sheet.getRange(i+2,4).setValue('y'); sheet.getRange(i+2,5).setValue(newEventId); }

其中“values [i] [2]”对应于报告的类型。

提前致谢。

I'm currently working on creating a Google Sheet that would allow me to create calendar events (reminders) for when certain reports are due for me.

Basically, on the basis of a given opening date, I have 5 different types of reports due, some at different intervals (ie, 45 days from the open date, 6 months, 12 months). I've been able to modify a sample I found online (http://www.adammcfarland.com/2013/08/09/tutorial-using-google-spreadsheets-to-update-a-google-calendar-our-new-vacation-management-system/), customizing a Google Sheet to generate due dates for each type of report, and create calendar entries based on those due dates. It's actually really cool and powerful.

Unfortunately, I'm stumbling when it comes to creating notifications for the different reports. I know how to create default notifications within the Google Calendar interface, but the quirk I'm currently trying to address is that of these various reports, not all require as much time to complete, so I'm looking to create notifications specific to each report type, and I'm thus far been wholly unable to get things working.

Here's a copy of the script I'm using.

enter code herefunction pushToCalendar() { var sheet = SpreadsheetApp.getActiveSheet(); var lastRow = sheet.getLastRow(); var range = sheet.getRange(2,1,lastRow,5); var values = range.getValues(); var updateRange = sheet.getRange('G1'); var calendar = CalendarApp.getCalendarById('jk.com_5e9gk4@group.calendar.google.com') updateRange.setFontColor('red'); var numValues = 0; for (var i = 0; i < values.length; i++) { if ((values[i][0].length > 0) && (values[i][2].length > 0)) { if (values[i][3] != 'y') { var newEventTitle = 'Note Due: ' + values[i][0] + ' - ' + values[i][2]; var newEvent = calendar.createAllDayEvent(newEventTitle, values[i][1]); var newEventId = newEvent.getId(); sheet.getRange(i+2,4).setValue('y'); sheet.getRange(i+2,5).setValue(newEventId); }

Where "values[i][2]" corresponds to the type of report due.

Thanks in advance.

最满意答案

您可以在基于表创建事件后尝试添加提醒。 请参阅以下代码:

function pushToCalendar() { var sheet = SpreadsheetApp.getActiveSheet(); //Define reminder, value in minute and lower 4weeks (=40320 minutes) var reminder = {"type1":1440,//=1 day "type2":7200,//5days "type3":20160//2weeks }; //End define reminder var lastRow = sheet.getLastRow(); var range = sheet.getRange(2,1,lastRow,5); var values = range.getValues(); var updateRange = sheet.getRange('G1'); var calendar = CalendarApp.getCalendarById('jk.com_5e9gk4@group.calendar.google.com') updateRange.setFontColor('red'); var numValues = 0; for (var i = 0; i < values.length; i++) { if ((values[i][0].length > 0) && (values[i][2].length > 0)) { if (values[i][3] != 'y') { var newEventTitle = 'Note Due: ' + values[i][0] + ' - ' + values[i][2]; var newEvent = calendar.createAllDayEvent(newEventTitle, values[i][1]); //Add reminder //For that we assume you well created the reminder var and all type have the amount of minutes define if not you must implement the check in he code newEvent.addEmailReminder(reminder[values[i][2]]); //End add reminder var newEventId = newEvent.getId(); sheet.getRange(i+2,4).setValue('y'); sheet.getRange(i+2,5).setValue(newEventId); } } } }

我在代码中为您添加了一些注释。

斯特凡

You can try to addreminder just after creating event based on a table. See the code below :

function pushToCalendar() { var sheet = SpreadsheetApp.getActiveSheet(); //Define reminder, value in minute and lower 4weeks (=40320 minutes) var reminder = {"type1":1440,//=1 day "type2":7200,//5days "type3":20160//2weeks }; //End define reminder var lastRow = sheet.getLastRow(); var range = sheet.getRange(2,1,lastRow,5); var values = range.getValues(); var updateRange = sheet.getRange('G1'); var calendar = CalendarApp.getCalendarById('jk.com_5e9gk4@group.calendar.google.com') updateRange.setFontColor('red'); var numValues = 0; for (var i = 0; i < values.length; i++) { if ((values[i][0].length > 0) && (values[i][2].length > 0)) { if (values[i][3] != 'y') { var newEventTitle = 'Note Due: ' + values[i][0] + ' - ' + values[i][2]; var newEvent = calendar.createAllDayEvent(newEventTitle, values[i][1]); //Add reminder //For that we assume you well created the reminder var and all type have the amount of minutes define if not you must implement the check in he code newEvent.addEmailReminder(reminder[values[i][2]]); //End add reminder var newEventId = newEvent.getId(); sheet.getRange(i+2,4).setValue('y'); sheet.getRange(i+2,5).setValue(newEventId); } } } }

I added some comments in the code for you.

Stéphane

更多推荐

本文发布于:2023-08-07 11:41:00,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1464160.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:自定义   表格   日历   通知   活动中

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!