适用于iCal网址Feed的Google Calendar Sync脚本会生成同一日历条目

时间:2018-04-08 14:58:01

标签: calendar synchronization gsuite

我想让Google日历(来自我付费的G-Suite)与我的Cliniko诊所日历(有iCal供稿网址)同步(可以接受5分钟)。

默认情况下,同步时间似乎在12到24小时左右,对我来说无法正常工作。

我试图在G-Suite上使用Derek Antrican的this script。我添加了我的信息。

最初它没有用,但当我将脚本中的条目从名称[My first and last name]更改为[my email address with G Suite hosted domain]时,它开始同步。

然而,它给了我错误信息(我只包括许多中的前/后几项):

  

apps-scripts-notifications@google.com   06:19(8小时前)   给我

     

您的脚本ICS / ICAL同步副本最近未能完成   成功。故障摘要如下所示。配置   此脚本的触发器,或更改您的接收设置   未来的失败通知,请点击这里。

     

摘要:错误消息计数服务在一天内调用了太多次:电子邮件。

     

(第143行,文件"代码")108我们很抱歉,发生了服务器错误。请稍等一下再试一次。

     

(第143行,文件"代码")1启动功能错误消息触发结束4/7/18 5:41 PM main我们很抱歉,服务器错误   发生了。请稍等一下再试一次。

     

(第143行,文件"代码")   基于时间的4/7/18 5:41 PM 4/7/18 5:42 PM主服务也被调用   一天多次:电子邮件。

     

(第143行,文件"代码")基于时间   4/7/18 5:43 PM

我认为时间戳不是英国时间 - 这些时间在英国或清晨一夜之间发生。

然后我更改了脚本并再次运行/安装它,其中一个更改是时间间隔从1分钟到5分钟。

我还没有收到任何错误消息(但是他们可能正在某处建立,而不是通过电子邮件发送给我)。

然而,我注意到事件正在添加多个实例:

所以一个重要的目标是阻止这种重复发生(非常感谢任何帮助):

enter image description here

2 个答案:

答案 0 :(得分:0)

我建议您先查看日志进行实验。该脚本具有以下选项:

var addEventsToCalendar = true;

将此设置为false,然后查看日志。您还可以让脚本向您发送电子邮件提醒,以便及时获得有关正在发生的事情的信息。参见:

var emailWhenAdded = false; //Will email you when an event is added to your calendar
var email = ""; //OPTIONAL: If "emailWhenAdded" is set to true, you will need to provide your email

答案 1 :(得分:0)

我有同样的问题。问题出在每一次检索.ics文件时,外部服务都会生成新的事件UID(或多或少违反了iCal UID的目的)。

(公认的,不太优雅的)解决方法是连接开始时间和结束时间,位置和描述(从而创建或多或少的唯一标识符),并在FID标签中使用此值而不是iCal UID。除非您需要重复发生的事件的支持,否则此方法应该起作用,但是如果您的服务不断生成新的UID,则该功能可能会被破坏。

换句话说,替换为:

awk ' BEGIN{ FS=OFS="|"}
{
   { if ( $1 ~ /$3/ )  { print $0 }  }
} '

与此:

if (item.includes("UID")){
        currentEvent.id = item.split("UID:")[1];
        feedEventIds.push(currentEvent.id);
      }

此外,请删除脚本中与修改现有事件有关的部分,因为这将在每次ID更改时发生。