I have the following snippet of an .ics file generated by iCal4j:
BEGIN:VCALENDAR
PRODID:-//Events Calendar//iCal4j 1.0//EN
VERSION:2.0
CALSCALE:GREGORIAN
BEGIN:VEVENT
DTSTAMP:20110608T161848Z
DTSTART:20110604T213000
DTEND:20110604T222158
SUMMARY:Uplink Window
TZID:Europe/London
UID:20110608T162308Z-uidGen#10.37.129.2
DESCRIPTION:My Description
END:VEVENT
BEGIN:VEVENT
DTSTAMP:20110608T161848Z
DTSTART:20110604T230845
DTEND:20110605T001314
SUMMARY:Uplink Window
TZID:Europe/London
UID:20110608T162309Z-uidGen#10.37.129.2
DESCRIPTION:My Description
END:VEVENT
END:VCALENDAR
When I import this .ics file into Outlook or iCal each event has a notification 15 minutes before the start time (the little popup thing). Is there a way I can disable these notifications? We have hundreds of events per .ics file and don't need to be notified whenever one comes up, we just want to be able to view the blocks of time the events cover.
Thanks
It was a setting of iCal and Outlook to add an automatic notification 15 minutes before any new event. The .ics file was being treated as a new event. Once I changed those settings in the preferences of the respective applications, I got the desired results.
User Error wins again.
Related
I am editing .ics files and I would like to automatically get an embedded map on the imported events. As the name I associate to the LOCATION field is not often matching the generic locations (the ones listed by Apple Calendar when creating an event manually), I made some research and found out that it was possible using the GEO field. Unfortunately, nothing happens when I enter valid data there...
Here is my test .ics file
BEGIN:VCALENDAR
METHOD:PUBLISH
PRODID:Testing
VERSION:2.0
BEGIN:VEVENT
UID:040000008200E00074C5B7101A82E008000000000C39F366D366D601000000000000000
010000000BDB756416E2A9C428ED267955FCFBC3M
SUMMARY:Test event
DTSTART:20201138T181500Z
DTEND:2020113T203000Z
CLASS:PUBLIC
DTSTAMP:20200921T104743Z
TRANSP:OPAQUE
STATUS:CONFIRMED
LOCATION:Home Gym
GEO:50.633981;5.586320
END:VEVENT
END:VCALENDAR
I'm generating .ics files using the icalendar rubygem. I'm having issues with "All Day" events with import into Google Calendar. Importing into iCal works perfectly fine. Events with specific date/time work perfectly in both calendars.
UPDATE:
The issue actually happens when tapping the "Add to calendar" in the Android Gmail app. The import of the all-day event is actually correct if I tap the actual .ics file attachment at the bottom of the email.
.ics file (Validated by online validator):
BEGIN:VCALENDAR
VERSION:2.0
PRODID:icalendar-ruby
CALSCALE:GREGORIAN
BEGIN:VEVENT
DTSTAMP:20200602T175210Z
UID:d033afdd-2eaa-4adf-aed7-63d1732a4322
DTSTART;VALUE=DATE:20201102
DTEND;VALUE=DATE:20201103
CLASS:PRIVATE
DESCRIPTION:General - All Day
LOCATION:Some Address
SUMMARY:Test Event
URL:http://localhost:5000/events/129/signup
END:VEVENT
END:VCALENDAR
eMail in Gmail Android app screenshot:
Google Calendar app screenshot after taping on "Add to calendar" in Gmail on Android:
What I am trying to do:
I have a need to send my clients .ics files that will populate their Outlook calendars as soon as they download and double click (and choose to populate their Outlook calendar).
When I am testing locally, the iCalendar code below works fine if I set Outlook to work offline - a UID is generated once for each event, I can use the same file again and again and a new event will not be generated - as the UID is recognized by Outlook as already existing. (so I can rely on the UID to update, and cancel as well)
The issue is that when I work with an online Outlook, a random UID (112 characters long) is generated every time I use the file to populate the calendar - even for the same events - so a duplicate event is generated every time!
Example for an .ics file:
BEGIN:VCALENDAR
VERSION:2.0
METHOD:PUBLISH
PRODID:-//PYVOBJECT//NONSGML Version 1//EN
BEGIN:VEVENT
UID:12345
DTSTART:20190715T020222Z
DTEND:20190715T030222Z
DESCRIPTION:Some fake summary - first event
DTSTAMP:20190715T010222Z
SEQUENCE:0
SUMMARY:this is the first event summary
END:VEVENT
BEGIN:VEVENT
UID:67890
DTSTART:20190715T040222Z
DTEND:20190715T050222Z
DESCRIPTION:Some fake summary - second event
DTSTAMP:20190715T010222Z
SEQUENCE:0
SUMMARY:this is the second event summary
END:VEVENT
END:VCALENDAR
If I generate an .ics file for the first event that was generated when Outlook is online (dragging and dropping out of the calendar) I see that Outlook has added a bunch of new fields:
BEGIN:VCALENDAR
VERSION:2.0
PRODID:-//Microsoft Corporation//Outlook for Mac MIMEDIR//EN
METHOD:PUBLISH
BEGIN:VTIMEZONE
TZID:Pacific Time (US & Canada)
X-ENTOURAGE-CFTIMEZONE:US/Pacific
X-ENTOURAGE-TZID:1
BEGIN:STANDARD
RRULE:FREQ=YEARLY;INTERVAL=1;BYSECOND=0;BYMINUTE=0;BYHOUR=2;BYDAY=1SU;BYMONTH=11
TZOFFSETFROM:-0700
TZOFFSETTO:-0800
DTSTART:20071104T020000
END:STANDARD
BEGIN:DAYLIGHT
RRULE:FREQ=YEARLY;INTERVAL=1;BYSECOND=0;BYMINUTE=0;BYHOUR=2;BYDAY=2SU;BYMONTH=3
TZOFFSETFROM:-0800
TZOFFSETTO:-0700
DTSTART:20070311T020000
END:DAYLIGHT
END:VTIMEZONE
BEGIN:VEVENT
UID:<a NEW 112 character id - NOT the one I added myself>
X-ENTOURAGE_UUID:81760164-FB2C-4421-B7AC-2E1791265F0A
X-MICROSOFT-EXCHANGE-ID:<base64, 140 character id>
X-MICROSOFT-EXCHANGE-CHANGEKEY:<base64, 32 character id>
DTSTAMP:20190715T023949Z
DTSTART;TZID="Pacific Time (US & Canada)":20190714T190200
DTEND;TZID="Pacific Time (US & Canada)":20190714T200200
LAST-MODIFIED:20190715T023949Z
SUMMARY:this is the first event summary
DESCRIPTION:Some fake summary - first event
ORGANIZER:MAILTO:<the real account owner email - my email>
SEQUENCE:0
X-MICROSOFT-CDO-BUSYSTATUS:BUSY
X-MICROSOFT-CDO-ALLDAYEVENT:FALSE
X-MICROSOFT-DISALLOW-COUNTER:TRUE
X-MICROSOFT-DONOTFORWARDMEETING:FALSE
X-MICROSOFT-CDO-INSTTYPE:0
END:VEVENT
END:VCALENDAR
What I tried:
Modified: METHOD:REQUEST
Added X-WR-RELCALID:some_unique_id from this post
Sequence does not seem to help - it is only there to sort out if 2 UIDs are the same within the same file
I added ORGANIZER;CN=Fable mail:MAILTO:fable.mail#example.com to each event - it has the same issue as the UID, and is disregarded (my email is added as the organizer)
I added ATTENDEE:MAILTO:somemail#email.com as suggested in this post, but it does not seem to make any difference
Is it because I am not using the recommended standard for the UID? It seems like a suggestion to prevent collisions, nothing more.
Thank you!
The problem still persists on latest Outlook 2019 from Office 365.
Even Microsoft support suggests to add this as feature request to the outlook suggestion box. (see here: https://answers.microsoft.com/en-us/msoffice/forum/all/ics-file-does-not-update-event/38548f62-d9cd-4b85-8d3e-65217d4e8f50)
Others suggest to create an application which communicates with outlook and synchronizes the calendar entries by this way. But in my opinion this is a too heavy solution for such a small problem.
When you upload the .ics file to outlook live via the desktop browser, I have used edge mobile set as desktop for this, and select add calendar in the expanded left sidebar followed by upload from file in the following selection menu the UID replacement does not take place.
P.S. Entering the data via outlook mail replaced the UIDs even if they did comply to the official recommendations in the specification.
I am attempting to send out .ics calendar event files which can be downloaded by users and saved to their Outlook calendars. The calendar event needs to appear as “Free” in Outlook. Below is a sample of the .ics event currently being sent out:
BEGIN:VCALENDAR
VERSION:2.0
PRODID:http://company.ical.cls
BEGIN:VEVENT
DTSTART:20180425
SUMMARY:PTO for Babcock, Michael (22.5hrs)
DTEND:20180428
FREEBUSY:FREE
END:VEVENT
END:VCALENDAR
When an Outlook for Windows user downloads the above file and opens it in their Outlook calendar, the event appears correctly as Free time.
When an Outlook for Mac user downloads the above file it creates a new email with the .ics file attached.
To try to correct the problem for Mac users, I edited the FREEBUSY keyword several times to appear as:
FBTYPE:FREE:20180425T000000Z/20180428T000000Z
FBTYPE:20180426T000000Z/20180429T000000Z
FREEBUSY;FBTYPE=FREE:20180416T133000Z/20180429T170000Z
Outlook for Mac users could download the file with one of those new FreeBusy keywords and open it in their calendar, but it always appears as Busy. The strange thing is, if they open the file with the modified keyword on a Windows computer first, then the appointment appears as free on both Windows and Mac Outlook.
Has anyone found a FreeBusy keyword that allows Outlook for Mac users to see .ics calendar appointments as Free?
The 'Freebusy' component is VFREEBUSY, not VEVENT. Please see the RFC5545 specification. https://www.rfc-editor.org/rfc/rfc5545#section-3.6.4
VFREEBUSY cannot be nested under VEVENT. Also it does NOT say that FREEBUSY property can be used in VEVENT. The spec at https://www.rfc-editor.org/rfc/rfc5545#section-3.8.2.6 says:
FREEBUSY..... Conformance: The property can be specified in a
"VFREEBUSY" calendar
component.
...
The following is an example of a "VFREEBUSY" calendar component
used to publish busy time information:
BEGIN:VFREEBUSY
UID:19970901T115957Z-76A912#example.com
DTSTAMP:19970901T120000Z
ORGANIZER:jsmith#example.com
DTSTART:19980313T141711Z
DTEND:19980410T141711Z
FREEBUSY:19980314T233000Z/19980315T003000Z
FREEBUSY:19980316T153000Z/19980316T163000Z
FREEBUSY:19980318T030000Z/19980318T040000Z
URL:http://www.example.com/calendar/busytime/jsmith.ifb
END:VFREEBUSY
FREEBUSY is for requesting/responding/publishing availability windows.
To make the event appear in the calendar with the Free/Busy flag set to Free, use TRANSP:TRANSPARENT and X-MICROSOFT-CDO-BUSYSTATUS:FREE
For example:
BEGIN:VCALENDAR
VERSION:2.0
PRODID:http://company.ical.cls
BEGIN:VEVENT
DTSTART:20180425
SUMMARY:PTO for Babcock, Michael (22.5hrs)
DTEND:20180428
TRANSP:TRANSPARENT
X-MICROSOFT-CDO-BUSYSTATUS:FREE
END:VEVENT
END:VCALENDAR
I would like to be able to create an ICS file with multiple events that user will be able to import in their default Exchange Calendar. I need to support Outlook desktop client, Office 365 web interface and Apple iPhone Mail/Calendar.
Note that issue only occurs with ICS files that contain multiple events. Single event ICS works as expected.
Following multi-event ICS file:
BEGIN:VCALENDAR
VERSION:2.0
PRODID:-//bobbin v0.1//NONSGML iCal Writer//EN
CALSCALE:GREGORIAN
METHOD:PUBLISH
BEGIN:VEVENT
DTSTART:20180327T080000Z
DTEND:20180327T110000Z
DTSTAMP:20091130T213238Z
UID:1285935469767a7c7c1a9b3f0df8003a#yourserver.com
CREATED:20091130T213238Z
DESCRIPTION:Example event 1
LAST-MODIFIED:20091130T213238Z
SEQUENCE:0
STATUS:CONFIRMED
SUMMARY:Example event 1
TRANSP:OPAQUE
END:VEVENT
BEGIN:VEVENT
DTSTART:20180328T120000Z
DTEND:20180328T130000Z
DTSTAMP:20091130T213238Z
UID:1285935469767a7c7c1a9b3f0df8003b#yourserver.com
CREATED:20091130T213238Z
DESCRIPTION:Example event 2
LAST-MODIFIED:20091130T213238Z
SEQUENCE:0
STATUS:CONFIRMED
SUMMARY:Example event 2
TRANSP:OPAQUE
END:VEVENT
END:VCALENDAR
works fine in Office 365 web interface and Apple iPhone Mail/Calendar. However, when it is imported in Outlook 2016 it creates a new "Untitled" Calendar and puts events in it instead of default user calendar.
This seems to be a known issue referenced previously on SO:
ICal import creates new calendar When Open the ics file
Have ICS file with multiple events save to my Calendar, not Other Calendars
Answers range from "it cannot be done" to the opposite.
One of the posts in the first link mentions removing X-WR-CALNAME from ICS fixes the problem. I never had this in ICS to begin with.
Another post on the same page mentions that adding X-WR-RELCALID:XXXXXX fixes it. I tried putting it in and it makes no difference at all. I am not sure if value for X-WR-RELCALID should be set to something specific - I just set it to some GUID.
If someone successfully resolved it - can you post an ICS sample and what version of Outlook did it work with?