{"id":13402893,"url":"https://github.com/add2cal/add-to-calendar-button","last_synced_at":"2026-02-21T14:09:50.602Z","repository":{"id":37039064,"uuid":"416856736","full_name":"add2cal/add-to-calendar-button","owner":"add2cal","description":"Reliably create beautiful Add to Calendar Buttons, where people can add events to their calendars. Without the hustle and unsupported cases.","archived":false,"fork":false,"pushed_at":"2026-01-01T19:25:49.000Z","size":16894,"stargazers_count":1461,"open_issues_count":3,"forks_count":126,"subscribers_count":9,"default_branch":"main","last_synced_at":"2026-01-02T06:16:04.803Z","etag":null,"topics":["add-event","add-to-calendar","add-to-calendar-button","angular","apple","calendar","component","css","event","free","generator","google","javascript","microsoft","outlook","react","snippet","vanilla-js","vue","widget"],"latest_commit_sha":null,"homepage":"https://add-to-calendar-button.com","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/add2cal.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":".github/CONTRIBUTING.md","funding":".github/FUNDING.yml","license":"LICENSE.txt","code_of_conduct":".github/CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"security.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null},"funding":{"github":["jekuer"]}},"created_at":"2021-10-13T18:32:38.000Z","updated_at":"2025-12-29T23:00:49.000Z","dependencies_parsed_at":"2023-10-16T18:48:31.027Z","dependency_job_id":"4cb0146e-e488-4e81-a07e-836332b210d6","html_url":"https://github.com/add2cal/add-to-calendar-button","commit_stats":{"total_commits":564,"total_committers":15,"mean_commits":37.6,"dds":0.3315602836879432,"last_synced_commit":"8db68e7e9e15f551c855df225d8c4a7453e9266f"},"previous_names":["jekuer/add-to-calendar-button"],"tags_count":196,"template":false,"template_full_name":null,"purl":"pkg:github/add2cal/add-to-calendar-button","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/add2cal%2Fadd-to-calendar-button","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/add2cal%2Fadd-to-calendar-button/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/add2cal%2Fadd-to-calendar-button/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/add2cal%2Fadd-to-calendar-button/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/add2cal","download_url":"https://codeload.github.com/add2cal/add-to-calendar-button/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/add2cal%2Fadd-to-calendar-button/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29682751,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-21T13:29:26.630Z","status":"ssl_error","status_checked_at":"2026-02-21T13:26:50.125Z","response_time":107,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["add-event","add-to-calendar","add-to-calendar-button","angular","apple","calendar","component","css","event","free","generator","google","javascript","microsoft","outlook","react","snippet","vanilla-js","vue","widget"],"created_at":"2024-07-30T19:01:22.559Z","updated_at":"2026-02-21T14:09:50.596Z","avatar_url":"https://github.com/add2cal.png","language":"JavaScript","funding_links":["https://github.com/sponsors/jekuer"],"categories":["JavaScript","UI Components"],"sub_categories":["Buttons"],"readme":"![Add to Calendar Button](https://github.com/add2cal/add-to-calendar-button/blob/main/assets/img/readme-header.png?raw=true)\n\n[![Code Quality](https://img.shields.io/codacy/grade/572c0a102d7b4f39b792439dcd2e8aad/main?style=for-the-badge)](https://app.codacy.com/gh/add2cal/add-to-calendar-button/dashboard)\n[![npm Installations Total](https://img.shields.io/npm/dt/add-to-calendar-button?label=npm%20Installations\u0026style=for-the-badge)](https://www.npmjs.com/package/add-to-calendar-button)\n[![npm Installations per Month](https://img.shields.io/npm/dm/add-to-calendar-button?label=npm%20Installations%2FMonth\u0026style=for-the-badge)](https://www.npmjs.com/package/add-to-calendar-button)\n[![jsDelivr npm Hits](https://img.shields.io/jsdelivr/npm/hm/add-to-calendar-button?label=jsDelivr%20npm%20hits\u0026style=for-the-badge)](https://www.jsdelivr.com/package/npm/add-to-calendar-button?tab=stats)\n\n\u003cbr /\u003e\n\n# Your next Add to Calendar Button\n\nThe convenient JavaScript Web Component, which lets you reliably create beautiful buttons, where people can add events to their calendars.\n\n[![#1 Product of the Day on ProductHunt](https://api.producthunt.com/widgets/embed-image/v1/top-post-badge.svg?post_id=319458\u0026theme=dark\u0026period=daily)](https://www.producthunt.com/products/add-to-calendar-button-generator)\n\n\u003cbr /\u003e\u003cbr /\u003e\n\nFor everybody, who wants to include a button at their website or app, which enables users to easily add a specific event to their calendars.\nIt's main goal is to keep this process as easy as possible at maximum compatibility. Simply define your button configuration and everything else is automatically generated by the script.\nSupporting calendars at Apple, Google, Microsoft (365, Outlook, Teams), Yahoo, and generic iCal.\n\n![Supported Calendars: Apple (via iCal), Google, Microsoft (365, Outlook, Teams), Yahoo, generic iCal](https://github.com/add2cal/add-to-calendar-button/blob/main/assets/img/badge-supported-calendars.svg)\n\nThe script, since it is a web component, integrates easily with any usual HTML webpage (**VanillaJS** way) as well as popular JavaScript frameworks and libraries like **Angular**, **React**, **Vue**, **Svelte**, and more.\n\n![Supported Technology: Angular, React, Vue, Svelte, and every other project that can load JavaScript](https://github.com/add2cal/add-to-calendar-button/blob/main/assets/img/badge-technology.svg)\n\nWorks with **all modern browsers** (Chrome, Edge, Firefox, Safari) on **Windows, Mac, Android, and iOS** as well as rather restricted webview environments like the **Instagram** in-app browser.\n\n\u003cbr /\u003e\u003cbr /\u003e\n\n---\n\n\u003cbr /\u003e\n\n## ▶️ Demo\n\nSee [add-to-calendar-button.com](https://add-to-calendar-button.com/) for a live demo and playground.\n\n\u003cbr /\u003e\n\n---\n\n\u003cbr /\u003e\n\n## ✨ Features\n\nSimple and convenient integration of 1 or many Add to Calendar Buttons, configurable directly within the HTML code.\n\n### Supported Calendars\n\n- **Google** Calendar.\n- **Apple** Calendar.\n- **Yahoo** Calender.\n- **Microsoft 365, Outlook, and Teams**.\n- Automatically generated **iCal/ics** files (for all other calendars and cases).\n\n### Event Types\n\n- Timed and all-day events.\n- One-time, multi-date, recurring.\n- Calendar subscription.\n- Most robust time zone and daylight saving management (via our own [TimeZones iCal Library](https://github.com/add2cal/timezones-ical-library)).\n- Dynamic dates (like \"today + 3\").\n\n### Look\n\n- Beautiful and adjustable UI.\n- Light and dark mode.\n- Multiple themes.\n\n### Accessibility\n\n- Optimized and adjustable UX (for desktop and mobile).\n- Dynamic dropdown positioning.\n- Taking care of all those edge cases, where some scenarios do not support specific setups (like WebView blocking downloads); utilizing beautiful user guidance workarounds.\n- Auto-generated Schema.org rich (structured) data for better SEO.\n- Full support for mouse, touch, or keyboard input (W3C WAI compliant).\n- Supporting 20+ languages, incl. RTL text for Arabic \u0026 Persian; but also custom labels and text blocks (i18n).\n\n### And much more\n\n- Well documented code, to easily understand the processes and build on top of it.\n- No external service or backend dependencies.\n- Fully GDPR, CCPA, and LGPD compliant by design - without the need of signing some data processing agreement.\n- FREE and easy.\n\n\u003cbr /\u003e\n\n---\n\n\u003cbr /\u003e\n\n## 🚀 Go PRO\n\n- ics file generation and hosting for better compatibility.\n- RSVP, incl. automatic updates sent to attendees, GDPR features, and more.\n- More customization - all no-code.\n- API, webhooks, and more technical toys.\n- Share events among all kinds of channels - email, social media, ...\n\nCheck the details at [add-to-calendar-pro.com](https://add-to-calendar-pro.com)!\n\n\u003cbr /\u003e\n\n---\n\n\u003cbr /\u003e\n\n## 📦 Installation / Setup\n\n### Option 1: simple (CDN)\n\nYou can use the jsDelivr CDN and load the respective script directly into your website.\n\nPlace the script tag inside the `\u003chead\u003e` section.\n\n```html\n\u003cscript src=\"https://cdn.jsdelivr.net/npm/add-to-calendar-button@2\" async defer\u003e\u003c/script\u003e\n```\n\n\u003cbr /\u003e\n\n### Option 2: npm\n\nInstall the package using the following npm command:\n\n```sh\nnpm install add-to-calendar-button\n```\n\nImport the module into your project/component\n\n```javascript\nimport 'add-to-calendar-button';\n```\n\nBased on your framework/library, you might need to make minor adjustments to the respective config.\n\nFind detailed installation guides for the most common ones, like React, Angular, Vue, Svelte, or Astro at [add-to-calendar-button.com/#installation](https://add-to-calendar-button.com/#installation).\n\n\u003cbr /\u003e\n\n---\n\n\u003cbr /\u003e\n\n## 🎛️ Configuration\n\nA button can be easily created by using the respective custom element.\n\n```html\n\u003cadd-to-calendar-button\u003e\u003c/add-to-calendar-button\u003e\n\u003c!-- OR simply ... --\u003e\n\u003cadd-to-calendar-button /\u003e\n```\n\nYou can then configure the button by simply adding the options as attributes to it. Boolean values (true/false) can be set as `optionName=\"true\"` or simply by adding `optionName` to the tag. Not setting it at all would be automatically translate to \"false\".\n\n\u003cbr /\u003e\n\n### Structure (PRO)\n\n```html\n\u003cadd-to-calendar-button proKey=\"prokey-of-your-event\" /\u003e\n```\n\n\u003cbr /\u003e\n\n### Minimal structure (no PRO)\n\nMind that for auto-generating rich snippets, a location would be mandatory as well.\n\nCalendar type options and time zone information are not required, but recommended.\n\n```html\n\u003cadd-to-calendar-button\n  name=\"Add the title of your event\"\n  startDate=\"2022-02-21\"\n  options=\"['Google']\"\n  timeZone=\"America/Los_Angeles\"\n/\u003e\n```\n\n\u003cbr /\u003e\n\n### A more powerful example (no PRO)\n\n```html\n\u003cadd-to-calendar-button\n  name=\"Add the title of your event\"\n  description=\"A nice description does not hurt\"\n  startDate=\"2022-02-21\"\n  endDate=\"2022-03-24\"\n  startTime=\"10:13\"\n  endTime=\"17:57\"\n  location=\"Somewhere over the rainbow\"\n  options=\"['Apple','Google','iCal','Microsoft365','Outlook.com','Yahoo']\"\n  timeZone=\"Europe/Berlin\"\n  trigger=\"click\"\n  inline\n  listStyle=\"modal\"\n  iCalFileName=\"Reminder-Event\"\n/\u003e\n```\n\n\u003cbr /\u003e\u003cbr /\u003e\n\n[More Examples](https://add-to-calendar-button.com/examples) • [Full Configuration Documentation](https://add-to-calendar-button.com/configuration) • [PRO Version](https://add-to-calendar-pro.com)\n\n\u003cbr /\u003e\n\n---\n\n\u003cbr /\u003e\n\n## 🤗 Support it!\n\nYou like this project? It would be awesome if you would support it, so it lives on!\n\n- ⭐ [Star the repository](#) in order to stay up-to-date and save it for later!\n- 📣 Spread the word! On Twitter/X, Medium, Discord, Facebook, ...\n- ✍️ Leave a review at [ProductHunt](https://www.producthunt.com/products/add-to-calendar-button-generator/reviews).\n- 💌 Send us some positive feedback at the [discussion board](https://github.com/add2cal/add-to-calendar-button/discussions).\n\n\u003cbr /\u003e\u003cbr /\u003e\n\n## ⚡ Changelog\n\n![npm Version](https://img.shields.io/npm/v/add-to-calendar-button?label=current%20version\u0026style=for-the-badge)\n[![Build Status](https://img.shields.io/github/actions/workflow/status/add2cal/add-to-calendar-button/npm-publish.yml?label=build\u0026style=for-the-badge)](https://github.com/add2cal/add-to-calendar-button/actions/workflows/npm-publish.yml)\n\nFind all changes in the dedicated file at [CHANGELOG.md](CHANGELOG.md).\n\n\u003cbr /\u003e\u003cbr /\u003e\n\n## 🙌 Contributing\n\nAnyone is welcome to contribute, but mind the [guidelines](.github/CONTRIBUTING.md):\n\n- [Bug reports](.github/CONTRIBUTING.md#bugs)\n- [Feature requests](.github/CONTRIBUTING.md#features)\n- [Pull requests](.github/CONTRIBUTING.md#pull-requests)\n\n**IMPORTANT NOTE:** Run `npm install` and `npm run format` to auto-lint!\n\n\u003cbr /\u003e\u003cbr /\u003e\n\n## 📃 Copyright and License\n\nCopyright (c) [Jens Kuerschner](https://jekuer.com).\n\nLicensed under [Elastic License 2.0 (ELv2)](LICENSE.txt).\n\n**About open-source**:\nWe consider ourselves open-source.\nHowever, we are also aware of the controversy coming with licenses like the one selected.\nTherefore, and contrary to many other companies and products, we no longer use the term in any marketing statements unless it is about other pieces which really are under an official OSI license.\n\nSpeaking **about the license**:\nWe love it, because it is so simple. Have a look!\nYou are basically free to do anything unless you are not offering the tool itself as a product or service; or want to remove copyright and license stuff.\nIn doubt, simply ask and we find a way. :)\n\n\u003cbr /\u003e\n\n---\n\n\u003cbr /\u003e\n\n## 💜 Kudos go to\n\n...all amazing contributors:\n\n\u003ca href=\"https://github.com/jekuer\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/8572883?v=4\" title=\"Jens Kuerschner\" width=\"60\" height=\"60\"\u003e\u003c/a\u003e\n\u003ca href=\"https://github.com/add-to-calendar\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/110406429?s=96\u0026v=4\" title=\"Add to Calendar Team\" width=\"60\" height=\"60\"\u003e\u003c/a\u003e\n\u003ca href=\"https://github.com/chadoh\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/221614?v=4\" title=\"chadoh\" width=\"60\" height=\"60\"\u003e\u003c/a\u003e\n\u003ca href=\"https://github.com/turcuciprian\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/3309840?v=4\" title=\"Ciprian Turcu\" width=\"60\" height=\"60\"\u003e\u003c/a\u003e\n\u003ca href=\"https://github.com/lizakorab\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/72821189?v=4\" title=\"Liza Korab\" width=\"60\" height=\"60\"\u003e\u003c/a\u003e\n\u003ca href=\"https://github.com/bryan-brancotte\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/11556772?v=4\" title=\"Bryan Brancotte\" width=\"60\" height=\"60\"\u003e\u003c/a\u003e\n\u003ca href=\"https://github.com/nticaric\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/824840?v=4\" title=\"nticaric\" width=\"60\" height=\"60\"\u003e\u003c/a\u003e\n\u003ca href=\"https://github.com/Ortovoxx\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/56805259?v=4\" title=\"Ortovoxx\" width=\"60\" height=\"60\"\u003e\u003c/a\u003e\n\u003ca href=\"https://github.com/resentment-industries\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/113481246?v=4\" title=\"Logic\" width=\"60\" height=\"60\"\u003e\u003c/a\u003e\n\u003ca href=\"https://github.com/purushu007\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/70796763?v=4\" title=\"Purushu\" width=\"60\" height=\"60\"\u003e\u003c/a\u003e\n\u003ca href=\"https://github.com/cabello\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/60936?v=4\" title=\"Danilo Cabello\" width=\"60\" height=\"60\"\u003e\u003c/a\u003e\n\u003ca href=\"https://github.com/Goudarz\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/3191949?v=4\" title=\"Goudarz\" width=\"60\" height=\"60\"\u003e\u003c/a\u003e\n\u003ca href=\"https://github.com/ragnarkurm\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/5205088?v=4\" title=\"Ragnar Kurm\" width=\"60\" height=\"60\"\u003e\u003c/a\u003e\n\u003ca href=\"https://github.com/emilebosch\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/303135?v=4\" title=\"Emile Bosch\" width=\"60\" height=\"60\"\u003e\u003c/a\u003e\n\u003ca href=\"https://github.com/killerrin\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/3269687?v=4\" title=\"killerrin\" width=\"60\" height=\"60\"\u003e\u003c/a\u003e\n\u003ca href=\"https://github.com/acm-will\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/103984058?v=4\" title=\"acm-will\" width=\"60\" height=\"60\"\u003e\u003c/a\u003e\n\u003ca href=\"https://github.com/sukharenko\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/2049036?v=4\" title=\"Yevgen Sukharenko\" width=\"60\" height=\"60\"\u003e\u003c/a\u003e\n\u003ca href=\"https://github.com/pbaumard\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/6176006?v=4\" title=\"Pierre Baumard\" width=\"60\" height=\"60\"\u003e\u003c/a\u003e\n\u003ca href=\"https://github.com/hananamar\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/1096604?v=4\" title=\"Hanan Amar\" width=\"60\" height=\"60\"\u003e\u003c/a\u003e\n\u003ca href=\"https://github.com/rocky-premise\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/230592673?v=4\" title=\"Rocky Assad\" width=\"60\" height=\"60\"\u003e\u003c/a\u003e\n\u003ca href=\"https://github.com/brenjt\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/1713885?v=4\" title=\"Brennan\" width=\"60\" height=\"60\"\u003e\u003c/a\u003e\n\u003ca href=\"https://github.com/chris-at-fabius-labs\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/108754665?v=4\" title=\"chris-at-fabius-labs\" width=\"60\" height=\"60\"\u003e\u003c/a\u003e\n\u003ca href=\"https://github.com/ssaaiidd\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/29234802?v=4\" title=\"ssaaiidd\" width=\"60\" height=\"60\"\u003e\u003c/a\u003e\n\u003ca href=\"https://github.com/c0rychu\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/55235141?v=4\" title=\"Cory Chu\" width=\"60\" height=\"60\"\u003e\u003c/a\u003e\n\u003ca href=\"https://github.com/BenceHargitai\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/78082719?v=4\" title=\"Bence Hargitai\" width=\"60\" height=\"60\"\u003e\u003c/a\u003e\n\u003ca href=\"https://github.com/jenniferbacon01\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/28692326?v=4\" title=\"Jenny Bacon\" width=\"60\" height=\"60\"\u003e\u003c/a\u003e\n\u003ca href=\"https://github.com/Denperidge\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/27348469?v=4\" title=\"Cat\" width=\"60\" height=\"60\"\u003e\u003c/a\u003e\n\u003ca href=\"https://github.com/julamb\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/3592718?v=4\" title=\"julamb\" width=\"60\" height=\"60\"\u003e\u003c/a\u003e\n\u003ca href=\"https://github.com/ameliabradley\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/597352?v=4\" title=\"Amelia Bradley\" width=\"60\" height=\"60\"\u003e\u003c/a\u003e\n\u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/in/29110?v=4\" title=\"dependabot[bot]\" width=\"60\" height=\"60\"\u003e\u003c/a\u003e\n\n\u003cbr /\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fadd2cal%2Fadd-to-calendar-button","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fadd2cal%2Fadd-to-calendar-button","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fadd2cal%2Fadd-to-calendar-button/lists"}