Title, location, date and time, time zone, repeat, invitees, alerts, and notes — then download the .ics file or open it straight in your calendar. You can also paste a schedule or attach a document or photo to make several events at once.

How do I put an add-to-calendar button or event builder on my own site?

ICS Maker's builder ships as a standalone script: one empty element, one script tag pointing at event-creator.js, and one EventCreator.mount() call — no build step, no framework, no account, no key, and no per-view limit. The bundle is a single self-contained IIFE under 85 kB gzipped with its rendering library included, and it makes no network requests at all: no analytics, no fonts, no CDN, so it adds no origin to a Content-Security-Policy and no paragraph to a privacy policy. Every colour, radius, and font is a CSS custom property under .ec-root, dark mode follows the visitor's own preference, and a React site can render the component directly instead of loading the bundle.

One script tag

<div id="event-creator"></div>
<script src="https://icsmaker.com/event-creator.js"></script>
<script>
  EventCreator.mount('#event-creator', { showPreview: false });
</script>

The bundle carries its own rendering, its own styles, and no dependencies for you to install. It talks to nothing — no analytics, no fonts, no CDN — so your page’s privacy policy needs no new paragraph, and a strict Content-Security-Policy needs no new origin.

Making it look like your site

Every colour, radius, and font is a CSS custom property under .ec-root, so overriding --ec-accent is usually the whole theming job. It follows the visitor’s dark-mode preference on its own, and the preview panel can be turned off with showPreview: false where space is tight.

Already using React?

Skip the bundle and render the component directly — same form logic, one less copy of the rendering library on the page.

Questions

Does the embed send anything to your servers?
No. It is a static file that runs entirely in the visitor’s browser: no analytics, no telemetry, no calls home. You can host the bundle yourself if you would rather not load it from this domain.
How big is it?
Under 85 kB gzipped, rendering library included, and it loads after your page rather than blocking it. The build fails if the bundle ever grows past that, so the number on this page cannot quietly stop being true.
Can I restrict which formats visitors can download?
The mount call takes options — a default format, a default date, a prefilled draft, and whether to show the preview — and the React component takes the same ones as props.