日历邀请以UTC显示事件时间

问题描述 投票:3回答:1

我们正在使用Google Calendar API将事件(约会)添加到员工的日历中,并且还将客户添加为受邀者。

[我们遇到了Google发送事件邀请的方式出现问题,其中一些以UTC发送(针对gmail和非gmail地址)。

下面是一个实际示例的JSON(已删除的个人信息:]:>

{
    "start": {
        "dateTime": "2017-10-29T13:00:00-04:00",
        "timeZone": "America/New_York"
    },
    "end": {
        "dateTime": "2017-10-29T14:00:00-04:00",
        "timeZone": "America/New_York"
    },
    "attendees": [{
        "email": "[redacted]@gmail.com"
    }, {
        "email": "[redacted]@popsells.com"
    }],
    "creator": {
        "email": "[redacted]@popsells.com"
    },
    "description": "Location:[redacted]",
    "guestsCanInviteOthers": true,
    "guestsCanModify": false,
    "guestsCanSeeOtherGuests": false,
    "id": "pop1026201[redacted]",
    "kind": "calendar#event",
    "location": "[redacted]",
    "transparency": "opaque",
    "visibility": "default",
    "summary": "Photos & Video: 2014 Bayliner 16",
    "organizer": {
        "email": "[redacted]@popsells.com"
    },
    "reminders": {
        "overrides": [{
            "method": "email",
            "minutes": 120
        }],
        "useDefault": false
    }
}

请注意决定在时间后面指定-0400偏移量,并且还要指定第二个字段,以便让Google明确知道我们希望此事件表示在哪个时区。

在此示例中,客户收到此:

Notice the time isn't specified as UTC until the very bottom of the email

直接从我们的SMTP服务器中提取的原始原始.eml文件(我们从我们的服务器上实时收到了Gmail发送的所有邮件的副本,显示了一些有趣的东西(两个屏幕截图):

Notice the subject line very clearly says 5pm - 6pm and does not mention a time zone

Notice the UTC value here in the querystring - this value would be the intended time zone in examples where the invite is sent w/ the intended time zone

这仅是显示问题;实际的日历事件将在正确的时间显示在员工和客户日历上。此显示问题使我们的客户感到困惑:

a。)在他们的日历上看到该活动之前,请先参阅此邀请电子邮件,以便他们看到在主题行中引用的时间似乎是错误的(没有指定时区)。

b。)他们不是军人或不是我们这样的天才程序员,所以他们假设显示的没有时区的时间将是他们参加的本地活动的当地时间。

c。)不要阅读整个邀请电子邮件,以查看细则显示的时区与他们预期的时区不同。

d。)大多数人甚至都不知道一段时间后的“协调世界时”是什么意思,甚至可能都不认为这是一个时区。

我已经确认我正在按照JSON中的建议发送所有内容。

我已经确认组织者的日历(在JSON中指定)在America / New_York上。从匹配到其日历的JSON响应现在返回以下内容:

{
 "kind": "calendar#calendar",
 "etag": "\"BKjXnZpXR6E5ueFWG3O[redacted]\"",
 "id": "[redacted]@popsells.com",
 "summary": "[redacted]@popsells.com",
 "timeZone": "America/New_York"
}

[我确定它以正确指定的时区发送的时间不是随机的,但我没有任何信息可以解释为什么Google有时会正确发送ut,而其他时候却不能正确发送。

我无权访问客户的日历,但是我有零个理由相信我们很多客户的时区都设置​​为UTC。我们所有的客户都在美国。假设30%以上的客户的时区设置为UTC,从统计上讲是不合理的。

有人对我接下来可以尝试什么以获取主题行以标识指定时区中的任何时间(在此特定示例中为美国东部时间下午1点至下午2点(而不只是显示下午5点至下午6点)有任何建议吗? ?

机智端解决此问题。

我们正在使用Google Calendar API将事件(约会)添加到我们员工的日历中,并且还将客户添加为受邀者。 Google发出事件的方式遇到了问题...

google-calendar-api
1个回答
0
投票

您是否找到解决此问题的方法??以完全相同的方式面对它!

© www.soinside.com 2019 - 2024. All rights reserved.