When I create a recurrent event with the following code, I manage to create the event, which is recurrent, on my Nokia N95 8Gb (SW Version V20.0.016).
The issue comes when I try to synchronize the calendar with this brand new recurrent event with PC Suite (I use I get an error message like "La vue Calendrier n'a pas pu lire les entrées de votre périphérique", which is the french version for "cannot read event etries from your device", I guess.

I extracted this which I think is the minimal code to get this error message. I get it only with recurrent events, and the phone manages to handle the event. Is this a PC Suite bug or should I add some parameters when creating the event ?


package gaggou;

import java.util.Calendar;
import java.util.Date;
import javax.microedition.lcdui.Display;
import javax.microedition.lcdui.Form;
import javax.microedition.lcdui.Item;
import javax.microedition.lcdui.StringItem;
import javax.microedition.midlet.*;
import javax.microedition.pim.Event;
import javax.microedition.pim.EventList;
import javax.microedition.pim.PIM;
import javax.microedition.pim.PIMItem;
import javax.microedition.pim.RepeatRule;

public class eventKiller extends MIDlet {

    public void startApp() {
        String text = "All OK";
        EventList events = null;
        Date aDate = Calendar.getInstance().getTime();
        try {
            events = (EventList) PIM.getInstance().openPIMList(PIM.EVENT_LIST, PIM.READ_WRITE);
            Event event = events.createEvent();
            if (events.isSupportedField(Event.SUMMARY)) {
                event.addString(Event.SUMMARY, PIMItem.ATTR_NONE, "Meeting with John");
            text += "summary OK\n";
            if (events.isSupportedField(Event.START)) {
                event.addDate(Event.START, PIMItem.ATTR_NONE, aDate.getTime());
            text += "Start OK\n";
            if (events.isSupportedField(Event.END)) {
                event.addDate(Event.END, PIMItem.ATTR_NONE, aDate.getTime() + 60000);
            text += "End OK\n";
            if (events.isSupportedField(Event.NOTE)) {
                event.addString(Event.NOTE, PIMItem.ATTR_NONE, "I phoned on Monday to book this meeting");
            text += "Note  OK\n";
            RepeatRule repeatRule = new RepeatRule();
            repeatRule.setInt(RepeatRule.FREQUENCY, RepeatRule.WEEKLY);
            text += "Recurrence  OK\n";

            text += "Commit  OK\n";

        } catch (Exception e) {
            text += e.getMessage();

        Display.getDisplay(this).setCurrent(new Form("Welcome", new Item[]{new StringItem("Result : ", text)}));

    public void pauseApp() {

    public void destroyApp(boolean unconditional) {