def mergeable(self, other):
        """Can this event be merged with other."""

        if self.scheduled is not None:
            return False
        if self.subject != other.subject:
            return False
        if self.event_type == CREATE:
            return other.event_type not in (DEACTIVATE, REMOVE)
        if self.event_type == DELETE:
            return other.event_type in (REMOVE, DEACTIVATE, ADD, ACTIVATE,
                                        MODIFY, PASSWORD)
        if (self.event_type == other.event_type and
                self.event_type in (ADD, REMOVE, ACTIVATE, DEACTIVATE)):
            return True
        if self.context != other.context:
            return False
        return True