Google Calendar Link Decoder

Paste a Google Calendar event link to decode its eid parameter into the event ID and calendar ID the Calendar API expects. It also builds event links from IDs and public add-to-calendar links.

Updated October 4, 2026

Build an event link from IDs

The reverse: turn an event ID and calendar ID back into a link that opens the event. It only works for people who can already see that calendar.

Build an add-to-calendar link

A public link anyone can click to add a pre-filled event to their own Google Calendar. Use this one for emails, landing pages, and newsletters.

Instructions

  1. Copy a Google Calendar event link. Open the event, click the ⋮ menu and choose "Copy link", or copy the link from a calendar invite email. The htmlLink field from a Calendar API response works too.
  2. Paste it above and click "Decode link".
  3. Copy what you need. The event ID and calendar ID each get their own "Copy" button, along with a ready-made API URL.

You can also paste just the eid value on its own. Everything runs in your browser. The link is never sent to a server, and no Google login is required.

What a Google Calendar event link actually is

There are two forms you will run into:

Where it comes fromWhat it looks like
The Calendar API (htmlLink) and "Copy link"https://www.google.com/calendar/event?eid=…
Invitation and notification emailshttps://calendar.google.com/calendar/event?action=VIEW&eid=…&tok=…&ctz=…

Both open the event's detail view in the viewer's Google Calendar. That is the part people get wrong: this is a deep link into a signed-in account, not a public share link. It works only for a Google account that can already see that calendar, which means the owner, a guest on the event, or someone the calendar is shared with. Anyone else gets Google's "could not find the requested event" page.

If you want a link that works for everyone, you want an add-to-calendar link instead. The third form on this page builds one.

How the eid parameter is encoded

The eid looks opaque, but it is only URL-safe base64 with the padding removed. Decoded, it is two values separated by a single space:

<eventId> <calendarId>

So this link:

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

decodes to:

82tnujf590d9p0546e57v9j26k jane@example.com

The other parameters on the email form of the link are simpler:

ParameterWhat it does
eidThe event ID and calendar ID, base64-encoded
tokA personal RSVP token for one invited guest (see below)
ctzThe timezone to display the event in, such as America/Los_Angeles
hlThe interface language
action=VIEWOpens the event's detail view

Abbreviated calendar domains

Google shortens the domain of its own calendars inside the eid. The decoder expands them back to the full calendar ID the API expects:

In the linkFull calendar IDUsed for
name@mname@gmail.comPersonal Gmail calendars
…@g…@group.calendar.google.comSecondary and shared calendars
…@v…@group.v.calendar.google.comHoliday and other Google-provided calendars

Calendars on a Google Workspace domain, such as jane@example.com, are written out in full and left unchanged.

Recurring events

When the event ID ends in _20260928 or _20260928T160000Z, the link points at one occurrence of a recurring event. The part before the underscore is the ID of the series, and the suffix is that occurrence's original start: a date for all-day events, a UTC timestamp for timed ones.

Use the full ID, suffix included, to fetch or change that single occurrence. Use the series ID to work with the whole series.

The tok parameter

Links from invitation emails carry a tok value. It decodes the same way and contains the invited guest's email address followed by a hash. It lets that guest respond to the invite straight from the email. Treat a link with a tok in it as personal: the decoder flags it so you do not paste it somewhere public.

What comes back

ValueExampleWhat it's for
Event ID82tnujf590d9p0546e57v9j26kThe eventId for events.get, events.patch, and events.delete
Recurring series ID0d3nafob9859is7ukvjpgofr16Shown only for one occurrence of a recurring event
Instance start2026-09-28T16:00:00ZWhich occurrence the link points at
Calendar IDjane@example.comThe calendarId for every Calendar API call
Inviteeguest@example.comShown only when the link has an RSVP token
API URLhttps://www.googleapis.com/calendar/v3/calendars/…/events/…The events.get endpoint, with both IDs path-encoded
gws commandgws calendar events get --params '{…}'The same call from the Google Workspace CLI
Raw decoded string82tnujf590d9p0546e57v9j26k jane@example.comThe eid exactly as decoded

Build an add-to-calendar link

An event link and an add-to-calendar link are different things. The event link points at an event that already exists on someone's calendar. An add-to-calendar link carries the event's details in the URL itself and opens a pre-filled "new event" form, so it works for anyone with a Google account:

https://calendar.google.com/calendar/render?action=TEMPLATE&text=Launch+webinar&dates=20261005T090000/20261005T100000&ctz=America/Los_Angeles
ParameterFormat
textThe event title
datesstart/end. Timed events use YYYYMMDDTHHMMSS, all-day events use YYYYMMDD
ctzThe timezone the times are written in
detailsThe description
locationAn address or a meeting URL

Two details trip people up. For an all-day event the end date is exclusive, so a one-day event on October 5 is 20261005/20261006. And times without a trailing Z are read in the ctz timezone, which is the easiest way to get an event to land at the right local time. The builder above handles both.

FAQ

How do I find a Google Calendar event ID?

Copy the event's link and decode it here. The Google Calendar interface never shows the event ID directly, but it is inside every event link. If you are already calling the Calendar API, the same value is the id field of each event that events.list returns.

How do I find my Google Calendar ID?

For your primary calendar it is your email address, and the API also accepts the keyword primary. For any other calendar, open its settings in Google Calendar and look under "Integrate calendar". Or decode a link to any event on that calendar: the calendar ID is the second half of the eid.

What format is a Google Calendar event ID?

IDs that Google generates are 26 characters drawn from lowercase a to v and the digits 0 to 9 (the base32hex alphabet). If you supply your own ID when creating an event, it has to use those same characters and be between 5 and 1,024 characters long. You will see other shapes in practice: recurring occurrences add a date suffix, and events imported from other calendar systems can start with an underscore. The decoder shows whatever the link contains.

Can I reuse an event ID after deleting the event?

No. Deleting an event marks it as cancelled; it does not free the ID. Creating a new event with the same ID on the same calendar fails with a 409 "identifier already exists" error. Generate a fresh ID, or update the cancelled event instead.

Is the event ID the same as the iCalUID?

No. iCalUID is the identifier from the iCalendar standard and is shared across calendar systems. Every occurrence of a recurring event has the same iCalUID but its own event ID. The link contains the event ID.

Why does my event link say "could not find the requested event"?

The account you are signed in to cannot see that calendar. Event links only work for the owner, the guests, and people the calendar is shared with. If you are signed in to several Google accounts, the link may also be opening in the wrong one. To send an event to people outside that group, build an add-to-calendar link.

Does this tool call the Google Calendar API?

No. Decoding is base64 and string handling, done entirely in your browser. The tool cannot read the event's title, time, or guests, because that would require signing in. It only tells you what is written in the link.

Related tools

Building with AI APIs? Elegant Atomics turns AI capability into B2B SaaS growth. Work with us →