如何将事件从python / django推送到某人的谷歌日历?

时间:2010-10-29 19:30:43

标签: django google-calendar-api

我想用最简单最方便的方法将事件从Python Django推送到用户的Google日历中。我不想阅读他们的活动或做任何其他事情,只需将他们在我的应用程序中创建的事件推送到他们的Google日历一次。

次要是可能删除其谷歌日历中的事件(如果我推入的事件被删除)。

2 个答案:

答案 0 :(得分:1)

答案 1 :(得分:1)

这是一个片段:

from django import template
from django.contrib.sites.models import Site
from django.utils.http import urlquote_plus

register = template.Library()

@register.filter
def google_calendarize(event):
    st = event.start
    en = event.end and event.end or event.start
    tfmt = '%Y%m%dT000000'

    dates = '%s%s%s' % (st.strftime(tfmt), '%2F', en.strftime(tfmt))
    name = urlquote_plus(event.name)

    s = ('http://www.google.com/calendar/event?action=TEMPLATE&' +
     'text=' + name + '&' +
     'dates=' + dates + '&' +
     'sprop=website:' + urlquote_plus(Site.objects.get_current().domain))

    if event.location:
        s = s + '&location=' + urlquote_plus(event.location)

    return s + '&trp=false'

google_calendarize.safe = True

此代码可以通过以下方式调用:

{% load project_events_tags %}
...
<a href="{{ event|google_calendarize }}">+ Add to Google Calendar</a>