Index: trunk/wordpress.org/public_html/wp-content/plugins/wporg-meeting-posttype/wporg-meeting-posttype.php
===================================================================
--- trunk/wordpress.org/public_html/wp-content/plugins/wporg-meeting-posttype/wporg-meeting-posttype.php	(revision 5842)
+++ trunk/wordpress.org/public_html/wp-content/plugins/wporg-meeting-posttype/wporg-meeting-posttype.php	(working copy)
@@ -64,7 +64,7 @@
 					'relation'=>'AND',
 					array(
 						'key'=>'recurring',
-						'value'=>array('weekly','monthly', '1'),
+						'value'=>array('weekly', 'Biweekly', 'monthly', '1'),
 						'compare'=>'NOT IN',
 					),
 					array(
@@ -79,7 +79,7 @@
 					'relation'=>'AND',
 					array(
 						'key'=>'recurring',
-						'value'=>array('weekly', 'monthly', '1'),
+						'value'=>array('weekly', 'Biweekly',  'monthly', '1'),
 						'compare'=>'IN',
 					),
 					array(
@@ -117,17 +117,31 @@
 			if ( $post->recurring == 'weekly' || $post->recurring === '1' ) {
 				try {
 					// from the start date, advance the week until it's past now
-					$start = new DateTime( $post->start_date.' '.$post->time.' GMT' );
-					$now = new DateTime();
-					$interval = $start->diff($now);
+					$start    = new DateTime( $post->start_date . ' ' . $post->time . ' GMT' );
+					$now      = new DateTime();
+					$interval = $start->diff( $now );
 					// add one to days to account for events that happened earlier today
-					$weekdiff = ceil( ($interval->days+1) / 7 );
-					$next = strtotime( "{$post->start_date} + {$weekdiff} weeks" );
-					$post->next_date = date('Y-m-d', $next);
-				} catch (Exception $e) {
+					$weekdiff        = ceil( ( $interval->days + 1 ) / 7 );
+					$next            = strtotime( "{$post->start_date} + {$weekdiff} weeks" );
+					$post->next_date = date( 'Y-m-d', $next );
+				} catch ( Exception $e ) {
 					// if the datetime is invalid, then set the post->next_date to the start date instead
 					$post->next_date = $post->start_date;
 				}
+			} else if ( $post->recurring == 'Biweekly' || $post->recurring === '1' ) {
+				try {
+					// from the start date, advance the week until it's past now
+					$start    = new DateTime( $post->start_date . ' ' . $post->time . ' GMT' );
+					$now      = new DateTime();
+					$interval = $start->diff( $now );
+					// add one to days to account for events that happened earlier today
+					$weekdiff        = ceil( ( $interval->days + 1 ) / 14 );
+					$next            = strtotime( "{$post->start_date} + {$weekdiff} weeks" );
+					$post->next_date = date( 'Y-m-d', $next );
+				} catch ( Exception $e ) {
+					// if the datetime is invalid, then set the post->next_date to the start date instead
+					$post->next_date = $post->start_date;
+				}
 			} else if ( $post->recurring == 'monthly' ) {
 				try {
 					// advance the start date 1 month at a time until it's past now
@@ -257,6 +271,8 @@
 		<label for="recurring"><?php _e( 'Recurring: ', 'wporg' ); ?>
 			<label for="weekly"><?php _e( 'Weekly', 'wporg' ); ?></label>
 			<input type="radio" name="recurring" value="weekly" class="regular-radio" <?php checked( $recurring, 'weekly' ); ?>>
+            <label for="Biweekly"><?php _e( 'Biweekly', 'wporg' ); ?></label>
+            <input type="radio" name="recurring" value="Biweekly" class="regular-radio" <?php checked( $recurring, 'Biweekly' ); ?>>
 			<label for="monthly"><?php _e( 'Monthly', 'wporg' ); ?></label>
 			<input type="radio" name="recurring" value="monthly" class="regular-radio" <?php checked( $recurring, 'monthly' ); ?>>
 		</label>
