Easy recipe for posting events with signups on your website

You want to create events on your website that users can sign up for? Here's a step-by-step guide:

  1. Install and enable required modules:
    • CCK: Content, Number, Option widgets, Text, User reference
    • calendar: Calendar, Calendar iCal
    • date: Date, Date API, Date Popup, Date Repeat API, Date Timezone IMPORTANT: If your site is running php 5.3, the 6.x-2.7 version won't work. You'll have to use the 6.x-2.x-dev version.
    • jquery_ui: jQuery UI
      • Install the jquery UI plugin.
      • wget http://jquery-ui.googlecode.com/files/jquery.ui-1.6.zip {drupal}/sites/all/libraries
      • ln -s {drupal}/sites/all/libraries/jquery.ui-1.6 {drupal}/sites/all/libraries/jquery.ui
    • signup: Signup
    • signup_status: Signup status, Signup status invite, Signup Status Limit, Signup status log, Signup Status Mailer, Signup status notifications
  2. Create the 'event' content type:
    • Name: Event
    • Type: event
    • Description: Any type of event that has a date, a location, and an opportunity for people to sign up. (Geek note: based on CCK, not Event module)
    • Title field label: Event
    • Body field label: Long description (optional)
    • Explanation or submission guidelines:
      • Name the event in the Event field.
      • Optionally give a full description in the Long Description field.
    • Organic groups: Standard group post
    • Signup settings: Enabled (on by default)
    • Manage fields:
      • Date field_date Datestamp Text Field with Date Pop-up and Repeat options
      • Lead field_lead User reference
      • Cost field_cost Float
      • Type field_evttype Text
    • Date field to use with signup: Date
  3. Create a sample event node. Be sure to include a reasonable date. If you see anything odd about the node as you are creating it, this gives you a chance to fix it before you use it.
  4. Enable the calendar view (/admin/build/views). By default, this view doesn't show things using the dates you specified in the event.
  5. Browse to {drupal}/calendar and verify that your event shows up.
  6. Create a custom date format that shows only the time of the event. The date of the event will be obvious because the event will be in the calendar.
    • /admin/settings/date-time/formats/add
    • Format string: g:i a
    • /admin/settings/date-time/formats
    • Add format type
      • Name: Time only
      • Type: time_only
    • Save configuration
      • Select the time-formatted 'date' from the 'Time only' pulldown.
    • Flush all caches to ensure that Views is ready to accommodate your new date format. (/admin_menu/flush-cache)
  7. Edit the calendar view (/admin/build/views/edit/calendar)
    • Filters: Add node type=event
    • Sort criteria: Remove: Node updated date. Add: Content: Date - From date.
    • Arguments: Remove: Node updated date and Add: Date: Date (node) - From date.
      • If not present, Provide default argument: Current date
  8. Browse to {drupal}/calendar and see what you get!