Generate universal calendar links from a single URL. Works with Apple Calendar, Google Calendar, Outlook, and Yahoo.
Two endpoints, same query parameters. /event.ics returns a downloadable ICS file. /links returns JSON with pre-built URLs for Google, Outlook, Yahoo, and a direct ICS link.
| Parameter | Required | Description |
|---|---|---|
title | Yes | Event title |
start | Yes | Start datetime — ISO 8601 (2026-02-15T14:00:00Z) or compact (20260215T140000Z) |
end | Yes | End datetime — same formats as start |
description | No | Event description (newlines supported) |
location | No | Event location or meeting URL |
url | No | A URL to attach to the event |
organizer | No | Organizer display name |
organizer_email | No | Organizer email address |
reminder | No | Minutes before event to trigger an alarm, e.g. 15 |
uid | No | Unique event ID — auto-generated if omitted |
rrule | No | Recurrence rule, e.g. FREQ=WEEKLY;COUNT=10 |
GET /event.ics?... → Downloads a .ics file (RFC 5545). Works as a direct link in emails, websites, or anywhere a URL is accepted.
GET /links?... → Returns JSON with ics_url, google_url, outlook_url, and yahoo_url. CORS-enabled for client-side use.
<!-- Simple .ics download link -->
<a href="https://api.getcal.link/event.ics?title=Team+standup&start=2026-02-15T14:00:00Z&end=2026-02-15T14:30:00Z">
Add to Calendar
</a>
<!-- Or fetch JSON links for a dropdown -->
<script>
fetch('https://api.getcal.link/links?title=Team+standup&start=2026-02-15T14:00:00Z&end=2026-02-15T14:30:00Z')
.then(r => r.json())
.then(links => {
console.log(links.google_url);
console.log(links.outlook_url);
console.log(links.ics_url);
});
</script>
getcal.link exposes an MCP server at /mcp, letting AI assistants like Claude create calendar events and generate links via tool calls.
| Tool | Description |
|---|---|
validate_event | Validates and normalises event parameters. Returns the parsed event object. |
generate_ics | Generates an RFC 5545 ICS file as text for the given event. |
generate_links | Returns JSON with deep links for Google Calendar, Outlook, Yahoo, and a direct ICS download URL. |
For Claude Desktop, Cursor, or any MCP client that supports remote servers:
{
"mcpServers": {
"getcal-link": {
"url": "https://api.getcal.link/mcp"
}
}
}
For clients that only support local stdio transports, use the mcp-remote proxy:
{
"mcpServers": {
"getcal-link": {
"command": "npx",
"args": ["mcp-remote", "https://api.getcal.link/mcp"]
}
}
}