317 Modules match your search

Extend and customize Drupal functionality with contributed modules. If a module doesn't quite do what you want it to do, if you find a bug or have a suggestion, then join forces and help the module maintainer. Or, share your own by starting a new module.



Requires Views and the Date API (packaged with the Date module).

This module will display any Views date field in calendar formats, including CCK date fields, node created or updated dates, etc. Switch between year, month, and day views. Back and next navigation is provided for all views. Lots of the Calendar functionality comes from the Date module, so any time you update the Calendar module you should be sure you also update to the latest version of the Date module at the same time.

See also Date iCal, a project that contains code and features needed to either import or export dates using iCal feeds. The functionality that used to be in the Calendar iCal module has been moved into that module.

Be sure to read Debugging Information before reporting a problem. Going through those steps may resolve your problems and will help provide enough information to tell if this is a bug.


Date iCal

Date iCal is your one-stop shop for iCal support in Drupal. It provides a plugin for Views to enable exporting your site's calendar as an iCal feed, and a plugin for Feeds to enable importing external iCal feeds into your site's calendar.




Provides a Views display, style and row plugin for displaying nodes using Adam Shaw's FullCalendar jQuery plugin.


There is a good deal of info in the issue queue, but if you're on IRC, come by the #drupal-fullcalendar channel and say hello!


As of 7.x-2.0-beta1, the Colorbox integration is part of the FullCalendar Options submodule.

Please remember to run update.php first, or clear all caches.

The FullCalendar Colors submodule requires the Colors API module. There is an upgrade path, be sure to run update.php and clear your caches.
Specifically, if you are using FullCalendar beta2, you must use Colors beta2.

The template files (*.tpl.php) have been removed, if you still wish to use those, please install FullCalendar Templates.


See the documentation for installation instructions.


See the documentation for usage information.


Maintainer and developer: tim.plunkett


Entity Registration

Entity Registration is a simple, flexible module for allowing and tracking user registrations for events, or just about anything you want people to sign up for. Entity Registration can be integrated with Drupal Commerce to allow fee-based registrations: sell tickets to your stuff! This module is also handy if you want to collect information along with registrations: like shoe-size for a bowling event.


jQuery Countdown

jQuery Countdown Drupal Module

Provides the jQuery Countdown plugin by Keith Wood, along with a simple API function (jquery_countdown_add) to easily add countdown/countup timer elements to the page.



The Block

The Agenda module allows you to display a list of upcoming events from Google Calendar as a block on your website.

The events are automatically downloaded and cached from the Calendar IDs specified in the Agenda administration page. Unlimited calendars can be added, and the colours for each calendar can be specified in the CSS file.

The output is fully themeable, and uses jQuery for dynamic effects such as rounded corners, and click-toggling extra information.


Add to Cal

A field formatter providing a widget for exporting events to:

  • Google Calendar
  • Yahoo! Calendar
  • iCal
  • Outlook

The field formatter provides a button next to the field that shows a drop-down menu. This menu contains links to the supported formats, and includes basic styling that can be easily modified through CSS.

For screenshots and a more detailed explanation of how this module works, check out this blog post.


Rooms - Drupal Booking for Hotels, B&Bs and Vacation Rentals


Drupal Rooms is a basic booking and room management solution for hotels, vacation rentals and B&Bs.

All future regarding booking solutions is concentrated on the BAT module - the Booking and Availability Management Toolkit that will offer both a D7 and D8 version.

For vacation rentals, hotels and B&Bs please checkout Roomify for Accommodations - a complete Drupal distribution based on BAT with integrated channel management.


FullCalendar Create

A new extension for FullCalendar. This module allows you to click directly on the calendar to create new events. Currently only supports nodes, generic entities will be supported after #1437902: Allow custom $form_state to be used with entity_form().



Adds a block titled "Countdown" to count the days, hours, minutes, and seconds since or until a specified event. Can configure to just show days, or days and hours, etc.

See also:



Opigno Calendar App

Opigno Calendar app. Creates a calendar for your platform.


Pop-up announcement


The module provides a pop-up announcements in the overlay which will appear for the site visitor on the first, second and fifth visit to the site (customizable).

You may create so much announcements, as You need and define where and when each from them will be appear.

Very useful solution for interaction and communication with site visitors. You may post announcement about conferences, great news, "Tip of day" system, information about coming site maintenance, new goods, sales and much more.


  • The announcements may be with html.
  • The announcements will appear on the overlay.
  • Announcements added to the site as a block - it make possible to use flexible visibility settings to define pages where announcement will appear.
  • On the configure page it is possible to define, on which visit the announcement will appear. By default on the first, second and fifth visit.
  • If interval between http requests is more than one hour, these are two different visits.
  • After 23 days records about visits become old and automatically are removed from the database.
  • Any count of separates blocks with announcements is available now. It is possible to define different visibility for every announcement - for example, for different parts of site.
  • Admin page for managing all announcements.
  • Ability to define time delay after which announcement would be visible was added.


Events calendar feature

Events listing at /events once the feature has been enabled and some events have been created.

Here is an example of how to build a list of events with a calendar block that filters the listed events for a particular day in Drupal 7.


Commerce Registration


Provides Drupal Commerce with the ability to sell registrations via the Entity Registrations module.


Entity Registration
Drupal Commerce


This module, along with Entity Registrations, is still in beta. That means there can be substantial code changes, although the schema is relatively stable. However, this does not completely remove the possibility of any major changes that will affect interaction between the two modules. Check the issue queue for any possibly existing problems.

Set Up

Use Drupal Commerce as usual.

If you don't already have a product display set up, create one with a product reference field.

Add a Registration field to the commerce product type you want.

Create a product and set the Registration type (or create one if you haven't already), add a new product display with that reference, and add the settings to the DB as above.


Date Repeat Entity


The Date Repeat Entity Module complements the Date suite of modules, in particular the Date Repeat module. For repeating dates that follow a recurring rule, this module creates a unique entity for each date instance in the series.


Node registration

Allows (authenticated and/or anonymous) users to register for events. Events are nodes with certain node types. You can enable registration for any node type and add fields and manage display per type and per node.

N.B. If you can't register or don't see the link/form, you can add ?debug=1 to the URL and the reason will be saved into the watchdog table. It might be a date, a permission, a status etc. The watchdog message will tell.

Since it's built on Entities and Fields, it works perfectly together with Views, Tokens, Rules, VBO etc.

Requires PHP >= 5.3.

Set up

  1. Download & enable + dependencies
  2. Choose node types to enable (admin/structure/types/manage/TYPE/edit)
  3. Add fields to new registration type (admin/structure/node_registration/manage/TYPE/fields)
  4. Tweak registration type settings (admin/structure/node_registration/manage/TYPE/settings)
  5. Party


Most permissions are intelligent: a combination of
checkboxes (People > Permissions), registration type
settings and node registration settings (node/2/registration/settings).


For registration types and nodes:


    Previewable email templates

    The Previewable Email Template (PET) module lets you create email templates, with token substitution, which can be previewed by the user before sending. The emails can be sent to one or many email addresses in a flexible way, and the recipients may or may not be Drupal account holders (users).

    PET stores templates in a db table, not the variables table, so there is none of the memory usage which goes with the latter.

    PET templates are in one place for easy management by site administrators. Emails can be sent one of three ways:

    • interactively, from a link
    • programmatically, in response to any situation
    • via a Rules action (D7 only)

    README for D7 version

    Previewable Email Templates (PET)

    The Previewable Email Template (PET) module lets users create email templates,
    with token substitution, which can be previewed before sending. The emails can
    be sent to one or many email addresses in a flexible way, and the recipients
    may or may not be Drupal account holders (users).

    Individual email sends can be customized per email send without affecting the
    template, which makes one-off customization a breeze.

    PET puts all your email templates in one place which makes for easy editing by
    your users, who don't have to go into the bowels of Rules to edit an email.


    User Alert


    This module provides a simple way to show a short-term urgent message on the website. Think of CNN Breaking News, when they show a short message the top of the site (or the 'Welcome!' style messages at StackExchange websites). This module works for both anonymous and authenticated users by using a cookie, and recording actions in the database. This solves the need to show messages independent of the users authenticated status.

    With User Alerts, you can:

    • Alert users about breaking news, or a special same-day sale for ecommerce
    • Schedule publishing of alerts via Scheduler
    • Override display with TPL and CSS

    How to use this module:

    1. Enable User Alerts
    2. Set the appropriate permissions for selected roles
    3. Set the User Alert block in the appropriate region of your theme.
    4. Create a user alert node.

    You can also set some global settings for alerts at admin/settings/user-alert.

    Unpublished alert nodes are removed from the system automatically. This is to prevent an old alert being seen by a user (if the cookie was cleared or expired, for example) if a node was republished accidentally.


    Who Bought What|Ubercart


    This is for Ubercart. If you are using Ubercart to sell tickets or entries to an event or perhaps a race, it's very helpful to have a list, per item, of who bought what. For a competition, this will become an entry list. For a performance, this may become your will-call attendance list.

    You may simply want to know who bought what! Who are the purchasers of a given item can be useful in any of a number of instances... recalls, promotions, and the like.


    Event Views

    Requires both the Event module and the Views module. The Event Views module exposes event fields to the Views module, creates year, month, day, and week argument handlers, and provides default event views that filter events using a drop-down date selector, the jscalendar selector, if installed, or by arguments in the url. Argument combinations can include year, year/month, year/month/day, and year/week.


    MERCI (Manage Equipment Reservations, Checkout and Inventory)


    MERCI can extend any content type into a list of unique reservable items (like studios) or buckets of interchangeable items (like DV cameras). We followed the approach used by Organic Groups, Feed API, and Scheduler and added MERCI's configuration to the Edit tab of those content types.




    Enterprise Events


    Enterprise Events is an App for managing events on your site. It is a part of the Open Enterprise distribution but can be installed on any Drupal 7 site.


    • event content type with date field
    • view listing page and block of events that can be filtered by categories
    • categories block view
    • enhanced admin view for better content administration


    1. Install the module and dependencies. There are three ways to install using Drupal 7:
      • Do a traditional install by downloading all the modules from Drupal.org and follow instructions
      • One click install via the LevelTen Apps Server. You must install the apps connector modules first.*
      • Start your site with the Open Enterprise Drupal distribution. The apps server connectors are included - along with a lot of other great stuff.*

      * Using the apps server greatly streamlines the process.

    2. Once installed, a Events item will appear on the main menu. Visit the page and click "+ Add event" to get started.



    Resource Conflict

    This module allows for users to book resources for use during events. For example, a student can book a microscope for use within their lab. The D7 version detects overlapping dates and conflicts between nodes, and lets you respond using Rules.



    The Maestro module is a workflow engine/solution that will facilitate simple and complex business process automation.

    Maestro has a workflow engine that executes templates created using a visual workflow editor. The workflow engine runs in the backgound and executes the workflow tasks, testing the tasks execution results and branch the workflow if required. The workflow engine will run every x seconds and execute all tasks that are in the queue which have not yet completed. Once they execute and return a success status, the engine will archive them and step the workflow forward. Both these components have been developed to support any number of different task types.

    Maestro has been built to be extended with new task types and now contains tasks that are aware of webforms, entityforms, content types, rules, triggers. Custom interactive functions and batch functions can be added for custom business logic or integration.

    The following is a summary of the available task types that be used in a workflow template:

    • Content Type Task: Assign a task to a user to create a new content node - task definition allows you to select from available content types.


    Registration Commerce

    "Registration Commerce" (not to be confused with Commerce Registration) is an integration point between the entity-based Registration Module and Commerce, enabling paid registrations. Registration Commerce lets you generate a Commerce Line Item from a Registration, then update the Registration's State when the Line Item is paid.

    The intended application is paid event registrations where you want to create the Registration before you create a commerce transaction.


    The quick setup how-to goes like this:
    1. Edit a Registration Type: you'll see a "Registration Commerce Settings" tab. This will let you enable Commerce for this registration type, and select which states will allow for transactions to be triggered. If you select the default state for a registration, registering users will be automatically sent to their cart when they save their registration, so they can pay for it.
    2. Set the price & currency for this registration type (this price will be multiplied by the number of slots used in the registration). If you want to use more complex logic to set the price, implement hook_registration_commerce_calculate_price and return an array with "amount" and "currency_code" values.