Generating Google Calendar Event URLs

You can generate your own Google Calendar event URLs following this general structure:

Google Calendar Event URL Format

1
2
3
4
5
6
https://calendar.google.com/calendar/render?action=TEMPLATE&
text=EVENT_TITLE&
dates=START_DATE_TIME/END_DATE_TIME&
details=EVENT_DESCRIPTION&
location=EVENT_LOCATION&
ctz=TIMEZONE

Parameter Breakdown

ParameterPurposeFormat/ExampleRequired?
textThe event title (URL-encoded)text=Grad%20Connect%202025Yes
datesStart/end date and time, in YYYYMMDDTHHMMSSdates=20250821T100000/20250821T130000 (T for time)Yes
detailsEvent description (URL-encoded)details=Description%20here...No
locationEvent location (URL-encoded)location=Ramin%20Room%2C%20Bartels%20Hall...No
ctzIANA timezone name (URL-encoded)ctz=America/New_YorkNo

Create Your Own

To generate these URLs yourself, you can use the following Python function:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
import datetime
import sys

from collections import OrderedDict
from typing import Optional

if sys.version_info < (3,):
from urllib import quote
else:
from urllib.parse import quote


def generate_google_calendar_event_url(
title, # type: str
start_datetime, # type: datetime.datetime
end_datetime, # type: datetime.datetime
description=None, # type: Optional[str]
location=None, # type: Optional[str]
iana_timezone_name=None # type: Optional[str]
):
base_url = "https://calendar.google.com/calendar/render"

query_string_fragments = [
'action=TEMPLATE',
'text=%s' % quote(title),
'dates=%s/%s' % (start_datetime.strftime('%Y%m%dT%H%M%S'), end_datetime.strftime('%Y%m%dT%H%M%S'))
]

if description is not None:
query_string_fragments.append('details=%s' % quote(description))

if location is not None:
query_string_fragments.append('location=%s' % quote(location))

if iana_timezone_name is not None:
query_string_fragments.append('ctz=%s' % quote(iana_timezone_name))

query_string = '&'.join(query_string_fragments)

return '%s?%s' % (base_url, query_string)

Example

Suppose you want an event: - Title: Sample Event - Date/Time: June 10, 2024, 2pm to 3:30pm - Description: Don't miss this important meeting! - Location: 123 Main St, New York, NY - Time zone: America/New_York

Here's how you'd create the URL:

1
2
3
4
5
6
7
8
9
10
11
from zoneinfo import ZoneInfo


generate_google_calendar_event_url(
title='Sample Event',
start_datetime=datetime.datetime(2024, 6, 10, 14, 00),
end_datetime=datetime.datetime(2024, 6, 10, 15, 30),
description="Don't miss this important meeting!",
location='123 Main St, New York, NY',
iana_timezone_name='America/New_York'
)

Generating Google Calendar Event URLs
https://jifengwu2k.github.io/2025/08/12/Generating-Google-Calendar-Event-URLs/
Author
Jifeng Wu
Posted on
August 12, 2025
Licensed under