apyhub
DEVELOPER TOOLS · MARKETING

iCal Event Generator

What it does

iCal Event Generator creates calendar invites as downloadable .ics files or as pre-signed cloud links. Send event details in the request body, and it returns a calendar file you can attach to email, store, or hand off to another system.

Use it to generate single events, all-day events, or recurring meetings. The input supports an event UID, summary, start and end time, meeting date, location, time zone, sequence number, organizer email, attendee email list, reminders, and recurrence settings such as frequency, interval, and count. If you omit the UID, one is generated for you. If you set all_day to true, the time fields are ignored.

The download endpoint returns the file directly, with optional query parameters to set the filename or generate a VCALENDAR METHOD:CANCEL for cancellations. The link endpoint returns a JSON object containing a signed URL in data, which is useful when you want to fetch the .ics file later without streaming it immediately.

This is a fit for booking flows, internal scheduling tools, calendar sync, and automated meeting workflows where you need a standards-based iCal file from structured event data.

▣ ENDPOINT 01 / 02
POST
Generate iCal event — download file
https://api.eu.apyverse.com/apyhub/generate-ical-event/download

QUICKSTART

GUIDE

Quickstart

Generate a downloadable iCal event file from a simple event payload.

curl -X POST "https://api.eu.apyverse.com/apyhub/generate-ical-event/download?output=my-invite" \
  -H "apy-token: $APY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
  "summary": "Team Sync",
  "description": "Weekly team sync to discuss project updates and action items.",
  "meeting_date": "2025-06-15",
  "start_time": "09:00",
  "end_time": "10:00",
  "location": "Conference Room A",
  "time_zone": "Europe/London",
  "organizer_email": "[email protected]",
  "attendees_emails": [
    "[email protected]",
    "[email protected]"
  ]
}'

What you'll get back

Returns a binary file (string with format: binary) containing the generated calendar content. There is no JSON wrapper in the response.

<binary iCal file content>
TRY ITLIVE · 50 ATOMS
Loading your default key…
The full key is used to call the gateway and stays in this tab — never sent to orbit or saved.
body*
Event UID. Auto-generated if omitted.
Generate an all-day event.
Event title.
Time in HH:MM format. Ignored when all_day is true.
Event location.
iCal SEQUENCE number.
Whether the event recurs.
reminders
IANA timezone identifier.
recurrence
Number of occurrences.
How often the recurrence rule repeats.
iCal FREQ value e.g. DAILY, WEEKLY, MONTHLY, YEARLY.
Time in HH:MM format. Ignored when all_day is true.
Event description.
Date in DD-MM-YYYY or YYYY-MM-DD format.
Organizer email address.
attendees_emails
List of attendee email addresses.
Override the default download filename (without extension).
Use 'cancel' to generate a VCALENDAR METHOD:CANCEL.

About this endpoint

What it does

Generates an iCal event file for download from the supplied event details. The request body defines the event content, and the endpoint returns a binary file.

Query Parameter(s)

AttributeTypeMandatoryDescription
outputStringNoOverride the default download filename without the extension.
event_typeENUMNoAllowed value: cancel. Use cancel to generate a VCALENDAR with METHOD:CANCEL.

Request Body

ParameterTypeMandatoryDescription
idStringNoEvent UID. Auto-generated if omitted.
all_dayBooleanNoGenerate an all-day event. Default: false.
summaryStringNoEvent title.
end_timeStringNoTime in HH:MM format. Ignored when all_day is true.
locationStringNoEvent location.
sequenceIntegerNoiCal SEQUENCE number. Default: 0.
recurringBooleanNoWhether the event recurs. Default: false.
remindersObject ArrayNoReminder entries. Each item requires minutes_before.
reminders[].actionENUMNoAllowed values: display, email. Reminder type. Default: display.
reminders[].descriptionStringNoReminder message. Default: Reminder.
reminders[].minutes_beforeIntegerYesMinutes before event start the reminder fires.
time_zoneStringNoIANA timezone identifier.
recurrenceObjectNoRecurrence settings.
recurrence.countIntegerNoNumber of occurrences.
recurrence.intervalIntegerNoHow often the recurrence rule repeats.
recurrence.frequencyStringNoiCal FREQ value such as DAILY, WEEKLY, MONTHLY, or YEARLY.
start_timeStringNoTime in HH:MM format. Ignored when all_day is true.
descriptionStringNoEvent description.
meeting_dateStringNoDate in DD-MM-YYYY or YYYY-MM-DD format.
organizer_emailStringNoOrganizer email address.
attendees_emailsString ArrayNoList of attendee email addresses.

Response

Returns a binary file as the success response. The output schema is a binary string, so the response body is the downloadable iCal file rather than a JSON object.

Query parameters

Name
Type
Description
outputOPTIONAL
string
Override the default download filename (without extension).
event_typeOPTIONAL
string
cancel
Use 'cancel' to generate a VCALENDAR METHOD:CANCEL.

Body

Name
Type
Description
bodyREQUIRED
object
▣ COMMON ERRORS

Errors any endpoint can return

400bad_request

Required parameter missing or malformed body.

401unauthorized

API key missing, revoked, or not authorized for this service.

429rate_limited

Your plan's per-second rate exceeded. Retry with exponential backoff.

503upstream_busy

Backend temporarily unavailable. Try again in a few seconds.