如何建立谷歌日历活动的HTML链接?

How to build html link to a google calendar event?

使用Google日历API v3,我在Google日历中添加了一个事件。 现在我想建立一个html链接,以便有人可以点击并查看日历事件。

这是我尝试过的:

View Google

href看起来像:
https://www.google.com/calendar/feeds/default/private/full/bigstringhere1ovmuup7mjf0

问题是我得到401错误"需要授权"

如何根据Google日历ID构建查看/编辑日历活动的链接?


有一种方法!要查看公共日历活动,请使用以下表单的链接:

1
https://www.google.com/calendar/event?eid={event-id}&ctz={timezone}

其中{event-id}是唯一的事件ID,{timezone}是其中一个时区。

以下是一个示例:指向特定公共日历活动的链接。

如果您拥有此事件来自的日历的编辑权限,您将能够编辑该事件并查看访客列表。否则,您只需查看有关该事件的公共信息。

由于可能很难确定事件ID,因此这是一个书签,当您编辑其详细信息页面时,该书签会生成指向您的Google日历事件的链接:

1
javascript:(function(){ try { window.prompt('Shareable link to this event:','https://www.google.com/calendar/event?eid='+document.getElementsByClassName('ep')[0].getAttribute('data-eid')) } catch (e) {alert("Use this bookmarklet to get a shareable link to a Google Calendar event when editing its Details page.")}})()

此书签的一个版本适用于新的(截至2017年)Google日历用户界面:

1
2
3
4
5
javascript:(function(){
  window.prompt('Shareable link to this event:',
    'https://www.google.com/calendar/event?eid='+
    window.location.href.split("/").pop().split("?")[0])
})()

(也可能有用,如何链接到公开Goog??le日历的特定日期:

1
https://www.google.com/calendar/embed?src={calendar-id}&mode=day&dates={yyyymmdd}%2F{yyyymmdd}

其中{calendar-id}是日历的ID,{yyyymmdd}是您要链接的日期。

可选参数包括时区以及是否显示各种项目,例如:

1
&ctz=Asia/Taipei&showNav=0&showPrint=0&showCalendars=0

示例:链接到公共日历的单日。)


以下是构建链接的HTML:

https://www.google.com/calendar/render?action=TEMPLATE&text=Your+Event+Name&dates=20140127T224000Z/20140320T221500Z&details=For+details,+link+here:+http://www.example.com&location=Waldorf+Astoria,+301+Park+Ave+,+New+York,+NY+10022&sf=true&output=xml


事件URL不是日历URL。

此链接带来了解释:Google Calender v3

构建此URL的方法是:

1
GET https://www.googleapis.com/calendar/v3/calendars/calendarId/events/eventId

其中calendarId& eventId是参数。

希望这是有帮助的。


我想发布这个,因为它与被问到的问题相关,当我尝试执行以下操作时,这篇文章会出现。

我试图生成Google活动的唯一目的是将其添加到其他人的日历中,而不是保存到任何特定的日历中。我在这里找到了一个例子,我现在正试图找出它接受的URL参数。

1
https://www.google.com/calendar/render?action=TEMPLATE&text=PRP+Due&dates=20141106T120000Z/20141106T120000Z&details&location&trp=false

按事件ID查看Google日历事件。

您可以使用以下示例:

1
https://www.google.com/calendar/event?eid={event-id}&ctz={timezone}

印度TimeZone的示例:

1
https://calendar.google.com/calendar/event?eid=ZjVicWczYWpndmh0ZmdtYmd0cXFxZWc3czggdTJoZmoybGg0aDcwbmhzMzV2c25pamd1dG9AZw&ctz=Asia/Kolkata

当创建Google日历事件时,在响应中我们获得了result属性。在此result属性中,将有一个htmlLink可用,其中包含有关正在创建的事件的链接。现在,它可以打开:

1
window.open(response.result.htmlLink, '_target');


要从Google Calendar API v3获取活动,请致电:

GET https://www.googleapis.com/calendar/v3/calendars/calendarId/events/eventId

该事件包含属性htmlLink,这正是您所需要的:

An absolute link to this event in the Google Calendar Web UI. Read-only.

请参阅https://developers.google.com/google-apps/calendar/v3/reference/events。

链接如下所示:

1
https://www.google.com/calendar/event?eid=XzYwcTMwYzFnNjBvMzBlMWk2MG80YWMxZzYwcmo4Z3BsODhyajJjMWg4NHMzNGg5ZzYwczMwYzFnNjBvMzBjMWc2c28zMmRoaDhwMGpnaDIxNnQyNDZkaGc2NG8zMGMxZzYwbzMwYzFnNjBvMzBjMWc2MG8zMmMxZzYwbzMwYzFnNzByNDRoMWk2b3AzOGUxazZoMms2aDFrNmQwamNkaTI2OHBrMmhpMjg4czRjZ2hoNzBwMF8yMDA2MDUwNSBob3BtYW4ubmxfbjE5ZGF2YWgxb3Zkb3EzbGl2N2t1aWU5Z.

它将全屏打开事件,当然只有您可以访问该事件。屏幕将包含一个返回日历的后退按钮。

显然,您无法自己构建此链接,因此您需要调用API,但无论如何您可能已经这样做了。


要创建用户可以公开查看事件日历的页面,有权更改日历共享设置的用户必须首先公开日历:

  • 在Google日历的右上角,点击"设置"轮。

  • 在"设置"中,单击"日历"选项卡。

  • 单击您正在使用的日历的名称。

  • 接下来,单击"共享此日历"选项卡。确保从下面的屏幕截图中选中复选框(以红色圈出)。

Google Calendar Settings Page

  • 然后,单击位于左上角的"日历详细信息"选项卡。

  • 向下滚动到"日历地址"部分,如下面的屏幕截图所示。

  • 点击"HTML"。

  • 将出现一个弹出式模式,其中包含您公开访问日历所需的公共URL。

Get URL For Public Google Calendar

以下是URL的外观示例:

1
https://www.google.com/calendar/[email protected]&ctz=America/Los_Angeles&gsessionid=OK

此外,有关创建和使用日历小工具的信息,请参阅Google Calendar Data API。


谷歌创建了一个DIY页面。

https://support.google.com/calendar/answer/3033039