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.
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.
service=googleservice=appleservice=outlookservice=outlook_webservice=office365service=yahooservice=ics 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.
https://addcal.co/api/dyn_ade ?client=dk_abc123 &service=outlookcom &title=Team+Standup &start=2026-06-15T14:00:00 &timezone=America/New_York
Both create calendar events from a URL, but they do different jobs.
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.
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
Pass event details as query parameters. A key, a service, a title, and a start are required.
| Parameter | Required | Description |
|---|---|---|
uid | Required | Your Dynamic Link Key, for example dk_abc123. Create one in your dashboard on the Business plan. |
service | Required | Where to redirect: google, apple, outlook, outlook_web, office365, yahoo, or ics. |
title | Required | Event title, up to 255 characters. |
start | Required | Start date and time in ISO 8601 format, for example 2026-06-15T14:00:00. |
end | Optional | End date and time in ISO 8601. Defaults to one hour after start if omitted. |
duration | Optional | Duration in minutes. Takes precedence over end. |
timezone | Optional | IANA timezone, required for timed events, for example America/New_York. |
all_day_event | Optional | Set to true for an all-day event. |
description | Optional | Event description, up to 2000 characters. |
location | Optional | Physical address or virtual meeting URL, up to 255 characters. |
alarm | Optional | Reminder in minutes before the event, for example 15. |
recurring | Optional | An RFC 5545 recurrence rule (RRULE), for example FREQ=WEEKLY;BYDAY=MO,WE,FR. |
transp | Optional | Busy status: OPAQUE (busy) or TRANSPARENT (free). Defaults to OPAQUE. |
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.
transp=TRANSPARENT to add the event as free time rather than busy.