Last updated March 7, 2009. Created by owahab on May 9, 2005.
Edited by taylesia, LeeHunter, dww, Amazon. Log in to edit this page.

The RSVP module lets users invite people by email to events and track a list of people who will be attending. The RSVP module requires the event module because it is necessary to have an event to invite people to first.

To file issues, read about known bugs, and download the latest version on the RSVP project page.

Automatic RSVP creation with Event

I searched around to find a solution for automatically creating the RSVP for event nodes and could not find any concrete solution. Someone mentioned using workflow-ng and I have created this system for Drupal 5.x:

1. Install Event, RSVP and workflow-ng modules
2. Setup your Event content type
3. Create new workflow ->
(event) Content has been created
(conditions) Content has type == your event content type
(actions) Custom PHP code (see below)

Copy/Paste/Modify the code below to create the RSVP. Note that if you use the token replaceable variables like "[node:title]" instead of $node->title you can have problems with html entities being encoded improperly. This code will execute and then you will continue to the view of the newly created Event.

/**
  * BEGIN EDITING VARS HERE
**/
$edit['name'] =  html_entity_decode($node->title) . ' RSVP';      // title of RSVP
$edit['invite_text'] = t('You have been invited to attend the event ') . html_entity_decode($node->title)  . '.';   // invite text
$edit['blind'] = 0;    // Hide attendee list, 1 for TRUE
$edit['list_email'] = 1;    // Allow attendees to send messages to people invited, 1 for TRUE
$edit['allow_invite'] = 1;  // Allow attendees to send their own invites, 1 for TRUE
/**
* END EDIT
**/
  $edit['nid'] = $node->nid;
  $fields[] = 'uid';
  $vals[] = [node:field_host-uid];
  $markers[] = "%d";
  $fields[] = 'timestamp';
  $vals[] = time();
  $markers[] = "%d";
  foreach (array('name', 'invite_text', 'invite_list', 'blind', 'list_email', 'allow_invite', 'nid') as $key) {
    if ($key != 'invite_list') {
      $fields[] = $key;
      $vals[] = $edit[$key];
      $markers[] = "'%s'";
    }
  }
  $rid = db_next_id('rsvp');
  $fields[] = 'rid';
  $vals[] = $rid;
  $markers[] = "%d";
  $sql = 'INSERT INTO {rsvp} ('. implode(", ", $fields) .') VALUES ('. implode(", ", $markers) .')';
  if (db_query($sql, $vals)) {
     // the RSVP was created successfully
  }
  else {
    drupal_set_message(t('There was an error creating the RSVP. Please try again'));
  }

Looking for support? Visit the Drupal.org forums, or join #drupal-support in IRC.