I have pasted below my ics file for a recurring event, It is a weekly recurring event, this recurs on monday, tuesday, wednesday. I checked the syntax, It seems to be fine. Is there anything wrong in this.
BEGIN:VCALENDAR
PRODID;X-RICAL-TZSOURCE=TZINFO:-//com.denhaven2/NONSGML ri_cal gem//EN
CALSCALE:GREGORIAN
VERSION:2.0
METHOD:REQUEST
BEGIN:VEVENT
CREATED;VALUE=DATE-TIME:20111106T175719Z
DTEND;VALUE=DATE-TIME:20111110T183000Z
STATUS:CONFIRMED
DTSTART;VALUE=DATE-TIME:20111110T160000Z
TRANSP:OPAQUE
DTSTAMP;VALUE=DATE-TIME:20111106T175719Z
LAST-MODIFIED;VALUE=DATE-TIME:20111106T175719Z
UID:availability_slot330#xyz.com
DESCRIPTION:Availability slot from mentoring program
SUMMARY:Mentoring Slot
ORGANIZER:iitm_mentor2#xyz.com
RRULE;BYDAY=MO,TU,WE;WKST=MO:FREQ=WEEKLY
EXRULE:FREQ=WEEKLY;BYDAY=SA,SU
LOCATION:Church park
SEQUENCE:0
END:VEVENT
END:VCALENDAR
What have you done to assess whether something is wrong?
What errors have you experienced?
Did you validate it ?
http://severinghaus.org/projects/icv/
have you tried to load into any ical clients (google calendar,outllok, thunderbird etc) - what do they do?
Have you checked against the spec for examples:
http://www.rfc-editor.org/rfc/rfc5545.txt
has examples like this
RRULE:FREQ=YEARLY;BYMONTH=4;BYDAY=-1SU;UNTIL=19730429T070000Z
Possibly the weekly should follow the RRULE immediately
your exrule should be superfluous if BYDAY is there.
Related
Can you please give me an advice, what is the correct property name with value (if there any is) for .ics file to display Out of Office status/event type in Google calendar ?
Based on Google calendar API here, there is just attribute "eventType" with values and it does not work.
This is .ics file example with "eventType" attribute in:
BEGIN:VCALENDAR
VERSION:2.0
PRODID:-//Client Events//NONSGML Client Events//EN
URL: https://portal.com/
REFRESH-INTERVAL;VALUE=DURATION:PT12H
X-PUBLISHED-TTL:PT12H
CALSCALE:GREGORIAN
METHOD:REQUEST
BEGIN:VEVENT
CLASS:PUBLIC
SEQUENCE:1
ORGANIZER:info#email.com
CREATED:20220504T070932Z
DTSTAMP:20220504T070932Z
DTSTART:20220520T130000Z
DTEND:20220520T143000Z
SUMMARY:Vacation
LOCATION:TULIP
DESCRIPTION:I am on vacation. \n\n\n
UID:AttendanceRequestIfddf97981654254D33260#https://portal.com/
EVENTTYPE:OUTOFOFFICE
STATUS:CONFIRMED
END:VEVENT
END:VCALENDAR
Thank you.
I have a ICS feed for a calendar, that I subscribe from Google calendar.
As soon as I add the feed, it shows all the events perfectly. But when I edit events, it doesn't update. So it seems like it can read the feed, but doesn't sync it.
If I remove the feed and add it again, its still not synced. But if I add a parameter to the url (ex. &x=1), it will import the updates, but still not sync. So it seems like Google is caching the feed pr. url, but doesn't sync after the url has been added.
Anyone else had this issue, or know a solution?
SOLUTION UPDATE: 12/03 - 2020
I missed the fields "SEQUENCE" and "LAST-MODIFIED". Credits to #anmari for spotting the error.
The calendar now syncs perfectly with Google.
Example from the ICS file:
BEGIN:VCALENDAR
VERSION:2.0
PRODID:-//ZContent.net//Zap Calendar 1.0//EN
CALSCALE:GREGORIAN
METHOD:PUBLISH
BEGIN:VEVENT
SUMMARY:Gudstjeneste - prædiken ved Enok Sørensen
UID:1177
DTSTART:20190915T073000Z
DTEND:20190915T103000Z
DTSTAMP:20190907T164050Z
LAST-MODIFIED:20200311T195313Z
SEQUENCE:2
LOCATION:Nørregade 13, 6900 Skjern
URL:https://www.lm-kirken.dk/kalender/gudstjeneste-15-09/
END:VEVENT
BEGIN:VEVENT
SUMMARY:Fredagsfællesskab
UID:1248
DTSTART:20190920T153000Z
DTEND:20190920T180000Z
DTSTAMP:20190909T201436Z
LAST-MODIFIED:20200312T062507Z
SEQUENCE:1
LOCATION:Nørregade 13, 6900 Skjern
URL:https://www.lm-kirken.dk/kalender/fredagsfaellesskab-20-09/
END:VEVENT
BEGIN:VEVENT
SUMMARY:Gudstjeneste - prædiken ved Leif Bach Kofoed
UID:1214
DTSTART:20190929T083000Z
DTEND:20190929T103000Z
DTSTAMP:20190909T185328Z
LAST-MODIFIED:20200311T210357Z
SEQUENCE:1
LOCATION:Nørregade 13, 6900 Skjern
URL:https://www.lm-kirken.dk/kalender/gudstjeneste-29-9/
END:VEVENT
END:VCALENDAR
Bjorn
to tell any calendar application that an event has been updated (so that it will sync it) one needs fields to be updated for the event that is being modified, and add:
LAST-MODIFIED:19960817T133000Z
SEQUENCE:1 (of update)
See also
ics event update failed in web calendar
and
Icalendar ICS update not working in google calendar
and the specification
https://www.rfc-editor.org/rfc/rfc5545#section-3.8.7.4
I'm trying to add recurring events to my personal calendar via .ics, The client imports and adds the first event to the calendar but doesn't create other repeating events.
I'm actually creating a recurring event which happens daily, below is the sample of my .ics file.
BEGIN:VCALENDAR
PRODID;X-RICAL-TZSOURCE=TZINFO:-//com.denhaven2/NONSGML ri_cal gem//EN
CALSCALE:GREGORIAN
VERSION:2.0
METHOD:REQUEST
BEGIN:VEVENT
CREATED;VALUE=DATE-TIME:20111103T182116Z
DTEND;VALUE=DATE-TIME:20111104T130000Z
STATUS:CONFIRMED
DTSTART;VALUE=DATE-TIME:20111104T103000Z
TRANSP:OPAQUE
DTSTAMP;VALUE=DATE-TIME:20111103T182116Z
LAST-MODIFIED;VALUE=DATE-TIME:20111103T182116Z
UID:availability_slot42#chronus.com
DESCRIPTION:Availability slot from mentoring program
SUMMARY:Mentoring Slot
ORGANIZER:iitm_mentor3#chronus.com
RRULE:FREQ=DAILY;WKST=MO;
EXRULE:FREQ=WEEKLY;BYDAY=SA,SU
LOCATION:Daily withoiut until
SEQUENCE:0
END:VEVENT
END:VCALENDAR
looks like the problem is with the client s/w, not your ics file.
Your code above validates at http://severinghaus.org/projects/icv/
and loads and recurs fine in google calendar.
see https://www.google.com/calendar/embed?src=jpkdu09olie8uveopl72oguj2s%40group.calendar.google.com&ctz=Australia/Sydney
Cross test on some more other calendar clients to verify.
We are working on an asp.net 2.0 web app that emails users an ical to save to their outlook 2003 calendar. We noticed none of the code to update or delete an item seem to work even though the ical 2.0 spec supports it. We are curious if Outlook 2003 just ignores this? Does Outlook 2007 act differently?
We have situations where an event may change or be cancelled which fires off an email notification but the updated ical just adds a new event, it nevers deletes and or moves the original....
Are we missing something?
We have been able to get it to delete a message now.... but not update the way we thought it would....
to setup a meeting we send...
BEGIN:VCALENDAR
VERSION:2.0
METHOD:PUBLISH
BEGIN:VEVENT
CLASS:PUBLIC
PRIORITY:5
SEQUENCE:0
UID:12345
SUMMARY:test
LOCATION:test
DTSTART:20090709T230000Z
DTEND:20090710T000000Z
DTSTAMP:20090713T164634Z
DESCRIPTION:test
END:VEVENT
END:VCALENDAR
to delete we send a message by just changing the method to cancel like so:
BEGIN:VCALENDAR
VERSION:2.0
METHOD:CANCEL
BEGIN:VEVENT
CLASS:PUBLIC
PRIORITY:5
SEQUENCE:0
UID:12345
SUMMARY:test
LOCATION:test
DTSTART:20090709T230000Z
DTEND:20090710T000000Z
DTSTAMP:20090713T164634Z
DESCRIPTION:test
END:VEVENT
END:VCALENDAR
Our original issue with the deleting is we had a blank organizer line. We removed that and canceling worked....
As for updating an original publish like in the first line, we have been unable to. We have increased the sequence # from zero to 1 and it just adds a new meeting. We are using the same UID number which in our testing is just 12345.
The only way I have found to do this is to create an organizer and change from publish to a request type.
In reading the rfc2445 this seems to be how it's designed. Publish will always create a new record and sequence doesn't matter. When sequence matters is with an organizer and request method....
I also found this answer after my testing and reading on stackoverflow here:
ICalendar and event updates not working in Outlook
Duh for me not seeing that earlier.... :)
Here's a sample:
BEGIN:VCALENDAR
VERSION:2.0
METHOD:REQUEST
BEGIN:VEVENT
CLASS:PUBLIC
DTEND:20090713T203000Z
DTSTAMP:20090713T174434Z
DTSTART:20090713T200000Z
ORGANIZER;CN="No one special";mailto:dontemailme#email.com
PRIORITY:5
SEQUENCE:0
SUMMARY: Lunch?
UID:1234567
END:VEVENT
END:VCALENDAR
And to update it...
BEGIN:VCALENDAR
VERSION:2.0
METHOD:REQUEST
BEGIN:VEVENT
CLASS:PUBLIC
DTEND:20090713T213000Z
DTSTAMP:20090713T174434Z
DTSTART:20090713T210000Z
ORGANIZER;CN="No one special";mailto:dontemailme#email.com
PRIORITY:5
SEQUENCE:1
SUMMARY: Lunch?
UID:1234567
END:VEVENT
END:VCALENDAR
And to cancel it....
BEGIN:VCALENDAR
VERSION:2.0
METHOD:CANCEL
BEGIN:VEVENT
CLASS:PUBLIC
DTEND:20090713T213000Z
DTSTAMP:20090713T174434Z
DTSTART:20090713T210000Z
ORGANIZER;CN="No one special";mailto:dontemailme#email.com
PRIORITY:5
SEQUENCE:1
SUMMARY: Lunch?
UID:1234567
END:VEVENT
END:VCALENDAR
The sequence # doesn't matter for the cancelling....
I'd have to say my experiences with Outlook 2007 are the same as yours with Outlook 2003 .. it totally ignores PUBLISH..
The best way i've come around this is to use the meeting as an attachment.. that way you can open it, 'make it your own' and make use of Tracking and send out updates to attendee's ..
I don't think Microsoft is interested in playing nice with standards here..
I have a need to allow for a user to download an event that has multiple meeting dates. To do this I have created a memorystream to be downloaded which produces a .ics file. For example:
BEGIN:VCALENDAR
PRODID:-//Company//Product//EN
VERSION:2.0
METHOD:PUBLISH
BEGIN:VEVENT
SUMMARY:Subject of Event
LOCATION:Location of Event
UID:1227559810-8527e2c-20847#domain.com
DESCRIPTION:Some description
DTEND:20081101T200000Z
DTSTART:20081101T200000Z
PRIORITY:3
END:VEVENT
BEGIN:VEVENT
...
END:VEVENT
END:VCALENDAR
If I only include one VEVENT in this file it will save it to my existing Outlook calendar. However, when I have multiple VEVENTs it wants to open it as a new calendar and files it under "Other Calendars".
Is there a way (without using File - Import from within Outlook) to specify that the calendar should be imported automatically into the existing calendar when opened?
UPDATE: To clarify, each VEVENT is related to a single "Appointment". However there may or may not be a recurring pattern.
-Mike
I don't think this will work. Outlook is limited in importing those "open" specs. I had a similar problem trying to import a vCard file with multiple contacts. I ended up splitting the file and writing a script in Outlook to import all the files in a directory.
This is possible, using an Internet Calendar (like from Google). Outlook 2007 has the capabilities to subscribe to an Internet Calendar (under Account Settings) and Outlook 2003 has an open-source plug-in available. You could create an accessible feed that is "read-only". The format is like
BEGIN:VCALENDAR
PRODID:-//XYZ Corp//My Product//EN
VERSION:2.0
CALSCALE:GREGORIAN
METHOD:PUBLISH
X-WR-CALNAME:My Calendar
X-WR-TIMEZONE:(GMT-05:00) Eastern Time (US & Canada)
BEGIN:VEVENT
DTSTART:20061021T100000Z
DTEND:20061021T130000Z
DTSTAMP:20090211T175526Z
UID:5f98dfd5-ac72-4ae1-b3c2-799a4e7c91f9
CLASS:PUBLIC
CREATED:20071104T183833Z
DESCRIPTION: My description text.
LAST-MODIFIED:20071104T183833Z
LOCATION: 123 Anywhere Street\; Anyplace, NJ 12345\; US
SEQUENCE:0
STATUS:CONFIRMED
SUMMARY: My summary text.
TRANSP:OPAQUE
END:VEVENT
BEGIN:VEVENT
DTSTART:20061101T170000Z
DTEND:20061101T180000Z
DTSTAMP:20090211T175526Z
UID:6eaef015-eb90-4e94-8e6c-0003b928969a
CLASS:PUBLIC
CREATED:20071104T183833Z
DESCRIPTION: My description for number 2.
LAST-MODIFIED:20071104T183833Z
LOCATION: 123 Anywhere Street\; Anyplace, NJ 12345\; US
SEQUENCE:0
STATUS:CONFIRMED
SUMMARY: My summary for #2.
TRANSP:OPAQUE
END:VEVENT
END:VCALENDAR
Make sure you are using a unique UID for every VEVENT. If you use the same UID for every VEVENT you would see exactly the behavior you are describing since only unique UID's are processed and added to the calendar.
HTH.
This should be possible :/ the following works with google, and loads fine into entourage. Outlook seems to have some issues though, will keep looking.
NOTE - this does import correctly into outlook when you use file>import etc, it's only double clicking that causes it to only load the first event.
BEGIN:VCALENDAR
PRODID:-//Google Inc//Google Calendar 70.9054//EN
VERSION:2.0
CALSCALE:GREGORIAN
METHOD:PUBLISH
X-WR-CALNAME:Insert something
X-WR-TIMEZONE:Insert something
X-WR-CALDESC:
BEGIN:VEVENT
DTSTART:20110909T180000Z
DTEND:20110909T200000Z
DTSTAMP:20110722T004312Z
UID:et53m4on1ii70en7uuv1thjr58#google.com
CREATED:20110721T105553Z
DESCRIPTION:
LAST-MODIFIED:20110721T105554Z
LOCATION:Insert something
SEQUENCE:0
STATUS:CONFIRMED
SUMMARY:Insert something
TRANSP:OPAQUE
BEGIN:VALARM
ACTION:DISPLAY
DESCRIPTION:This is an event reminder
TRIGGER:-P0DT0H10M0S
END:VALARM
END:VEVENT
BEGIN:VEVENT
DTSTART:20110909T083000Z
DTEND:20110909T103000Z
DTSTAMP:20110722T004312Z
UID:e5fhdjff6vakjftnl3l9vjs64k#google.com
CREATED:20110721T105410Z
DESCRIPTION:
LAST-MODIFIED:20110721T111008Z
LOCATION:Auckland
SEQUENCE:1
STATUS:CONFIRMED
SUMMARY:Insert something
TRANSP:OPAQUE
BEGIN:VALARM
ACTION:DISPLAY
DESCRIPTION:Insert something
TRIGGER:-P0DT0H10M0S
END:VALARM
END:VEVENT
END:VCALENDAR
this is an example of three FIFA 2010 matches on outlook, I'm guessing that this is what you are looking for...
BEGIN:VCALENDAR
PRODID:-//Microsoft Corporation//Outlook 12.0 MIMEDIR//EN
VERSION:2.0
METHOD:PUBLISH
X-CALSTART:20100611T140000Z
X-CALEND:20100711T201500Z
X-WR-RELCALID:{0000002E-5A22-AA75-713B-5C3715764495}
X-WR-CALNAME: World Cup Football Complete Match Schedule 2010 South Africa
BEGIN:VEVENT
CATEGORIES:World Cup Football Complete Match Schedule 2010 South Africa
CLASS:PUBLIC
CREATED:20100608T231102Z
DESCRIPTION:Group A\nFollow MarkThisDate on Twitter
markthisdate
DTEND:20100611T154500Z
DTSTAMP:20100513T100200Z
DTSTART:20100611T140000Z
LAST-MODIFIED:20100608T231102Z
LOCATION:Johannesburg
PRIORITY:5
SEQUENCE:0
SUMMARY:South Africa - Mexico
TRANSP:TRANSPARENT
UID:005ef5a170ab453276aad021756e5fde#markthisdate.com
X-MICROSOFT-CDO-BUSYSTATUS:FREE
X-MICROSOFT-CDO-IMPORTANCE:1
END:VEVENT
BEGIN:VEVENT
CATEGORIES:World Cup Football Complete Match Schedule 2010 South Africa
CLASS:PUBLIC
CREATED:20100608T231102Z
DESCRIPTION:Group A\nFollow MarkThisDate on Twitter
markthisdate
DTEND:20100611T201500Z
DTSTAMP:20100513T100200Z
DTSTART:20100611T183000Z
LAST-MODIFIED:20100608T231102Z
LOCATION:Cape Town
PRIORITY:5
SEQUENCE:0
SUMMARY:Uruguay - France
TRANSP:TRANSPARENT
UID:9660590c514358c5bceed9e75bed0222#markthisdate.com
X-MICROSOFT-CDO-BUSYSTATUS:FREE
X-MICROSOFT-CDO-IMPORTANCE:1
END:VEVENT
BEGIN:VEVENT
CATEGORIES:World Cup Football Complete Match Schedule 2010 South Africa
CLASS:PUBLIC
CREATED:20100608T231102Z
DESCRIPTION:Group B\nFollow MarkThisDate on Twitter
markthisdate
DTEND:20100612T131500Z
DTSTAMP:20100513T100200Z
DTSTART:20100612T113000Z
LAST-MODIFIED:20100608T231102Z
LOCATION:Nelson Mandela Bay/Port Elizabeth
PRIORITY:5
SEQUENCE:0
SUMMARY:Korea Republic - Greece
TRANSP:TRANSPARENT
UID:5a9eaca2435fb52e1c95ddb786f82efa#markthisdate.com
X-MICROSOFT-CDO-BUSYSTATUS:FREE
X-MICROSOFT-CDO-IMPORTANCE:1
END:VEVENT
END:VCALENDAR
Make sure you have "X-MS-OLK-FORCEINSPECTOROPEN:TRUE" in the VCALENDAR part of your file. This allows an ICS file with multiple VEVENTs to import into your default calendar in Outlook. No new calendar created.
This works: Take the ICS file, drag & drop on the calendar button in Outlook (bottom left corner on mine). That adds multiple entries to the default calendar, without any prompting when an ICS file contains multiple vevents. Updates & deletes of multiples are my next challenge.
Double clicking the same file has very different results: Creates a new calendar, and the busy indicator is ignored. The drag & drop that I described keeps the busy indicator intact like it is in the ICS file
X-MS-OLK-FORCEINSPECTOROPEN:TRUE opened the 1st entry so it could be approved & added. Subsequent vevents are ignored.
X-MS-OLK-FORCEINSPECTOROPEN:FALSE or removing the line entirely had the same results on Outlook 365 for me.
Also, when double clicking an ICS file with multiple vevents, this is what I saw: Outlook is not entirely compatible because a new calendar gets created named "untitled". The mail app that comes with Windows 10 is compatible & all entries are added to the calendar properly (might be because the Win 10 mail app only has 1 calendar? I don't know- I'm writing for Outlook only)