I have an ics file that I send the to two participants. I want both to be able to approve, reject or suggest a new location or provide a link to the online meeting, but it seems like only the user who makes the calendar update can see it, but not the other one.
Below is the .ics file.
VERSION:2.0
PRODID:-//test//test Calendar//EN
METHOD:REQUEST
BEGIN:VEVENT
UID:f4ad093514495ae4dc5c0aa25443dd1a
DTSTAMP:20210512T190903
DTSTART:20210513T110000Z
DTEND:20210513T120000Z
ORGANIZER;CN="John”:mailto:organizer#gmail.com
ATTENDEE;CUTYPE=INDIVIDUAL;ROLE=REQ-PARTICIPANT;PARTSTAT=NEEDS-ACTION;CN=user1#gmail.com;X-NUM-GUESTS=0:mailto:user1#gmail.com
ATTENDEE;CUTYPE=INDIVIDUAL;ROLE=REQ-PARTICIPANT;PARTSTAT=NEEDS-ACTION;CN=user2#gmail.com;X-NUM-GUESTS=0:mailto:user2#gmail.com
LOCATION:Expert to provide the link
SUMMARY:Appointment
BEGIN:VALARM
TRIGGER:-PT05M
ACTION:DISPLAY
DESCRIPTION:Appointment
END:VALARM
PRIORITY:5
END:VEVENT
END:VCALENDAR
Related
I am trying to create calendar events in outlook from .ics received in mail. This is the content of the ics file.
BEGIN:VCALENDAR
VERSION:2.0
METHOD:REQUEST
CALSCALE:GREGORIAN
BEGIN:VEVENT
SUMMARY:Demo descr
DTSTART:20220924T103000Z
DTEND:20220924T113000Z
ORGANIZER;CN=xyz#abc.com:mailto:xyz#abc.com
UID:4763547133112123311211d1121121s11e133111112112112
ATTENDEE;CUTYPE=INDIVIDUAL;ROLE=REQ-PARTICIPANT;PARTSTAT=NEEDS-ACTION;RSVP=TRUE;CN=xyz#outlook.com;X-NUM-GUESTS=0:mailto:xyz#outlook.com
DESCRIPTION;LANGUAGE=en-US:check description
LOCATION:somelink
TRANSP:OPAQUE
STATUS:CONFIRMED
SEQUENCE:2
END:VEVENT
END:VCALENDAR
Everything is synced properly except the description part. However if i add the ics file directly in the calendar by importing, the description is reflected.
Can anyone please help me here?
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
Attempting to import by URL the following ics data by calling an endpoint on an API I'm working on. Google does import the events at the required time and date, but their title is busy and status Private even though the events contain CLASS:PUBLIC. Using icalendar ruby gem to build the ical data.
Also, the API responds with Content-Type: text/calendar header. Trying to import the data below through a file format works fine. The problem is in the URL import. Did not try Outlook/iCalendar. No solutions from other stackoverflow threads worked so far.
Any thoughts as to what might be the problem?
BEGIN:VCALENDAR
VERSION:2.0
PRODID:icalendar-ruby
CALSCALE:GREGORIAN
METHOD:PUBLISH
BEGIN:VEVENT
DTSTAMP:20191120T143449Z
UID:4a22a9b7-8b20-487b-a4fb-bc0b6ff90adf
DTSTART:20191121T070000
DTEND:20191121T130000
CLASS:PUBLIC
SUMMARY:7a Driver
END:VEVENT
BEGIN:VEVENT
DTSTAMP:20191120T143449Z
UID:5eda6340-bfec-417e-869a-d5f1af2ba433
DTSTART:20191122T070000
DTEND:20191122T130000
CLASS:PUBLIC
SUMMARY:7a Driver
END:VEVENT
END:VCALENDAR
This is a problem with the icalendar ruby gem.
I've created a sample ICS file like this:
BEGIN:VCALENDAR
PRODID:-//Google Inc//Google Calendar 70.9054//EN
VERSION:2.0
CALSCALE:GREGORIAN
METHOD:PUBLISH
X-WR-CALNAME:email#domain.com
X-WR-TIMEZONE:Europe/Madrid
BEGIN:VEVENT
DTSTART:20191120T160000Z
DTEND:20191120T170000Z
DTSTAMP:20191120T162746Z
UID:<id>#domain.com
CLASS:PUBLIC
CREATED:20191120T162722Z
DESCRIPTION:busy
LAST-MODIFIED:20191120T162722Z
LOCATION:
SEQUENCE:0
STATUS:CONFIRMED
SUMMARY:event 1
TRANSP:OPAQUE
END:VEVENT
BEGIN:VEVENT
DTSTART:20191120T173000Z
DTEND:20191120T183000Z
DTSTAMP:20191120T162746Z
UID:<another-id>#domain.com
CLASS:PRIVATE
CREATED:20191120T162733Z
DESCRIPTION:private
LAST-MODIFIED:20191120T162733Z
LOCATION:
SEQUENCE:0
STATUS:CONFIRMED
SUMMARY:event 2
TRANSP:TRANSPARENT
END:VEVENT
END:VCALENDAR
Events
Event 1
CLASS:PUBLIC
TRANSP:OPAQUE
Meaning that it's a public event and I will be considered "Busy" during it.
Event 2
CLASS:PRIVATE
TRANSP:TRANSPARENT
Meaning that it's a private event and I will be considered "Free" during it.
Solution
I'd recommend you head to the library's Issue Tracker and file a bug report there.
I am writing an application that will send out .ics files to be interpreted mainly by outlook. When my applications sends an update, it will successfully update everyone's calendar except for the organizer's calendar. I'm using the same UID and I'm incrementing SEQUENCE each time. Is there anything else that I'm missing in my ICS file or does it not update my calendar because I am the organizer?
Below is an example of the ics code that we're using:
BEGIN:VCALENDAR
PRODID:-//Microsoft Corporation//Outlook 16.0 MIMEDIR//EN
VERSION:2.0
METHOD:REQUEST
X-MS-OLK-FORCEINSPECTOROPEN:TRUE
BEGIN:VTIMEZONE
TZID:Eastern Standard Time
BEGIN:STANDARD
DTSTART:16011104T020000
RRULE:FREQ=YEARLY;BYDAY=1SU;BYMONTH=11
TZOFFSETFROM:-0400
TZOFFSETTO:-0500
END:STANDARD
BEGIN:DAYLIGHT
DTSTART:16010311T020000
RRULE:FREQ=YEARLY;BYDAY=2SU;BYMONTH=3
TZOFFSETFROM:-0500
TZOFFSETTO:-0400
END:DAYLIGHT
END:VTIMEZONE
BEGIN:VEVENT
ATTENDEE;CN='test';RSVP=TRUE:mailto:test#testing.com
ATTENDEE;CN='attendee';RSVP=TRUE:mailto:attendee#attendees.com
CLASS:PUBLIC
CREATED:20180628T182531Z
DTSTART;TZID=Eastern Standard Time:20180630T141500
DTEND;TZID=Eastern Standard Time:20180630T160000
DTSTAMP:20180628T182531Z
LAST-MODIFIED:20180628T182531Z
LOCATION:some place
ORGANIZER;CN=Conference Room Board:mailto:test#testing.com
PRIORITY:5
SEQUENCE:1
SUMMARY;LANGUAGE=en-us:test
TRANSP:OPAQUE
UID:SomeUniqueUID
CREATED:20180628T182531Z
DESCRIPTION:Test
X-MICROSOFT-CDO-BUSYSTATUS:BUSY
X-MICROSOFT-CDO-IMPORTANCE:1
X-MICROSOFT-DISALLOW-COUNTER:FALSE
X-MS-OLK-AUTOFILLLOCATION:TRUE
X-MS-OLK-CONFTYPE:0
END:VEVENT
END:VCALENDAR
Thanks for any help!
This is expected. As the organiser, your client assumes that only itself is in control of invitation. As such it ignores invitations sent by other parties.
You may want to make the organiser also an ATTENDEE but there is no guarantee that this will work.
See Change event description for organizer using VCalendar and When creating an iCal event on behalf of an organizer and email it to him, no "Add to calendar" or "RSVP" wrappers appear
So, you guys are correct and this is expected behavior. I tried adding the organiser as an attendee and ended up running into problems when I tried to create an event cancellation. The organiser would receive the email but be unable to remove from calendar because they were recognized as the organizer.
I ended up abandoning using ICS files and instead started using a library that communicates through Exchange Web Services. EWS allowed me to simulate creating a meeting on someone's calendar through an API and then adding attendees just like I created the meeting in Outlook. Specifically, I was using python so I started using Exchangelib.
I wanted to put an answer to this question for anyone else that may stumble upon this.
We are creating an iCalendar .ics file in our system so our users can add an appointment to Outlook. A new requirement is that we have the Accept/Tentative/Decline options show up in Outlook along with RSVPs. I am able to achieve this by adding ATTENDEE and ORGANIZER lines to the .ics as follows:
ATTENDEE;RSVP=TRUE:
ORGANIZER;CN="Test Organizer":mailto:test#test.com
However, I'm running into a particular situation where Outlook returns "The operation failed." When I first open the .ics in Outlook, BEFORE it is actually saved into my calendar, if I click Accept/Tentative/Decline at that point, I get "The operation failed." If I do it AFTER it is saved into my calendar, then it works fine (RSVPs send if I delete it, and Accept/Tentative/Decline work exactly as expected). Here is video of that: http://screencast.com/t/BBUzYRwCJ
What am I doing wrong? Have I omitted something important from the .ics file? Here is the full file, which works great except for this one situation:
BEGIN:VCALENDAR
VERSION:2.0
PRODID:-//ICSTestCS/
CALSCALE:GREGORIAN
BEGIN:VTIMEZONE
TZID:Europe/London
BEGIN:STANDARD
DTSTART:20071104T020000
RRULE:FREQ=YEARLY;BYDAY=1SU;BYMONTH=11
TZOFFSETFROM:0300
TZOFFSETTO:0200
TZNAME:GMT
END:STANDARD
BEGIN:DAYLIGHT
DTSTART:20070311T020000
RRULE:FREQ=YEARLY;BYDAY=2SU;BYMONTH=3
TZOFFSETFROM:0200
TZOFFSETTO:0300
TZNAME:GMT
END:DAYLIGHT
END:VTIMEZONE
BEGIN:VEVENT
ATTENDEE;RSVP=TRUE:
ORGANIZER;CN="Test Organizer":mailto:test#test.com
DTSTART;TZID=Europe/London:20140522T090000
DTEND;TZID=Europe/London:20140522T103000
SUMMARY:Test Course
DESCRIPTION;ENCODING=QUOTED-PRINTABLE:Test Course Description
LOCATION:Test Office
UID:1
SEQUENCE:0
DTSTAMP:20140522T090000
END:VEVENT
END:VCALENDAR
I seem to have resolved my issue by including:
METHOD:REQUEST
at the top of the file under VERSION:2.0
You should have a mailto: uri as the ATTENDEE value, e.g.
ATTENDEE;RSVP=TRUE:someattendee#test.com