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

时间:2012-05-26 05:04:52

标签: google-api google-calendar-api

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

以下是我的尝试:

<a href="https://www.google.com/calendar/feeds/default/private/full/{{ event.googleID }}">View Google</a>

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

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

如何根据Google日历ID构建链接以查看/编辑日历事件?

10 个答案:

答案 0 :(得分:35)

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

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

其中 {event-id} 是唯一的事件ID, {timezone} these time zones之一。

以下是一个示例:link to a specific public calendar event

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

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

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日历用户界面:

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日历的特定

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

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

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

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

示例:link to single day of a public calendar。)

答案 1 :(得分:9)

以下是构建链接的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

答案 2 :(得分:6)

事件网址不是日历网址。

此链接带来解释:Google Calender v3

构建此网址的方法是:

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

calendarId&amp; eventId是参数。

希望这有用。

答案 3 :(得分:4)

我想发布此内容,因为它与所提出的问题相关,当我尝试执行以下操作时,此帖子会出现。

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

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

答案 4 :(得分:3)

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

您可以使用以下示例:

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

印度时区的例子:

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

答案 5 :(得分:0)

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

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

  • 在“设置”中,点击“日历”标签。

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

  • 接下来,点击“分享此日历”标签。确保从下面的屏幕截图中选中复选框(以红色圈出)。

Google Calendar Settings Page


  • 然后,点击位于左上角的“日历详细信息”标签。

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

  • 点击“HTML”。

  • 系统会显示一个弹出模式,其中包含您公开访问日历所需的公共网址。


Get URL For Public Google Calendar


以下是网址的示例:

https://www.google.com/calendar/embed?src=domain.comrandomstring@group.calendar.google.com&ctz=America/Los_Angeles&gsessionid=OK

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

答案 6 :(得分:0)

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

  

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

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

  

Google Calendar Web UI中此事件的绝对链接。只读。

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

链接如下所示:

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

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

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

答案 7 :(得分:0)

创建了Google日历事件后,在响应中我们获得了const songs = ["Lophelia -- MYTCH [Acoustic Prog-Rock/Jazz] (2019)", "Julia Jacklin - Pressure to Party [Rock] (2019)", "The Homeless Gospel Choir - I'm Going Home [Folk-Punk] (2019) cover of Pat the Bunny | A Fistful of Vinyl", "Lea Salonga and Simon Bowman - The last night of the world [musical] (1990)", "Lophelia -- MYTCH [Acoustic Prog-Rock/Jazz]", "Death - $uicideboy$", "SNFU -- Joni Mitchell Tapes [Punk/Alternative] (1993)", "Title - Aritst (2000)", "Something strange and badly formatted without any artist [Classical]"] songs.forEach(song => { m = /^([^-[\]()\n]+)-* *([^[\]()\n]*)/.exec(song) console.log("Title: " + m[1] + ", Artist: " + m[2]) })属性。在此result属性中,将有一个另外的result可用,这些链接具有有关正在创建的事件的链接。现在,它可以打开了:

htmlLink

答案 8 :(得分:0)

Wordpress + ACF Google Cal。

将ACF日期选择器设置为自定义返回Y-m-d g:i a

然后创建一个Google格式的日期。

$event_start_date = get_field('event_start_date');
$event_print_date = date('d/m/Y',strtotime($event_start_date));
$event_start_time = get_field('event_start_time');
$event_end_date = get_field('event_end_date');
$event_print_enddate = date('d/m/Y',strtotime($event_end_date));
$event_end_time = get_field('event_end_time');

$calendarDate = date('Ymd',strtotime($event_start_date)) .'T'. date('Hi',strtotime($event_start_time)). '00/' . date('Ymd',strtotime($event_end_date)) .'T'. date('Hi',strtotime($event_end_time)) . '00';

链接

<a href="https://www.google.com/calendar/render?action=TEMPLATE&text=<?php the_title(); ?>&dates=<?php echo $calendarDate; ?>&details=<?= strip_tags($event_contact_info); ?>  For+details,+link+here:+<?php the_permalink(); ?>&location=<?php echo $calendarLocation; ?>&sf=true&output=xml" target="_blank" rel="nofollow">Add this event to my Google Calendar</a>

答案 9 :(得分:-3)

Google已经创建了一个DIY页面。

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