180 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.

Any entity which contains a Date field can be utilized by Date iCal for import and export of iCal feeds.

Date iCal depends on the following modules and libraries:

  • Views 3.5+, Entity API, Date, and Libraries 2.0 are required.
  • The iCalcreator library is required. Please see the project documentation (linked to the right) for installation instructions.
  • The Feeds module is optional. You'll only need it if you plan to import iCal feeds from other sites.
  • PHP 5.3 is required by the iCalcreator library to properly handle timezone data. Date iCal might work with PHP 5.2, but that configuration is untested and unsupported.


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.




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



This is a simple module to keep track of events and show them to users in various calendar displays. It also provides an event API to allow other modules to store and work with date data.


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.



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:



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.




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

It allows an accommodation owner to:

  • Create rooms and assign availability (or on hold states) via a calendar.
  • Manage pricing for rooms using calendars that allow to set pricing for entire seasons or just change it for specific dates.
  • Define optional add-ons for rooms.
  • Charge either per-night or per-person.
  • Handle children discounts.
  • Create bookings and keep customer records.
  • Make rooms available for booking with a availability search functionality and/or calendar - handling both immediate bookings and bookings following owner confirmation.
  • Search by Room Type.
  • Full integration with Commerce to manage payments, a range of different payment gateways, and a host of other e-commerce features.
  • Accept full or partial payments (deposits) using Commerce features.
  • Through Rooms Package you can define special offers for bookings (requires >= Rooms 1.3).
  • Through Rooms Availability Constraints an admin can define availability constraints such as the minimum period of a booking (requires >= Rooms 1.3).

Drupal Rooms is being developed as Drupal 7+ solution.


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.


Commerce Registration


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


Entity Registrations (at least 7.x-1.1)
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.


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.


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:


    Opigno Calendar App

    Opigno Calendar app. Creates a calendar for your platform.


    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.


    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.


    Views Date range

    This module provides a new Views argument plugin for date fields that allows for arbitrary date ranges in summary views. If you need to generate a listing of nodes by quarter, academic term, or some other site-specific date range then this is the module for you.

    Note: This module has only been tested on MySQL 5.x and I'm fairly sure it will not work on PostgreSQL. Unfortunately it requires doing seriously bizarre things in SQL that are not at all portable.

    Once this module is enabled, you will find a new Views Argument handler under the "Date" group called "Date: Date range". It works in the same way as the normal "Date: Date" argument, except that instead of setting a granularity for the summary view you may configure your own arbitrary set of date ranges at the bottom of the configuration form.

    These date ranges should be in the order you wish them displayed, and together should cover the entire year. They may be given any label you wish.

    When the view is displayed, if no date is given then a summary view will be generated that uses the specified date ranges rather than more common ranges like a summary by month or by year. Each date range will be within a given calendar year, so will be along the lines of "Quarter 3 2008", "Quarter 1 2009", etc.


    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.


    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.




    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.


    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.


    Signup Integration for Ubercart


    UC_Signup provides integration between Signup.module and Ubercart, allowing users to purchase signups for events.

    Signup-enabled nodes are configured as Ubercart products.

    The customer can purchase signups for herself and/or other people.

    Example use cases:

    • 1 User signs up for 1 or more events
    • 1 User signs up 2 people for the same event
    • 1 User signs up 4 people for 3 different events, providing profile information for the two users who do not already have accounts on the site.

    If the people do not have accounts on the site the customer is prompted to create a new account for that person, entering any core user profile fields that are enabled on the site. If there are matching user accounts for the email addresses entered, then UC_Signup does not ask for their profile information.

    When the order is submitted, temporary signups are created to ensure that the customer is only charged if space is available in the event(s). Once checkout is complete, if the order balance is not cleared, the signups are cancelled. If the balance is cleared, the signups are converted from temporary to final signups. UC_Signup stores this distinction in the uc_signup_log database table.


    Signup Status

    The Signup Status module extends the Signup module's functionality by allowing users with permission to administer signups on signup-enabled nodes to set the status of a user's signup. This can be used, for example, to mark users as "Paid" or "Completed." By default, the module comes with two default statuses, "Approved" (the default status) and "Wait listed."

    This module features:

    • Limit number of signups per status.
    • Wait list functionality for the signup module with optional auto-transition to "Registered" status.
    • Printable rosters as HTML, PDF or CSV.
    • Modifications to the Signup Broadcast form that allows signup creators to email a group of signups based on signup status.
    • Views module support through several fields and filters.

    Several optional modules are included in this package, which include:

    • Signup Status Log: An administrative log of signup status changes.
    • Signup Status Certificates: Grant certificates to users based on their status. See "Configuring Certificate Templates" below.
    • Signup Status Mailer: Email users when their signup status has changed.