Pregunta

Can someone explain how to use EXDATE when adding event to android calendar? The documentation is pretty unclear about the format in which the EXDATE should be put. I tried many formats, these are some of them:

values.put(Events.EXDATE, "TZID=Europe/London:20130116T080000");
values.put(Events.EXDATE, "20130116T080000Z");
values.put(Events.EXDATE, "20130116T080000");
values.put(Events.EXDATE, "20130116");

but none of them works. Any idea how to make an event not appear on a particular date, if by the RRULE it should appear?

¿Fue útil?

Solución

The correct format is:

values.put(Events.EXDATE, "20130116T080000Z");

However you must ensure that it is in UTC time. I was having the same problem starting from PST, so I just had to add 8 hours to get it to work.

Otros consejos

In addition to the @kee23's answer, the next variant is valid for multiple EXDATE values:

contentValues.put(CalendarContract.Events.EXDATE, "20130116T080000Z,20130118T080000Z");

I'm adding on top of @kee23's excellent and correct answer:

I just got aware that in android, you can not persist EXDATEs to an event with endless recurrences, say RRULE:FREQ=DAILY. You need to limit the occurrences, as in RRULE:FREQ=DAILY;COUNT=600.

This is not documented by google and there is no error message if you try to persist endless recurrences with EXDATEs. It just silently dropped RRULE and DURATION in my case.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top