Download .ics

ICS / iCal Calendar Generator

Build an all-day or weekly .ics file you can import into Apple, Google, or Outlook.

ICS generator

Enter start, end, and whether events are weekly. Files stay in the browser — nothing is uploaded.

The ICS generator builds a downloadable .ics file in the browser for all-day events that occur once, daily, or weekly between a start and an end. Nothing is uploaded to a server calendar store. It is not a subscription feed URL, not a holiday pack, and not a multi-user server. After download, you import the file into Apple Calendar, Google Calendar, or Outlook.

Client-side file, not a subscription

A subscription calendar is a URL the client polls. This page writes a static VCALENDAR blob and hands it to you as a file. If dates change later, you generate again and re-import or replace the old file. There is no automatic update channel and no authentication.

The holiday ICS page is a specialized file of US federal observed holidays. Use that when the events are those holidays. Use this generator when you name the event and the recurrence yourself.

Once, daily, and weekly all-day

Once creates a single all-day VEVENT on the start date (or the range the form treats as one event). Daily creates all-day events on each civil date from start through end. Weekly creates all-day events on the same weekday as the start date until the end date. All-day means DATE values, not timed hours, so time zones do not shift the day for most importers.

Timed meetings, alarms, attendees, and time-zone IDs are out of scope. If you need 3:00 p.m. with a zone, use a full calendar app. This tool is for date-only blocks such as “on call,” “vacation,” or “weekly stall.”

How to build the file

Enter a title, start, end, and recurrence. Calculate, then download. Open the file in a text editor if you must inspect DTSTART; otherwise import directly. Duplicate imports create duplicate events—delete the old calendar or old events first when replacing a plan.

For visual month grids without a file, use calendar generator. For biweekly dates that are not ICS, use the biweekly calendar. This URL is the file builder.

Worked examples

A volunteer coordinator creates weekly all-day Saturday events from March through June titled “park cleanup.” They download the .ics and import it into a shared Google Calendar. When the season ends, they delete that calendar rather than leaving infinite weekly events.

A traveler marks a once all-day event for a visa appointment date in 2026. They do not use daily recurrence. They still verify the date against the embassy letter; the file is a convenience copy.

Import quirks

Google may ask which calendar to place events in. Outlook may treat all-day dates as floating. Apple Calendar usually imports DATE values as all-day. If an event appears on the wrong day, check whether the importer applied a time zone to midnight UTC; all-day DATE should avoid that, but some clients still mishandle it.

Very long daily ranges create large files. Prefer weekly recurrence or a shorter end date rather than thousands of VEVENTs. Clients can choke on huge imports.

Privacy

Because generation is client-side, the event title does not need to travel to this site’s servers as a stored calendar. Still avoid putting secrets in titles you later screenshot. The downloaded file lives on your device; share it like any other document.

This is not an invitation system. No RSVP. No iTIP. Recipients who need a live feed should use a real calendar host, not a one-shot .ics from this page.

Limits

No monthly “1st and 15th” recurrence in this ICS builder—that pay-period pattern belongs on the pay-period calendar visually, or a more complete ICS editor. No RRULE BYDAY lists beyond simple weekly. Keep the generator small so the file stays predictable.

Federal holiday packs remain on the holiday ICS URL so this form is not overloaded with a holiday checkbox that would duplicate that page.

Shared calendars after import

After import, set the destination calendar’s name to the event series so later deletion is one click. Importing into a personal calendar mixed with medical appointments makes cleanup hard. The generator cannot name the destination calendar; the client UI does that.

Forwarding the .ics as email still creates a snapshot. Recipients who change a date locally do not update everyone else. For live coordination, use a hosted calendar, not this file. The page’s honesty about not being a subscription is the privacy and operations boundary.

Daily ranges and file size

A daily all-day series of hundreds of events is heavier than one event with a recurrence rule. This generator prefers simple expansion for predictability. If a client rejects a large file, shorten the end date or switch to weekly. Do not concatenate multiple downloads; that creates colliding events.

UID collisions on repeat download

If the generator uses a new UID each download, re-importing the same span creates duplicates. If it reuses a UID, some clients replace the old event. After a date change, delete the old series first unless you have confirmed replace behavior. The page is a file factory, not a sync protocol, so treat each download as a new snapshot.

Frequently asked questions

What kind of calendar file does this generator create?

It creates a .ics VCALENDAR file in the browser with all-day events that occur once, daily, or weekly between the dates you enter. The file is downloaded to your device. It is not a live subscription URL, and changing dates later requires generating and importing a new file.

How is this different from the holiday ICS download?

Holiday ICS emits US federal observed holidays for a year as all-day events with holiday names. This generator lets you set the event title and choose once, daily, or weekly recurrence. Use holiday ICS for the federal pack; use this page for custom all-day series.

When should weekly all-day recurrence be chosen here?

Choose weekly when the event should repeat on the same weekday as the start date until the end date, such as every Saturday park cleanup. Choose daily for every civil date in the span. Choose once for a single all-day block. Timed hours are not included in any mode on this generator.

Why does this ICS builder create all-day events only?

All-day DATE values avoid most time-zone shifts of midnight timestamps. This tool is for date-only blocks, not 3:00 p.m. meetings. If you need a clock time and a time zone, use a full calendar application. Import quirks still exist on some clients, so check the first event after import.

How should a file be replaced after plans change?

Generate a new .ics and import it only after deleting the old events or the old calendar, or duplicates will stack. There is no server-side update feed. Treat the file as a snapshot of the dates you entered at download time.

Is anything uploaded to a server calendar store?

No. The VCALENDAR is built in the browser and saved as a download. The site does not host a subscription. Event titles in screenshots can still leak if you share images; the file itself is an ordinary document on your device.

Processing, please wait...