Timezones in Calendar

Hi,
I've created some recurring events in my MS Outlook calendar. The times for these events have a timezone of "Dublin, Edinburgh, Lisbon, London". When I sync the events onto my iPhone, the new events have a timezone "GMT".
Because of this, any events which are created during daylight saving are showing an hour out. I can fix this for an individual occurence by changing the timezone of the event on my iPhone to "London" - but because the recurrence is not something directly supported by the iOS calendar (the recurrence is set for the 3rd Friday of the month), the recurrence seems to get deleted when I make any change to the event on my iPhone and try to change all occurences of the event, so this is not a suitable fix for me.
In the Settings, under General then Date & Time, my Time Zone is showing as "London". And under Mail, Contacts, Calendars, my Time Zone Support is set to "London".
So why, when my settings all show "London", are calendar events being imported with a time zone of "GMT"?
Thanks!
Dean

Hi. Thanks again for your reply. Yes, I can confirm that the time zone in Outlook was correct.
FYI, I've done a lot more research into this, and come to the same conclusion that many other people seem to have already come to - it's a bug without an obvious fix. I've managed to find a workaround which worked for me.
The bug: Outlook always reports the start-time of an event in GMT, because it doesn't know what time zone the recipient of the message will be in. It expects the recipient of the message to do whatever processing is necessary to convert that back to the local time-zone. iTunes' synchronisation algorithms see that the event is being reported in GMT, so an event gets created with its time-zone set to GMT, starting at the same time in GMT with no regard to daylight saving. Basically, Microsoft and Apple both make different assumptions about how this kind of event should be communicated, and the two sets of assumptions aren't compatible with each other. After searching these and other forums, I've found many other people who have had similar problems, and no one has suggested a solution.
The workaround for me: the only reason for creating this event in Outlook is because it allow "every second Monday" type of monthly events, which can't be created directly on the iPhone. My workaround was to ditch Outlook, and create these events in iCloud. From iCloud they synchronise correctly onto the iPhone (as you'd expect, because it's all within Apple's own systems). This works well for me, and I'm happy with the result, but in other situations where people need to use Outlook for other reasons it's not good.
Thanks for your input anyway.
Dean

Similar Messages

  • Showing Timezone in calendar

    I am frequently moving between timezones and get meeting invites from other parties for events scheduled according to their timezone.
    While Calendar manages the knighted correctly, there is a risk of confusion when the iPad (or iPhone) is set to automatically accept the location timezone. Switching the setting for time and calendar timezone support is a bit tedious.
    Is here a way to display the current timezone possibly in the top bar (next to the time), and also on the calendar page (since they timezones for displaying the time and managing calendar events is handled separately)?
    Would greatly help in reducing confusion about timings of events for frequent travelers.
    Cheers,
    Michael

    Hello,
    Did you found a solution for showing timezone in calendar?
    Thanks,

  • Convergence 2 Timezone in calendar properties issue

    Hi. I'm using Convergence 2 with patch 1 so when i set default timezone in options tab on calendar genteral to Asia Bangkok and check calendar properties in Calendar tab. It's turn into America Denver but in Directory server user profile icsTimezone and sunUCTimeZone has set to Asia/Bangkok. I'm not sure is it a bug or not. Anybody got this issue? I'm need help. thanks
    Edited by: user10510959 on Apr 4, 2011 8:45 PM
    Edited by: user10510959 on Apr 4, 2011 8:46 PM

    Sorry it isn't a software bug. Course of when calendar 6.3 create new user's calendar DB it will set timezone in calendar DB by timezone config in ics.conf file for the first time. After i edited ics.conf to change timezone parameter then delete user's calendar DB. It' fine now after new create.

  • How to delete unwanted timezones from Calendar app on Yosemite?

    I upgraded to Yosemite and one of the problems I had with Calendar App had something to do with Time Zone.
    I realized that Calendar added California time as default. So now I want to delete the unwanted time zone, but cannot find a way to do so.
    How does one remove or uncheck a time zone in iCal (Mountain Lion)?
    I found this forum and tried, but as the last person who posted said, it doesn't work on Yosemite.
    Does anyone know to delete unwanted timezones from Calendar App on Yosemite?
    Thanks.

    Thank you for your response.
    However, I am not asking about how to change the timezone on Mac. I'm asking about how to delete unwanted timezones on Calendar app.
    Here I have 2 Pacific Time's. They are basically the same, but sometimes my computer choses one of the other without my intention. And when it does, it keeps showing (PST) on next to the starting time which I do not want. In order to avoid that, I'd like to delete "Pacific Time (America/Los_Angeles)". From the link you provided, I'm not finding the solution to this. I might be looking at a wrong spot and if so please be patient to guide me through.
    If my question still doesn't make sense, please click the link to the solution for the same problem on Mountain Lion in my original question. You might understand my question better from it.
    Thank you.

  • Changing TimeZone for Calendar object doesnt change its time

    Hy, I have a Calendar object with I have set with a Date but I I want from this calendar with the Date set, set other timezone for this calendar and get the corresponding time(always gettting the correct time if is in daylightsavings) but I get the same time.
    Calendar calendario = Calendar.getInstance
    calendario.setTime(new Date());
    System.out.println(calendario.getTime()); *// for example I get the 14:12:25 hours for GMT+01:00*
    calendario.setTimeZone(TimeZone.getTimeZone("GMT+02:00")); *//change time zone using GMT*
    System.out.println(calendario.getTime()); *// I get the same hour: 14:12:25*
    Why? How to do it using GMT format?
    Thanks
    Edited by: user13162080 on 13-sep-2011 14:31
    Edited by: user13162080 on 13-sep-2011 14:48

    user13162080 wrote:
    Ok, thanks. The last question, this changing of timezone and the hour I am getting, is respecting the timezone daylight saving?, I mean if the TimeZone I set is in daylight savings, I will get the correct hour according to this?What DrClap said.
    However, I think you still may be under some misapprehension about time zones:
    1. A Date does NOT have a timezone, even though it stores a date/time value.
    2. Setting a Calendar's timezone does NOT change the time stored in the Calendar. You may even need to run its complete() or computeFields() method to have the timezone change reflected in all its fields (not sure).
    3. As DrClap said, if you are using a DateFormat to display the Calendar, you need to set its* timezone in order to see what you want (for reason 2 above).
    It's amazing to me that after 10 years this API still gives so many problems (and believe me, you're not the only one).
    One thing you might also want to do is have a look at [url http://joda-time.sourceforge.net/]Joda Time. It's been around for a long time now, and so is quite mature; and is fully interchangeable with standard Java date/time classes. In fact, many of its ideas were under consideration for Java Version 7 as JSR-310, but were decided against (still not quite sure why, as in my view the current API is very poor).
    Winston

  • Changing timezones shifts calendar events (N93, E6...

    It is commonly accepted that if you arrange a meeting for when you get to New York, you arrange a time for the time zone New York is in, (unless you want to leave your phone at home in England) so why do all the calendar events shift 5 hours automatically when you set your clock to -5 GMT? Has anyone noticed this? Very annoying. I have to ignore the timezone function and simply adjust the clock back a few hours (the phone asks if I have travelled to a different timezone, I have to press NO).

    Let me give an example to explain better.
    If i've arranged a meeting in New York for 1400hrs (and added a calendar event for 1400hrs) and then fly from UK to New York, I would normally change my phone timezone to the local timezone on arrival, so for example, 1300hrs GMT arriving in New York my timezone would slip back 5 hrs to a local time of 0800hrs.
    On opening the phone's calendar, a window then announces that 'time zone changed, calendar entries updated', and hey presto my 1400hrs meeting (and everything else in the calendar) has gone forward 5hrs to 0900hrs.
    The event *should* remain at 1400hrs, not to have shifted just because I have changed the time zone of the phone. My Treo never did this, it's quite annoying.

  • Using the Epoch, TimeZones and Calendars

    I hope someone can help, I've lost the afternoon trying to explain this so I can rely on the java date behaviour
    the following code
             Calendar calendarGB_Eire = Calendar.getInstance(TimeZone.getTimeZone("GB-Eire"));
             Calendar calendarGMT = Calendar.getInstance(TimeZone.getTimeZone("GMT"));
             Date date = new Date(0);
             calendarGMT.setTime(date);
             System.out.println(calendarGMT.get(Calendar.HOUR) + ":" + calendarGMT.get(Calendar.MINUTE));
             calendarGB_Eire.setTime(date);
             System.out.println(calendarGB_Eire.get(Calendar.HOUR) + ":" + calendarGB_Eire.get(Calendar.MINUTE));
             SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy HH:mm:ss");
             sdf.setCalendar(calendarGMT);
             System.out.println("GMT=" + sdf.format(date));
             sdf.setCalendar(calendarGB_Eire);
             System.out.println("GB=" + sdf.format(date));outputs
    0:0
    1:0
    GMT=01/01/1970 00:00:00
    GB=01/01/1970 01:00:00
    See the 1 hour discrepancy?
    On the 1st January the GB timezone is not in DST so should be using GMT hence the Epoch 00:00:00 1/1/1970 should display the same in both calendars. Not so? even if I have misunderstood and it is using the DST setting at the current time it is still wrong as at the time of writing the GB timezone is not in DST.

    KPSeal, outstanding!
    Sorry to say I didn't find that, it would have saved me an afternoon, in case anyone else wanders past with the same issue, here is the explanation of the Java behaviour.
    "During the Second World War, double summer time (2 hours in advance of GMT) was introduced and was used for the period when, normally ordinary summer time would have been in force. During the winter clocks were kept one hour in advance of GMT. After the war, summer time was invoked each year from 1948 to 1967. In 1968 clocks were advanced one hour ahead of GMT on 18 February and remained so until British Standard Time, during which clocks were kept in advance of GMT all year, came into force between 27 October 1968 and 31 October 1971."
    Message was edited by:
    rsommerville

  • Understand timezone in Calendar

    In my web application, I have a post date set up with the client's time zone, for example, "Sat Apr 08 11:56:38 PDT 2006" (server time) with GMT+08:00 (client's time zone). This date data is stored in the DB as "2006-04-07 20:56:38.609-07". That is not right. I can see the DB doesn't take the timezone somehow and use the server one. But, do I use the GregorianCalendar class correctly?

    Thank for your input. I, however, can't totally agree
    your opinions.They're not opinions. They're facts, backed partially by the code I already posted, and more by code I've been dealing with for a couple of years.
    Although I can parse the date & time data by using
    the dateFormat as what you describe, I believe one
    Java API class shall take care it.I don't know what you mean by this, but Calendar is not the appropriate class here.
    The reason I want to preserve the user's time zone is
    for user respective. I can ingore the time zone and
    present the date data with the server machine time
    zone configuration. This approach is not good for a
    user. Some in Europe, for example, wouldn't want to
    the time in the Pacific time zone format.You're not understanding what I'm saying.
    The user tells you his TZ. He has to at some point, else you can't support TZ-specific input and display. You save that with the user profile, not with each date.
    So I register with your site, and I tell you my TZ is GMT-8 (US/Los Angeles).
    Later, you want to record what time something happens. You only need to look at what time it is on the server. You store that Timestamp. When it's time to display that to me--like to display the time I posted a message--you get the timestamp from the DB, and then you format it with a DateFormat whose TZ has been set to "US/Los Angeles" or "PST" or something. It will be displayed correctly.
    If you want to ask me what time something happened, and you're assuming I'll be entering it in my local time, then you take the string I provide--say "2006-04-09 11:04"--then you parse that with a DF that has its TZ set to "PST" or whatever. What you save to the DB is a Timestamp created from the Date you got from the parse().
    By storing a Date or Timestamp, you're not losing TZ information. You're storing the point in time at which something happened, later, when you're ready to display that, you convert that point in time to the relevant TZ. No information is lost.

  • Issues create quick events with GMT timezone in Calendar.

    Hi All,
    I have the following issue. I live The Netherlands but for my work I work with the UK. As they are in GMT and I am in CET I regularly create an event with GMT time in mind.
    I also use Quick Events a lot. So I click on create quick event and I a type i.e. blah blah 9PM GMT. So far so good. So in this case 9PM GMT is 10PM CET.
    However and I am not sure of this, but pretty sure, after the move to summertime the GMT moves two hours ahead. So the event at 9PM GMT now shows as 11PM CET.
    Is anybody else having this issue?

    Thank for your input. I, however, can't totally agree
    your opinions.They're not opinions. They're facts, backed partially by the code I already posted, and more by code I've been dealing with for a couple of years.
    Although I can parse the date & time data by using
    the dateFormat as what you describe, I believe one
    Java API class shall take care it.I don't know what you mean by this, but Calendar is not the appropriate class here.
    The reason I want to preserve the user's time zone is
    for user respective. I can ingore the time zone and
    present the date data with the server machine time
    zone configuration. This approach is not good for a
    user. Some in Europe, for example, wouldn't want to
    the time in the Pacific time zone format.You're not understanding what I'm saying.
    The user tells you his TZ. He has to at some point, else you can't support TZ-specific input and display. You save that with the user profile, not with each date.
    So I register with your site, and I tell you my TZ is GMT-8 (US/Los Angeles).
    Later, you want to record what time something happens. You only need to look at what time it is on the server. You store that Timestamp. When it's time to display that to me--like to display the time I posted a message--you get the timestamp from the DB, and then you format it with a DateFormat whose TZ has been set to "US/Los Angeles" or "PST" or something. It will be displayed correctly.
    If you want to ask me what time something happened, and you're assuming I'll be entering it in my local time, then you take the string I provide--say "2006-04-09 11:04"--then you parse that with a DF that has its TZ set to "PST" or whatever. What you save to the DB is a Timestamp created from the Date you got from the parse().
    By storing a Date or Timestamp, you're not losing TZ information. You're storing the point in time at which something happened, later, when you're ready to display that, you convert that point in time to the relevant TZ. No information is lost.

  • Bug In Java 5 Date/Calendar Timezone Implementation (possibly 6 also)

    Hey All,
    Really been scratching my head over a date issue I've observed for a while now in relation to TimeZone handling in java.
    It first manifested itself as strange behaviour in my Default TimeZone "Europe/Dublin" (ie. GMT with DST)
    e.g:
    System.setProperty("user.timezone", "Europe/Dublin");
    Date epoch=new Date(0);
    System.out.println("Epoch:"+epoch);
    yields:
    Epoch:Thu Jan 01 01:00:00 GMT 1970
    1AM (BUG???????)
    If I set the TZone above to GMT it outputs correctly as
    Epoch:Thu Jan 01 00:00:00 GMT 1970
    As there is no offset from GMT I can only think that DST is being handled incorrectly around the epoch. (even though it is not in DST on Jan 1st)
    So I wrote the following test using calendars to test my theory.
              System.setProperty("user.timezone", "UTC");
              Calendar test=Calendar.getInstance(); //will use the user.timezone
              Calendar test2=Calendar.getInstance(TimeZone.getTimeZone("Europe/Dublin"));
              for (int year=1965;(year<=1975);year++){
                   test.clear();test2.clear();
                   test.set(year, 0, 1, 0, 0, 0);
                   test2.set(year, 0, 1, 0, 0, 0);
                   System.out.println("UTC:"+ test.getTime()+ " --- EU/Dub:"+test2.getTime());
    Which yields the following interestingly inconsistent output (BUG?????)
    UTC:Fri Jan 01 00:00:00 UTC 1965 --- EU/Dub:Fri Jan 01 00:00:00 UTC 1965
    UTC:Sat Jan 01 00:00:00 UTC 1966 --- EU/Dub:Sat Jan 01 00:00:00 UTC 1966
    UTC:Sun Jan 01 00:00:00 UTC 1967 --- EU/Dub:Sun Jan 01 00:00:00 UTC 1967
    UTC:Mon Jan 01 00:00:00 UTC 1968 --- EU/Dub:Mon Jan 01 00:00:00 UTC 1968
    UTC:Wed Jan 01 00:00:00 UTC 1969 --- EU/Dub:Tue Dec 31 23:00:00 UTC 1968
    UTC:Thu Jan 01 00:00:00 UTC 1970 --- EU/Dub:Wed Dec 31 23:00:00 UTC 1969
    UTC:Fri Jan 01 00:00:00 UTC 1971 --- EU/Dub:Thu Dec 31 23:00:00 UTC 1970
    UTC:Sat Jan 01 00:00:00 UTC 1972 --- EU/Dub:Sat Jan 01 00:00:00 UTC 1972
    UTC:Mon Jan 01 00:00:00 UTC 1973 --- EU/Dub:Mon Jan 01 00:00:00 UTC 1973
    UTC:Tue Jan 01 00:00:00 UTC 1974 --- EU/Dub:Tue Jan 01 00:00:00 UTC 1974
    UTC:Wed Jan 01 00:00:00 UTC 1975 --- EU/Dub:Wed Jan 01 00:00:00 UTC 1975
    Strange - ehh? 1969->1971 all have issues with the Jan 1st date!!!!
    In fact theres issues for every day that DST is not in operation on these years... (BUG????)
    I'm part of a project that will be handling data from all Timezones and as such we have chosen
    to use UTC as our server time. We are now quite concerned what other bugs/strange behaviours
    lurk beneath the surface of the java implementation.
    Note we have tested various JDK's and they seem to be consistently inconsistent!
    If anyone can confrim this bug/issue or shed any light it would be most appreciated,
    G.

    miniman wrote:
    As there is no offset from GMT I can only think that DST is being handled incorrectly around the epoch. (even though it is not in DST on Jan 1st)Well, in the UK, DST was in effect on 1970 Jan 01. I wouldn't be surprised to find that the same applied in Ireland.

  • I want the example code for Calendar() and TimeZone() in java

    Hi,
    I want the example code for the TimeZone() and Calendar() class in java
    because i new to java, i am not able to understand the concepts properly.
    Thanks...

    Hi Paolo Dema.
    What are the exact spefications of your computer?
    Also did you computer come with 10.6 ot 10.5?.
    You may try entering the MPN (marketing part number) Format: M*****/**
    The MPN can be found on the product packaging or the System Profiler.

  • How to set Timezone in a date object

    Hi,
    I need to write a method setTimeZone(Date d,TimeZone t) which should take a Java.util.Date and a Timezone object and set the time zone to the date object.
    for example...
    Date d=new Date();
    TimeZone tz=TimeZone.getTimeZone("PST");
    //should print the timezone as EDT because the current system timezone is EDT
    System.out.println(d);
    setTimeZone(d,tz);
    //should print the timezone as PST
    System.out.println(d);
    public void setTimeZone(Date d,TimeZone tz){
    Calendar c=Calendar.getInstance(tz);
    c.setTime(d);
    c.setTimeZone(tz);
    d=c.getTime();
    System.out.println("Timezone in calendar is "+c.getTimeZone().getDisplayName());
    But today is still showing up EDT timezone and Timezone in calendar is shown as PST.The new timzone is not aplied to date object @ d=c.getTime();
    statement.
    Could any one please help me...
    Edited by: mchepuri on Apr 10, 2009 7:27 PM
    Edited by: mchepuri on Apr 10, 2009 7:29 PM

    Dates don't have any concept of time zones. Think of a Date as a wrapper for a long.
    Use SimpleDateFormat. Read the javadocs for some useful methods.

  • Problem in getting the Date object based on the TimeZone

    Hi,
    I need to create a Date object that holds the time of the specified TimeZone.
    I am using TimeZone and Calendar object for that, but when I call the Calendar object's getTime() method, it returns
    a Date object that holds the local time.
    Can somebody let me know what why?
    Here is what I uses in my code.
    TimeZone tz = TimeZone.getTimeZone("IST");
    Calendar cal = new GregorianCalendar(tz);
    System.out.println("Date of "IST" TimeZone = " + cal.getTime());
    Instead of cal.getTime, if I do the following I am getting the values correctly.
    int month = cal.get(Calendar.MONTH); // 0..11
    int day = cal.get(Calendar.DATE); // 0..11
    int hour12 = cal.get(Calendar.HOUR); // 0..11
    int minutes = cal.get(Calendar.MINUTE); // 0..59
    Can somebody let me know why I am not able to assign the Date of the TimeZone specified.
    Is there anything wrong with the code?
    Seb

    Is there anything wrong with the code?No, only with your understanding of the Date class. From the API:
    The class Date represents a specific instant in time, with millisecond precision.
    The different time displayed for different TimeZones around the world are just that: a display format for the same instant in time.
    To display the "instant in time" in a different TimeZone, use DateFormat. Here's a small sample:TimeZone tz = TimeZone.getTimeZone ("GMT");
    Calendar c = Calendar.getInstance (tz);
    System.out.println(c.getTime ()); // prints Tue Mar 18 02:56:53 IST 2008
    DateFormat dtf = DateFormat.getTimeInstance ();
    dtf.setTimeZone (tz);
    System.out.println(dtf.format (c.getTime ())); // prints 9:26:53 PMIt's no different from formatting the same number in various ways: 10 decimal == 0xA hexadecimal == 012 octal == 1010 binary. Same value, different representation. Same intant in time, different local time for each zone.
    Savvy?
    cheers, db

  • Java Calendar problem

    Hello
    I have problems with Java Calendar class:
    Problem 1:
    I try to set Java calendar to specific date, but an exception is thrown. Problematic dates are 19210501 and 19420403 (yyyymmdd) at midnight (hour of day = 0, minutes = 0, seconds = 0, milliseconds = 0). Setting other dates between 15000101 and 22000101 work OK. Exception is thrown when calendar calculates new values. Note that exception is NOT thrown if I do not set hour / minute / second fields!
    Problem 2:
    I set Java calendar to specific date A and convert that date to timeInMillis. Then I set this timeInMillis to calendar and convert it to date B. For certain dates A != B. Problematic dates are 19210501 and 19420403 (yyyymmdd) at midnight (hour of day = 0, minutes = 0, seconds = 0, milliseconds = 0). Setting other dates between 15000101 and 22000101 work OK.
    These problems occur if timeZone = "Europe/Helsinki". Problem does not occur if timeZone = "EET" or "GMT".
    Example code of this problem is below:
    ==================
    package z_javaexperiments5;
    import java.util.Calendar;
    import java.util.TimeZone;
    public class CalendarProblem {
    public static void main(String[] args) {
    CalendarProblem main = new CalendarProblem();
    System.out.println( "RunSetCalendars" );
    TimeZone timeZone = TimeZone.getTimeZone( "GMT" );
    main.runSetCalendars( timeZone, 19420403000000000L );
    main.runSetCalendars( timeZone, 19210501000000000L );
    main.runSetCalendars( timeZone, 19210502000000000L );
    timeZone = TimeZone.getTimeZone( "EET" );
    main.runSetCalendars( timeZone, 19420403000000000L );
    main.runSetCalendars( timeZone, 19210501000000000L );
    main.runSetCalendars( timeZone, 19210502000000000L );
    timeZone = TimeZone.getTimeZone( "Europe/Helsinki" );
    main.runSetCalendars( timeZone, 19420403000000000L );
    main.runSetCalendars( timeZone, 19210501000000000L );
    main.runSetCalendars( timeZone, 19210502000000000L );
    Calendar setCalendar1( TimeZone timeZone, long dateTimeYYYYMMDDHHMMSSsss ) {
    Calendar calendar = Calendar.getInstance(timeZone);
    calendar.clear();
    System.out.println( "setCalendar1 timeZone = " + calendar.getTimeZone().getID());
    int year = (int)( dateTimeYYYYMMDDHHMMSSsss / 10000000000000L );
    int month = (int)(( dateTimeYYYYMMDDHHMMSSsss % 10000000000000L ) / 100000000000L ) - 1;
    int day = (int)(( dateTimeYYYYMMDDHHMMSSsss % 100000000000L ) / 1000000000 );
    int hour = (int)(( dateTimeYYYYMMDDHHMMSSsss % 1000000000 ) / 10000000 );
    int min = (int)(( dateTimeYYYYMMDDHHMMSSsss % 10000000 ) / 100000 );
    int sec = (int)(( dateTimeYYYYMMDDHHMMSSsss % 100000 ) / 1000 );
    int mSec = (int)( dateTimeYYYYMMDDHHMMSSsss % 1000 );
    System.out.println( year + "." + (month+1) + "." + day + " " + hour + ":" + min + ":" + sec + "." + mSec );
    calendar.set( year, month, day );
    calendar.set( Calendar.HOUR_OF_DAY, hour );
    calendar.set( Calendar.MINUTE, min );
    calendar.set( Calendar.SECOND, sec );
    calendar.set( Calendar.MILLISECOND, mSec );
    calendar.setLenient( false ); // Reject illegal values
    try {
    calendar.get( Calendar.SECOND ); // Recalc values
    } catch ( IllegalArgumentException e ) {
    throw new RuntimeException("Invalid argument: Cannot convert long to dateTimeYYYYMMDDHHMMSSsss, long = " + dateTimeYYYYMMDDHHMMSSsss + " Exception message = " + e.getMessage());
    return calendar;
    Calendar setCalendar2( TimeZone timeZone, long dateTimeYYYYMMDDHHMMSSsss ) {
    Calendar calendar = Calendar.getInstance(timeZone);
    System.out.println( "setCalendar2 timeZone = " + calendar.getTimeZone().getID());
    calendar.clear();
    int year = (int)( dateTimeYYYYMMDDHHMMSSsss / 10000000000000L );
    int month = (int)(( dateTimeYYYYMMDDHHMMSSsss % 10000000000000L ) / 100000000000L ) - 1;
    int day = (int)(( dateTimeYYYYMMDDHHMMSSsss % 100000000000L ) / 1000000000 );
    int hour = (int)(( dateTimeYYYYMMDDHHMMSSsss % 1000000000 ) / 10000000 );
    int min = (int)(( dateTimeYYYYMMDDHHMMSSsss % 10000000 ) / 100000 );
    int sec = (int)(( dateTimeYYYYMMDDHHMMSSsss % 100000 ) / 1000 );
    int mSec = (int)( dateTimeYYYYMMDDHHMMSSsss % 1000 );
    System.out.println( "Initial dateTime = " + year + "." + (month+1) + "." + day + " " + hour + ":" + min + ":" + sec + "." + mSec );
    calendar.set( year, month, day );
    if ( hour != 0 )
    calendar.set( Calendar.HOUR_OF_DAY, hour );
    else
    calendar.clear( Calendar.HOUR_OF_DAY );
    if ( min != 0 )
    calendar.set( Calendar.MINUTE, min );
    else
    calendar.clear( Calendar.MINUTE );
    if ( sec != 0 )
    calendar.set( Calendar.SECOND, sec );
    else
    calendar.clear( Calendar.SECOND );
    if ( mSec != 0 )
    calendar.set( Calendar.MILLISECOND, mSec );
    else
    calendar.clear( Calendar.MILLISECOND );
    calendar.setLenient( false ); // Reject illegal values
    try {
    calendar.get( Calendar.SECOND ); // Recalc values
    } catch ( IllegalArgumentException e ) {
    throw new RuntimeException("Invalid argument: Cannot convert long to dateTimeYYYYMMDDHHMMSSsss, long = " + dateTimeYYYYMMDDHHMMSSsss + " Exception message = " + e.getMessage());
    long millis = calendar.getTimeInMillis();
    //System.out.println( "Initial dateTime = " + millis );
    calendar = Calendar.getInstance(timeZone);
    calendar.clear();
    calendar.setTimeInMillis( millis );
    int year2 = calendar.get( Calendar.YEAR );
    int month2 = calendar.get( Calendar.MONTH );
    int day2 = calendar.get( Calendar.DAY_OF_MONTH );
    int hour2 = calendar.get( Calendar.HOUR_OF_DAY );
    int min2 = calendar.get( Calendar.MINUTE );
    int sec2 = calendar.get( Calendar.SECOND );
    int mSec2 = calendar.get( Calendar.MILLISECOND );
    System.out.println( "Final dateTime = " + year2 + "." + (month2+1) + "." + day2 + " " + hour2 + ":" + min2 + ":" + sec2 + "." + mSec2 );
    if (( year != year2 ) || ( month != month2 ) || ( day != day2 ) || ( hour != hour2 ) || ( min != min2 ) || ( sec != sec2 ) || ( mSec != mSec2 ))
    System.out.println( "setCalendar2 failed, dates are not equal" );
    return calendar;
    void runSetCalendars( TimeZone timeZone, long dateTimeYYYYMMDDHHMMSSsss ) {
    System.out.println( "" );
    System.out.println( "runSetCalendars dateTimeYYYYMMDDHHMMSSsss = " + dateTimeYYYYMMDDHHMMSSsss );
    try {
    setCalendar1( timeZone, dateTimeYYYYMMDDHHMMSSsss );
    } catch ( RuntimeException e ) {
    System.out.println( "setCalendar1 failed, dateTimeYYYYMMDDHHMMSSsss = " + dateTimeYYYYMMDDHHMMSSsss + " Exception = " + e.toString());
    Calendar calendar = null;
    try {
    calendar = setCalendar2( timeZone, dateTimeYYYYMMDDHHMMSSsss );
    long timeInMillis = calendar.getTimeInMillis();
    calendar.clear();
    calendar.setTimeInMillis( timeInMillis );
    } catch ( RuntimeException e ) {
    System.out.println( "setCalendar2 failed, dateTimeYYYYMMDDHHMMSSsss = " + dateTimeYYYYMMDDHHMMSSsss + " Exception = " + e.toString());
    ==================
    Program output is below:
    ==================
    RunSetCalendars
    runSetCalendars dateTimeYYYYMMDDHHMMSSsss = 19420403000000000
    setCalendar1 timeZone = GMT
    1942.4.3 0:0:0.0
    setCalendar2 timeZone = GMT
    Initial dateTime = 1942.4.3 0:0:0.0
    Final dateTime = 1942.4.3 0:0:0.0
    runSetCalendars dateTimeYYYYMMDDHHMMSSsss = 19210501000000000
    setCalendar1 timeZone = GMT
    1921.5.1 0:0:0.0
    setCalendar2 timeZone = GMT
    Initial dateTime = 1921.5.1 0:0:0.0
    Final dateTime = 1921.5.1 0:0:0.0
    runSetCalendars dateTimeYYYYMMDDHHMMSSsss = 19210502000000000
    setCalendar1 timeZone = GMT
    1921.5.2 0:0:0.0
    setCalendar2 timeZone = GMT
    Initial dateTime = 1921.5.2 0:0:0.0
    Final dateTime = 1921.5.2 0:0:0.0
    runSetCalendars dateTimeYYYYMMDDHHMMSSsss = 19420403000000000
    setCalendar1 timeZone = EET
    1942.4.3 0:0:0.0
    setCalendar2 timeZone = EET
    Initial dateTime = 1942.4.3 0:0:0.0
    Final dateTime = 1942.4.3 0:0:0.0
    runSetCalendars dateTimeYYYYMMDDHHMMSSsss = 19210501000000000
    setCalendar1 timeZone = EET
    1921.5.1 0:0:0.0
    setCalendar2 timeZone = EET
    Initial dateTime = 1921.5.1 0:0:0.0
    Final dateTime = 1921.5.1 0:0:0.0
    runSetCalendars dateTimeYYYYMMDDHHMMSSsss = 19210502000000000
    setCalendar1 timeZone = EET
    1921.5.2 0:0:0.0
    setCalendar2 timeZone = EET
    Initial dateTime = 1921.5.2 0:0:0.0
    Final dateTime = 1921.5.2 0:0:0.0
    runSetCalendars dateTimeYYYYMMDDHHMMSSsss = 19420403000000000
    setCalendar1 timeZone = Europe/Helsinki
    1942.4.3 0:0:0.0
    setCalendar1 failed, dateTimeYYYYMMDDHHMMSSsss = 19420403000000000 Exception = java.lang.RuntimeException: Invalid argument: Cannot convert long to dateTimeYYYYMMDDHHMMSSsss, long = 19420403000000000 Exception message = HOUR_OF_DAY
    setCalendar2 timeZone = Europe/Helsinki
    Initial dateTime = 1942.4.3 0:0:0.0
    Final dateTime = 1942.4.3 1:0:0.0
    setCalendar2 failed, dates are not equal
    runSetCalendars dateTimeYYYYMMDDHHMMSSsss = 19210501000000000
    setCalendar1 timeZone = Europe/Helsinki
    1921.5.1 0:0:0.0
    setCalendar1 failed, dateTimeYYYYMMDDHHMMSSsss = 19210501000000000 Exception = java.lang.RuntimeException: Invalid argument: Cannot convert long to dateTimeYYYYMMDDHHMMSSsss, long = 19210501000000000 Exception message = MINUTE
    setCalendar2 timeZone = Europe/Helsinki
    Initial dateTime = 1921.5.1 0:0:0.0
    Final dateTime = 1921.5.1 0:20:8.0
    setCalendar2 failed, dates are not equal
    runSetCalendars dateTimeYYYYMMDDHHMMSSsss = 19210502000000000
    setCalendar1 timeZone = Europe/Helsinki
    1921.5.2 0:0:0.0
    setCalendar2 timeZone = Europe/Helsinki
    Initial dateTime = 1921.5.2 0:0:0.0
    Final dateTime = 1921.5.2 0:0:0.0
    ==================
    Why does the program fail when timeZone = "Europe/Helsinki"?

    Could it be related to the time zone changes which occurred at about this time?
    http://www.timeanddate.com/worldclock/clockchange.html?n=101&year=1921

  • Active Sync - No data displayed in Outlook 2013

    Hello,
    We are currently developing Active Sync support for SOGo (www.sogo.nu). Everything works well with Android and iOS based devices but Outlook 2013 doesn't work.
    The FolderSync command works well, but the initial Sync request seems to be ignored by Outlook, as it keeps sending it over and over. Here is the initial FolderSync response:
    <?xml version="1.0" encoding="utf-8"?>
    <!DOCTYPE ActiveSync PUBLIC "-//MICROSOFT//DTD ActiveSync//EN" "http://www.microsoft.com/">
    <FolderSync xmlns="FolderHierarchy:">
      <Status>1</Status>
      <SyncKey>1</SyncKey>
      <Changes>
        <Count>9</Count>
        <Add>
          <ServerId>mail/INBOX</ServerId>
          <ParentId>0</ParentId>
          <Type>2</Type>
          <DisplayName>INBOX</DisplayName>
        </Add>
        <Add>
          <ServerId>mail/Drafts</ServerId>
          <ParentId>0</ParentId>
          <Type>3</Type>
          <DisplayName>Drafts</DisplayName>
        </Add>
        <Add>
          <ServerId>mail/Sent</ServerId>
          <ParentId>0</ParentId>
          <Type>5</Type>
          <DisplayName>Sent</DisplayName>
        </Add>
        <Add>
          <ServerId>mail/Trash</ServerId>
          <ParentId>0</ParentId>
          <Type>4</Type>
          <DisplayName>Trash</DisplayName>
        </Add>
        <Add>
          <ServerId>mail/Aaaaappppp</ServerId>
          <ParentId>0</ParentId>
          <Type>12</Type>
          <DisplayName>Aaaaappppp</DisplayName>
        </Add>
        <Add>
          <ServerId>mail/Shared Folders/bar</ServerId>
          <ParentId>0</ParentId>
          <Type>12</Type>
          <DisplayName>Dossiers partagés/bar</DisplayName>
        </Add>
        <Add>
          <ServerId>vevent/personal</ServerId>
          <ParentId>0</ParentId>
          <Type>8</Type>
          <DisplayName>Personal Calendar</DisplayName>
        </Add>
        <Add>
          <ServerId>vtodo/personal</ServerId>
          <ParentId>0</ParentId>
          <Type>7</Type>
          <DisplayName>Personal Calendar</DisplayName>
        </Add>
        <Add>
          <ServerId>vcard/personal</ServerId>
          <ParentId>0</ParentId>
          <Type>9</Type>
          <DisplayName>Personal Address Book</DisplayName>
        </Add>
      </Changes>
    </FolderSync>
    Here is the initial Sync response:
    <?xml version="1.0" encoding="utf-8"?>
    <!DOCTYPE ActiveSync PUBLIC "-//MICROSOFT//DTD ActiveSync//EN" "http://www.microsoft.com/">
    <Sync xmlns="AirSync:">
      <Collections>
        <Collection>
          <SyncKey>-1</SyncKey>
          <CollectionId>mail/INBOX</CollectionId>
          <Status>1</Status>
        </Collection>
        <Collection>
          <SyncKey>-1</SyncKey>
          <CollectionId>vevent/personal</CollectionId>
          <Status>1</Status>
        </Collection>
        <Collection>
          <SyncKey>-1</SyncKey>
          <CollectionId>vcard/personal</CollectionId>
          <Status>1</Status>
        </Collection>
        <Collection>
          <SyncKey>-1</SyncKey>
          <CollectionId>mail/Trash</CollectionId>
          <Status>1</Status>
        </Collection>
        <Collection>
          <SyncKey>-1</SyncKey>
          <CollectionId>mail/Sent</CollectionId>
          <Status>1</Status>
        </Collection>
        <Collection>
          <SyncKey>-1</SyncKey>
          <CollectionId>vtodo/personal</CollectionId>
          <Status>1</Status>
        </Collection>
        <Collection>
          <SyncKey>-1</SyncKey>
          <CollectionId>mail/Aaaaappppp</CollectionId>
          <Status>1</Status>
        </Collection>
        <Collection>
          <SyncKey>-1</SyncKey>
          <CollectionId>mail/Shared Folders/bar</CollectionId>
          <Status>1</Status>
        </Collection>
      </Collections>
    </Sync>
    After that, here is the other Sync response:
    <?xml version="1.0" encoding="utf-8"?>
    <!DOCTYPE ActiveSync PUBLIC "-//MICROSOFT//DTD ActiveSync//EN" "http://www.microsoft.com/">
    <Sync xmlns="AirSync:">
      <Collections>
        <Collection>
          <SyncKey>127-317</SyncKey>
          <CollectionId>mail/INBOX</CollectionId>
          <Status>1</Status>
          <Commands>
            <Add xmlns="AirSync:">
              <ServerId xmlns="AirSync:">125</ServerId>
              <ApplicationData xmlns="AirSync:">
                <From xmlns="Email:">[email protected]</From>
                <To xmlns="Email:">[email protected]</To>
                <Subject xmlns="Email:">test plain 1</Subject>
                <DateReceived xmlns="Email:">20140114T133337Z</DateReceived>
                <Importance xmlns="Email:">1</Importance>
                <Read xmlns="Email:">1</Read>
                <MessageClass xmlns="Email:">IPM.Note</MessageClass>
                <InternetCPID xmlns="Email:">65001</InternetCPID>
                <Body xmlns="AirSyncBase:">
                  <Type>4</Type>
                  <EstimatedDataSize>772</EstimatedDataSize>
                  <Truncated>0</Truncated>
                  <Data>Return-Path: &lt;[email protected]&gt;
    Received: from sogo.example.com (localhost [127.0.0.1])
             by sogo (Cyrus v2.4.12-Debian-2.4.12-2) with LMTPA;
             Tue, 14 Jan 2014 08:33:37 -0500
    X-Sieve: CMU Sieve 2.4
    Received: from localhost (localhost [127.0.0.1])
            by sogo.example.com (Postfix) with ESMTP id AA70A2801A1
            for &lt;[email protected]&gt;; Tue, 14 Jan 2014 08:33:37 -0500 (EST)
    User-Agent: SOGoMail 2.1.2
    X-Forward: 172.20.20.7
    MIME-Version: 1.0
    from: "Wolfgang Fritz" &lt;[email protected]&gt;
    subject: test plain 1
    message-id: &lt;6a3b-52d53c80-1-61634300@97912150&gt;
    to: "sogo10" &lt;[email protected]&gt;
    content-type: text/plain; charset="utf-8"
    date: Tue, 14 Jan 2014 08:33:37 -0500
    content-transfer-encoding: 7bit
    test plain 1
    </Data>
                </Body>
                <ContentClass xmlns="Email:">urn:content-classes:message</ContentClass>
                <Flag xmlns="Email:">
                  <FlagStatus>0</FlagStatus>
                </Flag>
                <NativeBodyType xmlns="AirSyncBase:">4</NativeBodyType>
              </ApplicationData>
            </Add>
            <Add xmlns="AirSync:">
              <ServerId xmlns="AirSync:">126</ServerId>
              <ApplicationData xmlns="AirSync:">
                <From xmlns="Email:">[email protected]</From>
                <To xmlns="Email:">[email protected]</To>
                <Subject xmlns="Email:">Event Invitation: "test meeting 1"</Subject>
                <DateReceived xmlns="Email:">20140114T151104Z</DateReceived>
                <Importance xmlns="Email:">1</Importance>
                <Read xmlns="Email:">1</Read>
                <MessageClass xmlns="Email:">IPM.Note</MessageClass>
                <InternetCPID xmlns="Email:">65001</InternetCPID>
                <Body xmlns="AirSyncBase:">
                  <Type>4</Type>
                  <EstimatedDataSize>3310</EstimatedDataSize>
                  <Truncated>0</Truncated>
                  <Data>Return-Path: &lt;[email protected]&gt;
    Received: from sogo.example.com (localhost [127.0.0.1])
             by sogo (Cyrus v2.4.12-Debian-2.4.12-2) with LMTPA;
             Tue, 14 Jan 2014 10:11:04 -0500
    X-Sieve: CMU Sieve 2.4
    Received: from localhost (localhost [127.0.0.1])
            by sogo.example.com (Postfix) with ESMTP id 9A0C7280C68
            for &lt;[email protected]&gt;; Tue, 14 Jan 2014 10:11:04 -0500 (EST)
    x-sogo-message-type: calendar:invitation
    MIME-Version: 1.0
    content-type: multipart/mixed; boundary="----=_=-_OpenGroupware_org_NGMime-29284-1389712264.533830-0------"
    date: Tue, 14 Jan 2014 10:11:04 -0500
    from: "Wolfgang Fritz" &lt;[email protected]&gt;
    subject: Event Invitation: "test meeting 1"
    to: "sogo10" &lt;[email protected]&gt;
    Message-Id: &lt;[email protected]&gt;
    ------=_=-_OpenGroupware_org_NGMime-29284-1389712264.533830-0------
    content-type: text/html; charset=utf-8
    &lt;html&gt;
      &lt;head&gt;
        &lt;style type="text/css"&gt;
    .container { max-width: 600px; }
    h1 { font-size: 18px; font-weight: normal; padding-bottom: 9px; border-bottom: 1px solid #ccc; }
    h1 small { font-size: 12px; color: #999; }
    .dl-horizontal dt { float: left; width: 120px; overflow: hidden; clear: left; text-align: right; text-overflow: ellipsis; white-space: nowrap; }
    dt { font-weight: bold; line-height: 17px; }
    dt, dd { font-size: 12px; line-height: 18px; }
    dt { display: block; }
    h1, dd, .dl-list dt { margin-left: 130px; }
        &lt;/style&gt;
      &lt;/head&gt;
      &lt;body&gt;
        &lt;div class="container"&gt;
          &lt;h1&gt;Event Invitation: "test meeting 1"
          &lt;small&gt;Wolfgang Fritz&lt;/small&gt;&lt;/h1&gt;
          &lt;dl class="dl-horizontal"&gt;
            &lt;dt&gt;Start:&lt;/dt&gt;
            &lt;dd&gt;Wednesday, January 15, 2014 - 08:00 America/Montreal
               &lt;/dd&gt;
            &lt;dt&gt;End:&lt;/dt&gt;
            &lt;dd&gt;Wednesday, January 15, 2014 - 09:00 America/Montreal
               &lt;/dd&gt;
          &lt;/dl&gt;
        &lt;/div&gt;
      &lt;/body&gt;
    &lt;/html&gt;
    ------=_=-_OpenGroupware_org_NGMime-29284-1389712264.533830-0------
    content-type: text/calendar; method=REQUEST; charset="ISO-8859-1"
    content-transfer-encoding: quoted-printable
    Content-Class: urn:content-classes:calendarmessage
    BEGIN:VCALENDAR
    PRODID:-//Inverse inc./SOGo 2.1.2//EN
    VERSION:2.0
    METHOD:REQUEST
    BEGIN:VTIMEZONE
    TZID:America/Montreal
    X-LIC-LOCATION:America/Montreal
    BEGIN:DAYLIGHT
    TZOFFSETFROM:-0500
    TZOFFSETTO:-0400
    TZNAME:EDT
    DTSTART:19700308T020000
    RRULE:FREQ=3DYEARLY;BYMONTH=3D3;BYDAY=3D2SU
    END:DAYLIGHT
    BEGIN:STANDARD
    TZOFFSETFROM:-0400
    TZOFFSETTO:-0500
    TZNAME:EST
    DTSTART:19701101T020000
    RRULE:FREQ=3DYEARLY;BYMONTH=3D11;BYDAY=3D1SU
    END:STANDARD
    END:VTIMEZONE
    BEGIN:VEVENT
    UID:7264-52D55380-1-3CD17680
    SUMMARY:test meeting 1
    CLASS:PUBLIC
    ATTENDEE;PARTSTAT=3DNEEDS-ACTION;CN=3Dsogo10;ROLE=3DREQ-PARTICIPANT;RSV=
    P=3DTRUE:mai
     lto:[email protected]
    ORGANIZER;CN=3DWolfgang Fritz:mailto:[email protected]
    CREATED:20140114T151104Z
    DTSTAMP:20140114T151104Z
    LAST-MODIFIED:20140114T151104Z
    DTSTART;TZID=3DAmerica/Montreal:20140115T080000
    DTEND;TZID=3DAmerica/Montreal:20140115T090000
    TRANSP:OPAQUE
    END:VEVENT
    END:VCALENDAR
    ------=_=-_OpenGroupware_org_NGMime-29284-1389712264.533830-0--------
    </Data>
                </Body>
                <ContentClass xmlns="Email:">urn:content-classes:message</ContentClass>
                <Flag xmlns="Email:">
                  <FlagStatus>0</FlagStatus>
                </Flag>
                <NativeBodyType xmlns="AirSyncBase:">4</NativeBodyType>
              </ApplicationData>
            </Add>
          </Commands>
        </Collection>
        <Collection>
          <SyncKey>1390234625</SyncKey>
          <CollectionId>vevent/personal</CollectionId>
          <Status>1</Status>
          <Commands>
            <Add xmlns="AirSync:">
              <ServerId xmlns="AirSync:">1358-52DD4C00-7-1C8F5920.ics</ServerId>
              <ApplicationData xmlns="AirSync:">
                <StartTime xmlns="Calendar:">20140120T130000Z</StartTime>
                <EndTime xmlns="Calendar:">20140120T133000Z</EndTime>
                <TimeZone xmlns="Calendar:">LAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACwGQsAAAABAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQFwMAAAACAAIAAAAAAAAAxP///w==</TimeZone>
                <Organizer_Email xmlns="Calendar:"/>
                <Organizer_Name xmlns="Calendar:"/>
                <Subject xmlns="Calendar:">test meeting 1</Subject>
                <UID xmlns="Calendar:">040000008200E00074C5B7101A82E0080000000050837F27D115CF01000000000000000010000000CDB129B5CE29804CB432AF17CBC48EB5</UID>
                <Sensitivity xmlns="Calendar:">0</Sensitivity>
                <BusyStatus xmlns="Calendar:">0</BusyStatus>
              </ApplicationData>
            </Add>
          </Commands>
        </Collection>
        <Collection>
          <SyncKey>1390234548</SyncKey>
          <CollectionId>vcard/personal</CollectionId>
          <Status>1</Status>
          <Commands>
            <Add xmlns="AirSync:">
              <ServerId xmlns="AirSync:">1358-52DD4B80-5-1C8F5920.vcf</ServerId>
              <ApplicationData xmlns="AirSync:">
                <LastName xmlns="Contacts:">Brocoli</LastName>
                <FirstName xmlns="Contacts:">Annie</FirstName>
              </ApplicationData>
            </Add>
          </Commands>
        </Collection>
        <Collection>
          <SyncKey>214-74</SyncKey>
          <CollectionId>mail/Trash</CollectionId>
          <Status>1</Status>
        </Collection>
        <Collection>
          <SyncKey>104-118</SyncKey>
          <CollectionId>mail/Sent</CollectionId>
          <Status>1</Status>
        </Collection>
        <Collection>
          <SyncKey>1390234625</SyncKey>
          <CollectionId>vtodo/personal</CollectionId>
          <Status>1</Status>
          <Commands>
            <Add xmlns="AirSync:">
              <ServerId xmlns="AirSync:">1358-52DD4B00-1-1C8F5920.ics</ServerId>
              <ApplicationData xmlns="AirSync:">
                <Complete xmlns="Tasks:">0</Complete>
                <DateCompleted xmlns="Tasks:">(null)</DateCompleted>
                <Importance xmlns="Tasks:">1</Importance>
                <ReminderSet xmlns="Tasks:">0</ReminderSet>
                <Sensitivity xmlns="Tasks:">0</Sensitivity>
                <Subject xmlns="Tasks:">test 2</Subject>
              </ApplicationData>
            </Add>
          </Commands>
        </Collection>
        <Collection>
          <SyncKey>1-1</SyncKey>
          <CollectionId>mail/Aaaaappppp</CollectionId>
          <Status>1</Status>
        </Collection>
        <Collection>
          <SyncKey>1-1</SyncKey>
          <CollectionId>mail/Shared Folders/bar</CollectionId>
          <Status>1</Status>
        </Collection>
      </Collections>
    </Sync>
    As you can see, there are 2 mails, 1 event and 1 contact.
    Can anyone tell me what could be wrong in our response which could lead Outlook 2013 to reject it?
    Thanks,

    I enabled logging in Outlook 2010 and here is a the failure trying to synchronize one single mail:
    - <eas>
      <Url>https://sogoludo.inverse.ca/Microsoft-Server-ActiveSync?Cmd=Sync&User=sogo10&DeviceId=E820059D81C44570ADE521CE7B1E1494&DeviceType=WindowsOutlook15</Url> 
      <Method>POST</Method> 
      <Username>sogo10</Username> 
    - <request>
      <headers>Accept-Encoding: gzip, deflate Content-Type: application/vnd.ms-sync.wbxml MS-ASProtocolVersion: 14.0 X-MS-WL: Outlook/1.0 X-TransactionID: {5B6DFE82-0F0F-4703-8647-81BD1E7E193B}</headers> 
    - <a0_Sync>
    - <a0_Collections>
    - <a0_Collection>
      <a0_SyncKey>131-337</a0_SyncKey> 
      <a0_CollectionId>mail/INBOX</a0_CollectionId> 
      <a0_DeletesAsMoves>0</a0_DeletesAsMoves> 
      <a0_WindowSize>512</a0_WindowSize> 
    - <a0_Options>
      <a0_FilterType>5</a0_FilterType> 
      <a0_MimeSupport>2</a0_MimeSupport> 
      <a0_MimeTruncation>8</a0_MimeTruncation> 
    - <a17_BodyPreference>
      <a17_BodyType>4</a17_BodyType> 
      <a17_AllOrNone>1</a17_AllOrNone> 
      </a17_BodyPreference>
      </a0_Options>
      </a0_Collection>
    - <a0_Collection>
      <a0_SyncKey>1390353472</a0_SyncKey> 
      <a0_CollectionId>vevent/personal</a0_CollectionId> 
      <a0_DeletesAsMoves>0</a0_DeletesAsMoves> 
      <a0_WindowSize>512</a0_WindowSize> 
    - <a0_Options>
      <a0_FilterType>0</a0_FilterType> 
    - <a17_BodyPreference>
      <a17_BodyType>1</a17_BodyType> 
      <a17_AllOrNone>1</a17_AllOrNone> 
      </a17_BodyPreference>
      </a0_Options>
      </a0_Collection>
    - <a0_Collection>
      <a0_SyncKey>1390353298</a0_SyncKey> 
      <a0_CollectionId>vcard/personal</a0_CollectionId> 
      <a0_DeletesAsMoves>0</a0_DeletesAsMoves> 
      <a0_WindowSize>512</a0_WindowSize> 
    - <a0_Options>
      <a0_FilterType>0</a0_FilterType> 
    - <a17_BodyPreference>
      <a17_BodyType>1</a17_BodyType> 
      <a17_AllOrNone>1</a17_AllOrNone> 
      </a17_BodyPreference>
      </a0_Options>
      </a0_Collection>
    - <a0_Collection>
      <a0_SyncKey>222-86</a0_SyncKey> 
      <a0_CollectionId>mail/Trash</a0_CollectionId> 
      <a0_DeletesAsMoves>0</a0_DeletesAsMoves> 
      <a0_WindowSize>512</a0_WindowSize> 
    - <a0_Options>
      <a0_FilterType>5</a0_FilterType> 
      <a0_MimeSupport>2</a0_MimeSupport> 
      <a0_MimeTruncation>8</a0_MimeTruncation> 
    - <a17_BodyPreference>
      <a17_BodyType>4</a17_BodyType> 
      <a17_AllOrNone>1</a17_AllOrNone> 
      </a17_BodyPreference>
      </a0_Options>
      </a0_Collection>
    - <a0_Collection>
      <a0_SyncKey>106-122</a0_SyncKey> 
      <a0_CollectionId>mail/Sent</a0_CollectionId> 
      <a0_DeletesAsMoves>0</a0_DeletesAsMoves> 
      <a0_WindowSize>512</a0_WindowSize> 
    - <a0_Options>
      <a0_FilterType>5</a0_FilterType> 
      <a0_MimeSupport>2</a0_MimeSupport> 
      <a0_MimeTruncation>8</a0_MimeTruncation> 
    - <a17_BodyPreference>
      <a17_BodyType>4</a17_BodyType> 
      <a17_AllOrNone>1</a17_AllOrNone> 
      </a17_BodyPreference>
      </a0_Options>
      </a0_Collection>
    - <a0_Collection>
      <a0_SyncKey>1390353472</a0_SyncKey> 
      <a0_CollectionId>vtodo/personal</a0_CollectionId> 
      <a0_DeletesAsMoves>0</a0_DeletesAsMoves> 
      <a0_WindowSize>512</a0_WindowSize> 
    - <a0_Options>
      <a0_FilterType>0</a0_FilterType> 
    - <a17_BodyPreference>
      <a17_BodyType>1</a17_BodyType> 
      <a17_AllOrNone>1</a17_AllOrNone> 
      </a17_BodyPreference>
      </a0_Options>
      </a0_Collection>
      </a0_Collections>
      <a0_WindowSize>32</a0_WindowSize> 
      </a0_Sync>
      </request>
    - <response>
      <headers>: HTTP/1.1 200 OK Connection: Keep-Alive Content-Length: 1192 Content-Type: application/vnd.ms-sync.wbxml Date: Wed, 22 Jan 2014 01:27:42 GMT Keep-Alive: timeout=5, max=60 MS-ASProtocolCommands: Sync,SendMail,SmartForward,SmartReply,GetAttachment,GetHierarchy,CreateCollection,DeleteCollection,MoveCollection,FolderSync,FolderCreate,FolderDelete,FolderUpdate,MoveItems,GetItemEstimate,MeetingResponse,Search,Settings,Ping,ItemOperations,Provision,ResolveRecipients,ValidateCert
    MS-ASProtocolVersions: 2.0,2.1,2.5,12.0,12.1,14.0,14.1 MS-Server-ActiveSync: 14.0</headers> 
    - <a0_Sync>
    - <a0_Collections>
    - <a0_Collection>
      <a0_Class>Email</a0_Class> 
      <a0_SyncKey>132-338</a0_SyncKey> 
      <a0_CollectionId>mail/INBOX</a0_CollectionId> 
      <a0_Status>1</a0_Status> 
    - <a0_Commands>
    - <a0_Add>
      <a0_ServerId>131</a0_ServerId> 
    - <a0_ApplicationData>
      <a2_From>[email protected]</a2_From> 
      <a2_To>[email protected]</a2_To> 
      <a2_Subject>test plain text</a2_Subject> 
      <a2_DateReceived>20140122T012742Z</a2_DateReceived> 
      <a2_Importance>1</a2_Importance> 
      <a2_Read>0</a2_Read> 
      <a2_MessageClass>IPM.Note</a2_MessageClass> 
      <a2_InternetCPID>65001</a2_InternetCPID> 
    - <a17_Body>
      <a17_BodyType>4</a17_BodyType> 
      <a17_EstimatedDataSize>770</a17_EstimatedDataSize> 
      <a17_Truncated>0</a17_Truncated> 
      <a17_Data>Return-Path: <[email protected]> Received: from sogo.example.com (localhost [127.0.0.1]) by sogo (Cyrus v2.4.12-Debian-2.4.12-2) with LMTPA; Tue, 21 Jan 2014 20:27:42 -0500 X-Sieve: CMU Sieve 2.4 Received: from localhost (localhost
    [127.0.0.1]) by sogo.example.com (Postfix) with ESMTP id 596562808E3 for <[email protected]>; Tue, 21 Jan 2014 20:27:42 -0500 (EST) User-Agent: SOGoMail 2.1.2 X-Forward: 172.21.0.10 MIME-Version: 1.0 from: "Wolfgang Fritz" <[email protected]>
    subject: test plain text message-id: <7240-52df1e80-3-34827b00@260596697> to: "sogo10" <[email protected]> content-type: text/plain; charset="utf-8" date: Tue, 21 Jan 2014 20:27:42 -0500 content-transfer-encoding: 7bit test 1</a17_Data> 
      </a17_Body>
      <a2_ContentClass>urn:content-classes:message</a2_ContentClass> 
    - <a2_Flag>
      <a2_FlagStatus>0</a2_FlagStatus> 
      </a2_Flag>
      <a17_NativeBodyType>4</a17_NativeBodyType> 
      </a0_ApplicationData>
      </a0_Add>
      </a0_Commands>
      </a0_Collection>
    - <a0_Collection>
      <a0_Class>Calendar</a0_Class> 
      <a0_SyncKey>1390353472</a0_SyncKey> 
      <a0_CollectionId>vevent/personal</a0_CollectionId> 
      <a0_Status>1</a0_Status> 
      </a0_Collection>
    - <a0_Collection>
      <a0_Class>Contacts</a0_Class> 
      <a0_SyncKey>1390353298</a0_SyncKey> 
      <a0_CollectionId>vcard/personal</a0_CollectionId> 
      <a0_Status>1</a0_Status> 
      </a0_Collection>
    - <a0_Collection>
      <a0_Class>Email</a0_Class> 
      <a0_SyncKey>222-86</a0_SyncKey> 
      <a0_CollectionId>mail/Trash</a0_CollectionId> 
      <a0_Status>1</a0_Status> 
      </a0_Collection>
    - <a0_Collection>
      <a0_Class>Email</a0_Class> 
      <a0_SyncKey>106-122</a0_SyncKey> 
      <a0_CollectionId>mail/Sent</a0_CollectionId> 
      <a0_Status>1</a0_Status> 
      </a0_Collection>
    - <a0_Collection>
      <a0_Class>Tasks</a0_Class> 
      <a0_SyncKey>1390353472</a0_SyncKey> 
      <a0_CollectionId>vtodo/personal</a0_CollectionId> 
      <a0_Status>1</a0_Status> 
      </a0_Collection>
      </a0_Collections>
      </a0_Sync>
      </response>
      </eas>

Maybe you are looking for

  • NQSError: 59007 in OBIEE 11.1.1.5.0 after upgrade from OBIEE 10.1.3.4.1

    Hi All, We have successfully up-grade Obiee 10.1.3.4.1 to Obiee 11.1.1.5.0. After upgrade we found below error for few reports in 11g. Error Codes: OPR4ONWY:U9IM8TAC:OI2DL65P *State: HY000. Code: 10058. [NQODBC] [SQL_STATE: HY000] [nQSError: 10058] A

  • Stored procedure for checking Invoice value if more than R 15 000

    Hi All I have a problem with my stored procedure below, i want to check the doctotal if it above R 15 000 , if it is then it checks if the supplier has a tax clearance cert. IF @transaction_type = 'A' AND @object_type = '22' BEGIN If exists (SELECT T

  • How can I remove the background behind my selected graphic?

    I have a logo that has a rectangular background behind it; I want just the logo itself. How do I get the odd shaped logo only off the rectangle? This was not created with AI, I don't know what program was used. I can't just ungroup. I am learning thi

  • Displaying unicode chars in title of jdialog

    hello, I am developing application that has several dialogs. For each of these dialogs, I would like to display unicode characters in the title. Can some one please help me out and direct me on what I should to do make this work? All other controls o

  • JRC  R2 and JDK Versions

    <p>Hi,</p><p>I use Crystal Report XI R2 JRC on a Web App. </p><p>My application works fine (included all actions with the crystal viewer) with this configuration : </p><p>    -Application Server : WAS Express 5.0 </p><p>    - OS : Windows </p><p>