Skip to main content
Drupal is a registered trademark of Dries Buytaert
Release: Views Bootstrap 5.5.4 — Minor update available for module views_bootstrap (5.5.4). Release: Rightup theme 1.0.3 — Minor update available for theme vartheme_bs5_rightup (1.0.3). Release: CommentOn 1.0.6 — Minor update available for module commenton (1.0.6). Release: ChatGPT Ads 1.0.3 — Minor update available for module chatgpt_ads (1.0.3). Release: Opensolr Search 5.1.3 — Minor update available for module opensolr_search (5.1.3). Release: ServiceM8 Webform Integration 1.2.1 — Minor update available for module servicem8_webform (1.2.1). Release: PostfixAdmin 1.0.0 — Initial release available for module postfix_admin (1.0.0)! Release: ip_analyser 1.0.3 — Minor update available for module ip_analyser (1.0.3). Module Revived: Swagger-PHP OpenAPI 3 documentation generator 1.0.0 — Module swagger_php updated after 10 months of inactivity (1.0.0). Security Coverage: Microsoft Azure AI — Module ai_provider_azure now has official Drupal security advisory coverage.

Synopsis

This module generates .ics files for the specific entity on request, and doesn't store anything to a file or database (other than the configuration needed).

In order to store configuration for a (fieldable) entity/bundle, the module provides a new (computed) Field Type named "ICS Link", and it's own formatter (optional) & widget (should always be hidden).

Recommended modules

  • Datetime (core): Makes it easier to add dates/times for module's configuration

Known problems

Although the module is 100% computed, the field still needs to save a line in the database, contrary what is written in the database for FieldItemInterface::schema ("An empty array if there is no schema"). So a dummy line is saved instead.

See also:
https://www.drupal.org/project/drupal/issues/2986836
https://www.drupal.org/project/drupal/issues/2932273

Similar projects

  • ics_field: This module is mainly used to send the ics file via email and needs to generate an ~UNMANAGED~ copy of the file programmatically. It has no configuration and cannot be used to generate files on request.
  • simple_ics: This module also doesn't offer any configuration, and everything must be passed on the URL, which must be added to a twig template

Dependencies

  • Token (included in composer.json and in module's info.yml file)
  • eluceo/ical (included in composer.json)

Installation

Install as you would normally install a contributed Drupal module. See: https://drupal.org/documentation/install/modules-themes/modules-8 for further information.

Configuration

  • On your entity/bundle (e.g. a node content type) add a field of the type "ICS Link" & configure the fields based on your events. Tokens with other fields' data may be used.
  • On "Manage form display" you can exclude field's widget, as it will not display anything.
  • (Optionally) if you want the entity to display a link to generate the ICS, you can add/configure the formatter on "Manage display" tab.

Restrictions

FAQ

How are multi day events handled?

  • If the event doesn't have start/end time, then a single "all day" event will be created.
  • If the event has start/end time, then this module creates multiple single day events with this start & end time, as this approach made more sense to us.

    E.g. The event is Drupalcon Barcelona 2020, which takes place from 14 to 17 of Sept 2020, and has starting time 09:00 and end 18:00.
    The module will generate an ics file with 4 single day events (14/9-15/9-16/9-17/9) each starting from 09:00 and ending on 18:00.

We are thinking of a way to enable more flexibility (e.g. repeating events etc), while not making the module hard to use.

Depends on

Dependencies of the latest stable release

No dependencies recorded for this project.

Required by

Tracked projects that depend on this one

No tracked projects depend on this one yet.

Activity

Tracked releases
4
Tracked since
Aug 2023
Latest release
2 years ago
Releases (12 mo)
0
Maintenance
Dormant

Release Timeline

Releases

Version Type Core Release date
2.0.0 Stable Feb 20, 2024
2.0.x-dev Dev Feb 20, 2024
8.x-1.0-alpha7 Pre-release Nov 18, 2023
8.x-1.0-alpha6 Pre-release Aug 9, 2023