add support for storing, parsing, and serializing guestsCanModify, guestsCanInviteOthers, and guestsCanSeeGuests.
diff --git a/src/com/google/wireless/gdata/calendar/data/EventEntry.java b/src/com/google/wireless/gdata/calendar/data/EventEntry.java
index f7e06a3..93bef8f 100644
--- a/src/com/google/wireless/gdata/calendar/data/EventEntry.java
+++ b/src/com/google/wireless/gdata/calendar/data/EventEntry.java
@@ -71,6 +71,9 @@
     private byte transparency = TRANSPARENCY_OPAQUE;
     private Vector attendees = new Vector();
     private boolean sendEventNotifications = false;
+    private boolean guestsCanModify = false;
+    private boolean guestsCanInviteOthers = true;
+    private boolean guestsCanSeeGuests = true;
     private Vector whens = new Vector();
     private Vector reminders = null;
     private String originalEventId = null;
@@ -97,6 +100,9 @@
         visibility = VISIBILITY_DEFAULT;
         transparency = TRANSPARENCY_OPAQUE;
 	sendEventNotifications = false;
+	guestsCanModify = false;
+	guestsCanInviteOthers = true;
+	guestsCanSeeGuests = true;
         attendees.removeAllElements();
         whens.removeAllElements();
         reminders = null;
@@ -172,7 +178,31 @@
 	this.sendEventNotifications = sendEventNotifications;
     }
 
-    public void clearAttendees() {
+    public boolean getGuestsCanModify() {
+	return guestsCanModify;
+    }
+
+    public void setGuestsCanModify(boolean guestsCanModify) {
+	this.guestsCanModify = guestsCanModify;
+    }
+
+    public boolean getGuestsCanInviteOthers() {
+	return guestsCanInviteOthers;
+    }
+
+    public void setGuestsCanInviteOthers(boolean guestsCanInviteOthers) {
+	this.guestsCanInviteOthers = guestsCanInviteOthers;
+    }
+
+    public boolean getGuestsCanSeeGuests() {
+	return guestsCanSeeGuests;
+    }
+
+    public void setGuestsCanSeeGuests(boolean guestsCanSeeGuests) {
+	this.guestsCanSeeGuests = guestsCanSeeGuests;
+    }
+
+   public void clearAttendees() {
         attendees.clear();
     }
 
@@ -301,6 +331,9 @@
         appendIfNotNull(sb, "ORIGINAL_START_TIME", originalEventStartTime);
 	sb.append("QUICK_ADD: " + (quickAdd ? "true" : "false"));
 	sb.append("SEND_EVENT_NOTIFICATIONS: " + (sendEventNotifications ? "true" : "false"));
+	sb.append("GUESTS_CAN_MODIFY: " + (guestsCanModify ? "true" : "false"));
+	sb.append("GUESTS_CAN_INVITE_OTHERS: " + (guestsCanInviteOthers ? "true" : "false"));
+	sb.append("GUESTS_CAN_SEE_GUESTS: " + (guestsCanSeeGuests ? "true" : "false"));
 
         Enumeration whos = this.attendees.elements();
         while (whos.hasMoreElements()) {
diff --git a/src/com/google/wireless/gdata/calendar/parser/xml/XmlEventsGDataParser.java b/src/com/google/wireless/gdata/calendar/parser/xml/XmlEventsGDataParser.java
index 920a8d5..eddbc3f 100644
--- a/src/com/google/wireless/gdata/calendar/parser/xml/XmlEventsGDataParser.java
+++ b/src/com/google/wireless/gdata/calendar/parser/xml/XmlEventsGDataParser.java
@@ -155,9 +155,19 @@
         } else if ("sendEventNotifications".equals(name)) {
 	    // TODO: check that the namespace is gCal
 	    String value = parser.getAttributeValue(null /* ns */, "value");
-	    if ("true".equals(value)) {
-		eventEntry.setSendEventNotifications(true);
-	    }
+	    eventEntry.setSendEventNotifications("true".equals(value));
+	} else if ("guestsCanModify".equals(name)) {
+	    // TODO: check that the namespace is gCal
+	    String value = parser.getAttributeValue(null /* ns */, "value");
+	    eventEntry.setGuestsCanModify("true".equals(value));
+	} else if ("guestsCanInviteOthers".equals(name)) {
+	    // TODO: check that the namespace is gCal
+	    String value = parser.getAttributeValue(null /* ns */, "value");
+	    eventEntry.setGuestsCanInviteOthers("true".equals(value));
+	} else if ("guestsCanSeeGuests".equals(name)) {
+	    // TODO: check that the namespace is gCal
+	    String value = parser.getAttributeValue(null /* ns */, "value");
+	    eventEntry.setGuestsCanSeeGuests("true".equals(value));
 	} else if ("when".equals(name)) {
             handleWhen(eventEntry);
         } else if ("reminder".equals(name)) {
diff --git a/src/com/google/wireless/gdata/calendar/serializer/xml/XmlEventEntryGDataSerializer.java b/src/com/google/wireless/gdata/calendar/serializer/xml/XmlEventEntryGDataSerializer.java
index 1081756..e52277c 100644
--- a/src/com/google/wireless/gdata/calendar/serializer/xml/XmlEventEntryGDataSerializer.java
+++ b/src/com/google/wireless/gdata/calendar/serializer/xml/XmlEventEntryGDataSerializer.java
@@ -54,12 +54,12 @@
         serializeEventStatus(serializer, entry.getStatus());
         serializeTransparency(serializer, entry.getTransparency());
         serializeVisibility(serializer, entry.getVisibility());
-	if (entry.getSendEventNotifications()) {
-	    serializer.startTag(NAMESPACE_GCAL_URI, "sendEventNotifications");
-	    serializer.attribute(null /* ns */, "value", "true");
-	    serializer.endTag(NAMESPACE_GCAL_URI, "sendEventNotifications");
-	}
-        Enumeration attendees = entry.getAttendees().elements();
+
+	serializeGuestsCanModify(serializer, entry.getGuestsCanModify());
+	serializeGuestsCanInviteOthers(serializer, entry.getGuestsCanInviteOthers());
+	serializeGuestsCanSeeGuests(serializer, entry.getGuestsCanSeeGuests());
+
+	Enumeration attendees = entry.getAttendees().elements();
         while (attendees.hasMoreElements()) {
             Who attendee = (Who) attendees.nextElement();
             serializeWho(serializer, entry, attendee);
@@ -200,7 +200,39 @@
         serializer.endTag(XmlGDataParser.NAMESPACE_GD_URI, "visibility");
     }
 
-    private static void serializeWho(XmlSerializer serializer,
+    private static void serializeSendEventNotifications(XmlSerializer serializer,
+							boolean sendEventNotifications)
+	throws IOException {
+	serializer.startTag(NAMESPACE_GCAL_URI, "sendEventNotifications");
+	serializer.attribute(null /* ns */, "value", sendEventNotifications ? "true" : "false");
+	serializer.endTag(NAMESPACE_GCAL_URI, "sendEventNotifications");
+    }
+
+    private static void serializeGuestsCanModify(XmlSerializer serializer,
+						 boolean guestsCanModify)
+	throws IOException {
+	serializer.startTag(NAMESPACE_GCAL_URI, "guestsCanModify");
+	serializer.attribute(null /* ns */, "value", guestsCanModify ? "true" : "false");
+	serializer.endTag(NAMESPACE_GCAL_URI, "sendEventNotifications");
+    }
+
+    private static void serializeGuestsCanInviteOthers(XmlSerializer serializer,
+						       boolean guestsCanInviteOthers)
+	throws IOException {
+	serializer.startTag(NAMESPACE_GCAL_URI, "guestsCanInviteOthers");
+	serializer.attribute(null /* ns */, "value", guestsCanInviteOthers ? "true" : "false");
+	serializer.endTag(NAMESPACE_GCAL_URI, "guestsCanInviteOthers");
+    }
+
+    private static void serializeGuestsCanSeeGuests(XmlSerializer serializer,
+						    boolean guestsCanSeeGuests)
+	throws IOException {
+	serializer.startTag(NAMESPACE_GCAL_URI, "guestsCanSeeGuests");
+	serializer.attribute(null /* ns */, "value", guestsCanSeeGuests ? "true" : "false");
+	serializer.endTag(NAMESPACE_GCAL_URI, "guestsCanSeeGuests");
+    }
+
+   private static void serializeWho(XmlSerializer serializer,
             EventEntry entry,
             Who who)
             throws IOException, ParseException {