Google Calendar Logo
Some additional fields for events: more to come!
Calendar Import screen, showing calendars available to the google account, with no calendars yet imported.
Event scoped Settings.
Calendar scoped Settings.
List of Calendars, with links and status.

Managing calendar events is really tough - particularly with repeating events, rule exceptions, etc. Instead of managing this information directly in Drupal, this module provides a way to import Google Calendar events from a publicly available calendar into Drupal.

Once into Drupal, you can layer on additional fields, theming, access control, and all the other things that make Drupal Entities so excellent to work with.

Maintainers

Project creator @dtraft got the module to version 1.0, and @rivimey and @hanoii have pushed it onwards to a 2.0 release, bringing new features:

  • A verbose configuration wizard for the Google API;
  • List calendars visible from Google and enable auto-import of them;
  • Some drush commands to call the Google API and display calendars and events, delete events for one or all calendars, and to do a google synchronize on just the calendar to avoid running cron on the whole site very frequently;
  • Additional fields imported into the Calendar entity, and also timestamps for sync progress;
  • Additional fields imported into the Event entity;
  • A container-service and Interface to manage the google credential storage, with two options (managed, static file) - now in new module "google_secrets";
  • Statistics collected and recorded in the logs, to simplify operation checks.
  • Expose as config options the timespan covered by the calendar, disposition of old events, minimum intervals for resync, and more;
  • Proper Incremental resync;

Roadmap

This is a much more complex module than I had expected, so it seems reasonable to set some goals.

8.x-2.n

Old Stable branch, changes only as required.

8.x-3.0 => 3.0

Current stable branch.

  • Move to semantic versioning, support D9 fully.
  • Change from google_secrets module to google_api_client module.
  • Additional documentation and examples.
  • Possibly, move the wizard into google_api_client, as that's it's natural home, remove here.
  • Testing

Per-User / OAuth Calendars: 4.x branch

For those wondering about per-user google calendars, implementation means:

  • some configuration elements will need to become config entities;
  • the authentication setup must be in a config entity and that entity linked to by the calendar entities that use it;
  • for OAuth accounts, an OAuth2 callback made available and configurable for display when needed. "google_client_api" can help with this;
  • resync activity must be able to change auth method per calendar entity;
  • there are probably several places where currently the auth method is implicit and it must become explicit;
  • permissions checks need to be more carefully considered;

At least the google_api_client module includes OAuth support, though that is only a part of the battle.

As a result this is likely (if ever done) to be a version 4.x (or beyond) branch goal, and to be fair is is not likely to be started without help.

Supporting organizations: 
Further Development and Maintenance
Pushing Development forward

Project information

Releases