Generate calendar event file and links
generate_calendar_eventUse this when the user wants a calendar invite, an .ics file, or an add-to-calendar link (Google Calendar, Outlook, Office 365, Yahoo) for one event or one repeating event: a webinar, class, meeting, party, deadline, or launch. Takes the title, local start/end and the event's time zone (city or IANA zone), or dates only for all-day events, plus optional location, description, link, organizer name, reminders, and a repeat rule (daily, weekly on chosen weekdays, monthly by date, nth weekday such as the last Friday, or the first/last weekday of the month, yearly; with count, until date, and skipped dates). Returns a downloadable RFC 5545 .ics file with time zone data, four add-to-calendar links, and the first 5 dates in the event's zone and optional attendee zones, with daylight saving changes flagged. Does not send invitations, read or change anyone's calendar, or track RSVPs. Do not use for a list of different sessions (use generate_event_series) or for finding a meeting time across zones.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| end | No | Local end YYYY-MM-DDTHH:MM, or just a time HH:MM on the start day, e.g. 21:00. For all-day events, the last day YYYY-MM-DD (inclusive). Default: 1 hour, or 1 day for all-day. | |
| url | No | Optional event page or video-call link, e.g. https://example.com/webinar. | |
| start | Yes | Local start YYYY-MM-DDTHH:MM in the event's time zone, e.g. 2026-11-05T18:30, or a date YYYY-MM-DD for an all-day event. No UTC offset. | |
| title | Yes | Event title, e.g. Product launch webinar. | |
| all_day | No | true for an all-day event (dates only), e.g. a conference day or a deadline. Automatic when start has no time. | |
| location | No | Venue, address, or meeting room shown in the calendar, e.g. Pier 39, San Francisco. | |
| time_zone | No | Time zone of the start/end: IANA zone (Europe/Warsaw), city (Chicago, Sydney), or UTC. Required for timed events; not used for all-day events. | |
| recurrence | No | Optional repeat rule, e.g. {"frequency":"weekly","weekdays":["TU","TH"],"count":10}. | |
| description | No | Event details or agenda (plain text; line breaks allowed), e.g. Bring a laptop. | |
| organizer_name | No | Optional organizer name shown in the details, e.g. Acme Events. No email needed. | |
| duration_minutes | No | Length in minutes instead of end, e.g. 90. | |
| viewer_time_zones | No | Optional places or zones of attendees to show local times for, e.g. ["New York", "Tokyo"]. | |
| reminders_minutes_before | No | Up to 3 reminders in minutes before the start, e.g. [15, 1440] for 15 minutes and 1 day before. |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| end | Yes | ||
| url | Yes | ||
| when | Yes | ||
| links | Yes | ||
| notes | Yes | ||
| start | Yes | ||
| title | Yes | ||
| all_day | Yes | ||
| duration | Yes | ||
| location | Yes | ||
| downloads | Yes | ||
| organizer | Yes | ||
| reminders | Yes | ||
| time_zone | Yes | ||
| recurrence | Yes | ||
| zone_label | Yes | ||
| description | Yes | ||
| occurrences | Yes | ||
| viewer_zones | Yes |