DocumentationDynamic Links

Dynamic Links

A Dynamic Link generates an add-to-calendar redirect from query parameters. You build the link with event details and a calendar service, and when someone clicks it they are sent straight to that calendar with the event pre-filled. Nothing is stored on AddCal.

Supported calendar services

Set service to any of the values below. The visitor is redirected straight to that calendar with the event pre-filled, no account or extra step required.

Google Calendar
service=google
Apple Calendar
service=apple
Outlook desktop
service=outlook
Outlook.com
service=outlook_web
Office 365
service=office365
Yahoo Calendar
service=yahoo
Download .ics
service=ics

AddEvent compatibility mode

Migrating from AddEvent? There is a drop-in compatible endpoint at /api/dyn_ade that accepts AddEvent's parameter names, so your existing links keep working. Use client in place of uid, and AddEvent service values like outlookcom and stream are mapped automatically.

AddEvent-compatible link
https://addcal.co/api/dyn_ade
  ?client=dk_abc123
  &service=outlookcom
  &title=Team+Standup
  &start=2026-06-15T14:00:00
  &timezone=America/New_York
Everything else, recurrence, reminders, all the same parameters, works exactly as it does on the standard endpoint.

Dynamic Links vs Smart Links

Both create calendar events from a URL, but they do different jobs.

  • Smart Links create and store an event in your AddCal calendar, with tracking, dedup, and optional approval. Best when you want the event to live in AddCal.
  • Dynamic Links generate a one-off redirect straight to the visitor's calendar app. Nothing is stored. Best for high-volume add-to-calendar links in emails and apps, with recurrence and reminders.
Dynamic Links require a Dynamic Link Key and are available on the Business plan.

The link

Build a link to /api/dyn with your event details as query parameters, then put it wherever your audience is, an email, a button, an app. When someone clicks it, they are redirected straight to their chosen calendar with the event pre-filled.

Dynamic Link
https://addcal.co/api/dyn
  ?uid=dk_abc123
  &service=google
  &title=Team+Standup
  &start=2026-06-15T14:00:00
  &duration=30
  &timezone=America/New_York
  &recurring=FREQ=WEEKLY;BYDAY=MO,WE,FR
  &alarm=15

Parameters

Pass event details as query parameters. A key, a service, a title, and a start are required.

ParameterRequiredDescription
uidRequiredYour Dynamic Link Key, for example dk_abc123. Create one in your dashboard on the Business plan.
serviceRequiredWhere to redirect: google, apple, outlook, outlook_web, office365, yahoo, or ics.
titleRequiredEvent title, up to 255 characters.
startRequiredStart date and time in ISO 8601 format, for example 2026-06-15T14:00:00.
endOptionalEnd date and time in ISO 8601. Defaults to one hour after start if omitted.
durationOptionalDuration in minutes. Takes precedence over end.
timezoneOptionalIANA timezone, required for timed events, for example America/New_York.
all_day_eventOptionalSet to true for an all-day event.
descriptionOptionalEvent description, up to 2000 characters.
locationOptionalPhysical address or virtual meeting URL, up to 255 characters.
alarmOptionalReminder in minutes before the event, for example 15.
recurringOptionalAn RFC 5545 recurrence rule (RRULE), for example FREQ=WEEKLY;BYDAY=MO,WE,FR.
transpOptionalBusy status: OPAQUE (busy) or TRANSPARENT (free). Defaults to OPAQUE.

Recurrence and reminders

Unlike Smart Links, Dynamic Links accept an RFC 5545 recurrence rule via recurring and a reminder via alarm, so the event lands in the calendar already set to repeat with a reminder attached.

Use transp=TRANSPARENT to add the event as free time rather than busy.