[ egroupware-Bugs-1124573 ] problem compatibility iCal outlook

Bugs item #1124573, was opened at 2005-02-17 08:53
Message generated for change (Comment added) made by schappy
You can respond by visiting:
https://sourceforge.net/tracker/?func=detail&atid=554338&aid=1124573&group_id=78745

Please note that this message will contain a full copy of the comment thread,
including the initial issue submission, for this request,
not just the latest update.
Category: calendar
Group: HEAD / development branch
Status: Open
Resolution: None
Priority: 5
Submitted By: Mairie de Lille (mairiedelille)
Assigned to: Matthew Galgoci (mgalgoci)
Summary: problem compatibility iCal outlook

Initial Comment:
Problem:
iCal files attached with egroupware notifications can’t be
opened nor included in M$ Outlook.

  • eGW version used
    1.0.0.005
  • error messages by outlook (if any)
    In french: “impossible d’importer un fichier VCalendar”;
    that means in english: “impossible to import a VCalendar
    file”.
  • a mail outlook accepts as iCal (is the iCal attached
    or is it the body of the message?)
    When sent from egroupware, the ical is an attached file.
    From another outlook program it’s in the body.

When editing the both file I find in the one from
egroupware:
BEGIN:VCALENDAR
PRODID:-//eGroupWare//eGroupWare 1.0.0 MIMEDIR//FR
VERSION:1.0

and from outlook2002:
BEGIN:VCALENDAR
PRODID:-//Microsoft Corporation//Outlook 10.0
MIMEDIR//EN
VERSION:2.0

is that a problem of version?


Comment By: SCHAPPY (schappy)

Message:
Logged In: YES
user_id=1341831

Outlook 2k3 (and potentially any older MS Outlook versions)
does import eGroupware-vcs if the CLASS tag is properly
set. The following patch does also correct the problem with
the reserved key words PUBLIC and PRIVATE in php5. It is a
patch for /* $Id: class.boicalendar.inc.php,v 1.28.4.11
2005/03/31 13:16:18 ralfbecker Exp $ */ from the CVS.

Best regards, i hope it helps…

SCHAPPY

— inc\class.boicalendar.inc.php 2005-09-09
02:35:04.278328000 +0200
+++ inc\class.boicalendar.inc.php.new 2005-09-09
02:40:03.338355200 +0200
@@ -39,9 +39,9 @@
define(‘IN_PROCESS’,6);

/* class */
  • define(‘PRIVATE’,0);
  • define(‘PUBLIC’,1);
  • define(‘CONFIDENTIAL’,3);
  • define(‘C_PRIVATE’,0);

  • define(‘C_PUBLIC’,1);

  • define(‘C_CONFIDENTIAL’,3);

    /* transparency */
    define(‘TRANSPARENT’,0);
    @@ -1910,13 +1910,13 @@
    switch($var)
    {
    case ‘PRIVATE’:

  •   				return PRIVATE;
    
  •   				return C_PRIVATE;
      				break;
      			case 'PUBLIC':
    
  •   				return PUBLIC;
    
  •   				return C_PUBLIC;
      				break;
      			case 'CONFIDENTIAL':
    
  •   				return CONFIDENTIAL;
    
  •   				return C_CONFIDENTIAL;
      				break;
      		}
      	}
    

@@ -1924,13 +1924,13 @@
{
switch((int)$var)
{

  •   			case PRIVATE:
    
  •   			case C_PRIVATE:
      				return 'PRIVATE';
      				break;
    
  •   			case PUBLIC:
    
  •   			case C_PUBLIC:
      				return 'PUBLIC';
      				break;
    
  •   			case CONFIDENTIAL:
    
  •   			case C_CONFIDENTIAL:
      				return 'CONFIDENTIAL';
      				break;
      		}
    

@@ -3075,7 +3075,7 @@
}
if(!isset($ical[‘event’][$i][‘class’]))
{

  •   				$ical['event'][$i]['class'] = 1;
    
  •   				$ical['event'][$i]['class'] = C_PUBLIC;
      			}
      			$so_event->set_class($ical['event'][$i]['class']);
    

@@ -3403,7 +3403,7 @@
$event[‘modtime’][‘min’] -= $offset;

			$ical_event['priority'] = $event['priority'];
  •   		$ical_event['class'] = (int)$event['public'];
    
  •   		$ical_event['class'] = Array('value' =>
    

$this->switch_class($event[‘public’]));
$dtstart_mktime = $so_event->maketime($event[‘start’]);

$this->parse_value($ical_event,‘dtstart’,date(‘Ymd\THis\Z’,$dtstart_mktime),‘vevent’);
$dtend_mktime = $so_event->maketime($event[‘end’]);


Comment By: Jefferson Spear (jeffersonspear)

Message:
Logged In: YES
user_id=1250396

There are two problems. One is that starting with 1.28.4.11
the CLASS is not getting set. Setting it manually to PUBLIC
usually makes the file importable. The second is that
Outlook does not handle mulit-line descriptions as exported
by eGW. This is corrected in 1.28.4.10 by:

	function build_card_internals($ical_item,$event)
	{
		$prop = $this->find_properties($ical_item);
		reset($prop);
		while(list($dumb_key,$key) = each($prop))
		{
			$value  = $key;
			$varray = $this->property[$key];
			$type   = $varray['type'];
			$to_text = $varray['to_text'];
			$state  = @$varray[$ical_item]['state'];
			$multiples  = @$varray[$ical_item]['multiples'];

	// Added by PSI to allow for Outlook import.
			foreach($event['description'] as $v){
				$event['description']['value'] =

str_replace("\n","\n",$v);
}
//

and by

	// Added by PSI for Outlook import.
			$ical_event['description']['value'] =

str_replace("\r\n","\n",$ical_event[‘description’][‘value’]);
//
$ical_events[] = $ical_event;


Comment By: Ralf Becker (ralfbecker)

Message:
Logged In: YES
user_id=208526

Hi,

first of all, please update to 1.0.0.006 or even better make
a cvs update, as it includes a lot bugfixes not in the .006.

I will assign the bug to Matthew Galgorci, as he takes care
of the iCal stuff. AFAIK version 1.0 is vCal and version 2.0
is iCal. It seems Outlook imports it only if the version is
2.0. So I guess we need to change that.

Ralf


You can respond by visiting:
https://sourceforge.net/tracker/?func=detail&atid=554338&aid=1124573&group_id=78745


SF.Net email is Sponsored by the Better Software Conference & EXPO
September 19-22, 2005 * San Francisco, CA * Development Lifecycle Practices
Agile & Plan-Driven Development * Managing Projects & Teams * Testing & QA
Security * Process Improvement & Measurement * http://www.sqe.com/bsce5sf


eGroupWare-tracker mailing list
eGroupWare-tracker@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/egroupware-tracker