How to set custom property on ics calendar invite - outlook

BEGIN:VCALENDAR
PRODID:-//Microsoft Corporation//Outlook 14.0 MIMEDIR//EN
VERSION:2.0
METHOD:REQUEST
X-MS-OLK-FORCEINSPECTOROPEN:TRUE
BEGIN:VTIMEZONE
TZID:GMT
BEGIN:STANDARD
END:STANDARD
END:VTIMEZONE
BEGIN:VEVENT
ATTENDEE;CN=test#abc.com;RSVP=TRUE:mailto:test#abc.com
ATTENDEE;CN=test#abc.com;RSVP=TRUE:mailto:test#abc.com
CLASS:PUBLIC
CREATED:20220916T003527
DESCRIPTION:test custom property in email.
DTEND;TZID=GMT:20110420T093502
DTSTAMP:20220916T003527
DTSTART;TZID=GMT:20220916T003527
LAST-MODIFIED:20220916T003527
ORGANIZER;CN=test#abc.com:mailto:test#abc.com
SUMMARY;ENCODING=QUOTED-PRINTABLE:Test Sample custom
TRANSP:OPAQUE
UID:22952194683567780405841975923477846064353531523395013511058263369055782053751411479304767882751767652242148467737398
X-EXTRAPARAMS:Test Extra Param
X-MICROSOFT-CDO-BUSYSTATUS:BUSY
X-MICROSOFT-CDO-IMPORTANCE:1
X-MICROSOFT-DISALLOW-COUNTER:FALSE
X-MS-OLK-AUTOFILLLOCATION:FALSE
X-MS-OLK-CONFTYPE:0
BEGIN:VALARM
TRIGGER:-PT15M
ACTION:DISPLAY
DESCRIPTION:Reminder
END:VALARM
END:VEVENT
END:VCALENDAR
In this we have set X-EXTRAPARAMS value which needs to be shown to user in his calendar but the value is not displayed to the user in his invite.
How can we set the same so that it is displayed to the end user in his calendar?

No calendar app will process a header it knows nothing about. If you want to reliably show something to an end user, it has to be either DESCRIPTION or SUMMARY.

Related

How to cancel an event with an `.ics` file?

.ics and ical events are not a "forest trip" (as we say in french).
Below a working event -> a created event.
BEGIN:VCALENDAR
PRODID:-//mls//calendar//FR
VERSION:2.0
CALSCALE:GREGORIAN
METHOD:PUBLISH
BEGIN:VEVENT
DTSTART:20220505T120000Z
DTEND:20220505T124000Z
DTSTAMP:20220503T210000Z
UID:uuidXYZ
ORGANIZER;CN=me#example.com:MAILTO:me#example.com
DESCRIPTION:xxxxxxxxxxx
LOCATION:somewhere
SEQUENCE:0
STATUS:CONFIRMED
SUMMARY:something
TRANSP:OPAQUE
END:VEVENT
END:VCALENDAR
It works in Mail.app (os x) and GMail.
For example, I see this and this is perfect.
I'm also able to add this event to my calendar
However, I'm unable to cancel this event! Argh!
Below my cancelled event:
BEGIN:VCALENDAR
PRODID:-//mls//calendar//FR
VERSION:2.0
CALSCALE:GREGORIAN
METHOD:CANCEL
BEGIN:VEVENT
DTSTART:20220505T120000Z
DTEND:20220505T124000Z
DTSTAMP:20220503T210000Z
UID:uuidXYZ
ORGANIZER;CN=me#example.com:MAILTO:me#example.com
DESCRIPTION:xxxxxxxxxxx
LOCATION:somewhere
SEQUENCE:1
STATUS:CANCELLED
SUMMARY:something
TRANSP:OPAQUE
END:VEVENT
END:VCALENDAR
Note that METHOD, SEQUENCE and STATUS have changed!
If I see this in Gmail (image below), the event DOESN'T disappear from my calendar... :-/
Do you have any idea why it's not working?
It's also not working in mail.app (OS X).
Thanks a lot!

Events imported by URL to Google Calendar appear as busy & private

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 can't cancel the event by the method of importing ics file in Outlook

When I create an iCalendar on Outlook, I want to delete it on Outlook with importing the ics-cancel-file,but it gives me the message "The events could't be imported. Please try again later.Error message".
The event ics file:
BEGIN:VCALENDAR
PRODID:-//Microsoft Corporation//Outlook 15.0 MIMEDIR//EN
VERSION:2.0
CALSCALE:GREGORIAN
METHOD:PUBLISH
BEGIN:VEVENT
DTSTAMP:20160504T072433Z
DTSTART;VALUE=DATE;VALUE=DATE:20160506
SUMMARY:BirthDay
UID:20160504T072432Z-1#fe80:0:0:0:a2d3:c1ff:fe34:bacf%2
END:VEVENT
END:VCALENDAR
The ics-cancel-file:
BEGIN:VCALENDAR
PRODID:-//Microsoft Corporation//Outlook 15.0 MIMEDIR//EN
VERSION:2.0
CALSCALE:GREGORIAN
METHOD:CANCEL
BEGIN:VEVENT
DTSTAMP:20160504T072433Z
DTSTART;VALUE=DATE;VALUE=DATE:20160506
SUMMARY:BirthDay
UID:20160504T072432Z-1#fe80:0:0:0:a2d3:c1ff:fe34:bacf%2
STATUS:CANCELLED
END:VEVENT
END:VCALENDAR
What can I fix it that I can delete the event? What's wrong with this ics file?
Adding the 2nd file just change the Event's STATUS, which defines the overall status or confirmation for the calendar component (https://www.rfc-editor.org/rfc/rfc5545#section-3.8.1.11)
The only way there is for deleting a calendar object if by a DELETE Request (http://www.webdav.org/specs/rfc2518.html#METHOD_DELETE). So there isn't something wrong with the .ics file.

How can I create a recurring appointment for First Wednesday of Every Month using Ical

How can I create a recurring appointment for First Wednesday of Every Month using Ical, Please see below ical file
BEGIN:VCALENDAR
PRODID:-//Microsoft Corporation//Outlook 9.0 MIMEDIR//EN
VERSION:2.0
CALSCALE:GREGORIAN
METHOD:PUBLISH
BEGIN:VEVENT
DTSTART:20150909T130000
DTSTAMP:20150909T053424Z
RRULE:FREQ=MONTHLY;INTERVAL=1;BYDAY=WE;BYSETPOS=1
UID:77970#local
Location: Test
DESCRIPTION:Test
LAST-MODIFIED:20150909T053424Z
SEQUENCE:0
STATUS:CONFIRMED
SUMMARY: - test service
TRANSP:OPAQUE
END:VEVENT
END:VCALENDAR
Below Code is Working Fine for -- Occurs the first Sunday of every 1 month effective 04-10-2015 until 06-12-2015 from AM 11:00 to PM 12:00.
BEGIN:VCALENDAR
PRODID:-//Microsoft Corporation//Outlook 9.0 MIMEDIR//EN
VERSION:2.0
CALSCALE:GREGORIAN
METHOD:PUBLISH
BEGIN:VEVENT
DTSTART:20150910T110000
DTSTAMP:20150910T071744Z
RRULE:FREQ=MONTHLY;INTERVAL=1;BYDAY=SU;BYSETPOS=1;UNTIL=20151210T120000
EXDATE:20151004T110000, 20151101T110000, 20151206T110000
UID:78106#local
Location:Test
DESCRIPTION:Test
LAST-MODIFIED:20150910T071744Z
SEQUENCE:0
STATUS:CONFIRMED
SUMMARY: test service
TRANSP:OPAQUE
END:VEVENT
END:VCALENDAR
But this code for Every Monday is Not Working
BEGIN:VCALENDAR
PRODID:-//Microsoft Corporation//Outlook 9.0 MIMEDIR//EN
VERSION:2.0
CALSCALE:GREGORIAN
METHOD:PUBLISH
BEGIN:VEVENT
DTSTART:20150910T080000
DTSTAMP:20150910T075935Z
RRULE:FREQ=MONTHLY;INTERVAL=1;BYDAY=MO;BYSETPOS=1;UNTIL=20151210T090000
UID:78121#local
Location:Test
DESCRIPTION:Test
LAST-MODIFIED:20150910T075935Z
SEQUENCE:0
STATUS:CONFIRMED
SUMMARY: test service
TRANSP:OPAQUE
END:VEVENT
END:VCALENDAR
Create an appointment in Outlook and save it as an ICS file. I got the following. Outlook has absolutely no problem opening that ICS file.
BEGIN:VCALENDAR
PRODID:-//Microsoft Corporation//Outlook 15.0 MIMEDIR//EN
VERSION:2.0
METHOD:PUBLISH
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
CLASS:PUBLIC
CREATED:20150910T120559Z
DESCRIPTION:\n
DTEND;TZID="Eastern Standard Time":20151007T113000
DTSTAMP:20150910T120559Z
DTSTART;TZID="Eastern Standard Time":20151007T110000
LAST-MODIFIED:20150910T120559Z
PRIORITY:5
RRULE:FREQ=MONTHLY;BYDAY=WE;BYSETPOS=1
SEQUENCE:0
SUMMARY;LANGUAGE=en-us:First Wednesday of Every Month
TRANSP:OPAQUE
UID:040000008200E00074C5B7101A82E00800000000F0DEF1869FEBD001000000000000000
01000000050D17A24B21FB34F845623E567B81E99
X-ALT-DESC;FMTTYPE=text/html:<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//E
N">\n<HTML>\n<HEAD>\n<META NAME="Generator" CONTENT="MS Exchange Server ve
rsion rmj.rmm.rup.rpr">\n<TITLE></TITLE>\n</HEAD>\n<BODY>\n<!-- Converted
from text/rtf format -->\n\n<P DIR=LTR><SPAN LANG="en-us"></SPAN></P>\n\n<
/BODY>\n</HTML>
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
BEGIN:VALARM
TRIGGER:-PT15M
ACTION:DISPLAY
DESCRIPTION:Reminder
END:VALARM
END:VEVENT
END:VCALENDAR
RFC5545 specifies that DTSTART is the first instance of your RRULE in your case you have
DTSTART:20150909T130000
but Sept, 9th is a Wednesday not a Monday. Changing your DTSTART to:
DTSTART:20150907T080000
allows the file to be opened by Outlook.
More details on DTSTART and RRULE : RFC5545 Event
The "DTSTART" property for a "VEVENT" specifies the inclusive
start of the event. For recurring events, it also specifies the
very first instance in the recurrence set.
So while in theory, it means that regardless of the rule, DTSTART should be appended to the list of occurences, what Outlook seems to do is to check for consistsance between DTSTART and the RRULE, hence your problem.
BEGIN:VCALENDAR
PRODID:-//Microsoft Corporation//Outlook 9.0 MIMEDIR//EN
VERSION:2.0
CALSCALE:GREGORIAN
METHOD:PUBLISH
BEGIN:VEVENT
DTSTART:20150922T023000Z
DTSTAMP:20150922T025844Z
RRULE:FREQ=MONTHLY;INTERVAL=1;BYDAY=TU;BYSETPOS=4;WKST=SU;UNTIL=20151222T033000Z
UID:1785
Location:Test
DESCRIPTION:test
LAST-MODIFIED:20150922T025844Z
SEQUENCE:0
STATUS:CONFIRMED
SUMMARY:test
TRANSP:OPAQUE
END:VEVENT
END:VCALENDAR
Below link explains well..
https://www.techfolks.net/rrule-exdate-ical-recurring-event-appointment-example/

multiple events not created in icalendar

My Request is :
BEGIN:VCALENDAR
VERSION:2.0
PRODID:-//Apple Inc.//iCal 5.0.2//EN
BEGIN:VTIMEZONE
TZID:UTC
BEGIN:STANDARD
DTSTART;VALUE=DATE:20140101
TZNAME:UTC
TZOFFSETFROM:+0000
TZOFFSETTO:+0000
END:STANDARD
END:VTIMEZONE
BEGIN:VEVENT
ATTENDEE;CN=Isha;ROLE=REQ-PARTICIPANT;PARTSTAT=ACCEPTED:MAILTO:iagarwal#sch
eduleonce.com
DESCRIPTION:meeting details0
DTEND;TZID=UTC:20150601T061500
DTSTAMP:20150520T073543Z
DTSTART;TZID=UTC:20150601T051500
SEQUENCE:0
STATUS:Confirmed
SUMMARY:meeting 10
TRANSP:Opaque
UID:6BBD518F-B0E3-4157-A105-A7ECEB82D73E
END:VEVENT
BEGIN:VEVENT
ATTENDEE;CN=Isha;ROLE=REQ-PARTICIPANT;PARTSTAT=ACCEPTED:MAILTO:iagarwal#sch
eduleonce.com
DESCRIPTION:meeting details1
DTEND;TZID=UTC:20150601T061500
DTSTAMP:20150520T073543Z
DTSTART;TZID=UTC:20150601T051500
SEQUENCE:0
STATUS:Confirmed
SUMMARY:meeting 11
TRANSP:Opaque
UID:6BBD518F-B0E3-4157-A105-A7ECEB82D73F
END:VEVENT
END:VCALENDAR
URL : https://p22-caldav.icloud.com/XXX/calendars/home
Method: POST
Depth:1
The web response does not return any exception. In web response I get http status code as "OK" but the event is not created on my icloud calendar.
I refered to enter link description here . Search for Example: Calendar Resource Bulk Create
Your POST request is on the calendar home which is the parent collection of actual calendars. I think you want to do the POST on one of your actual calendar.
https://p22-caldav.icloud.com/XXX/calendars/home/xxxx/
You have events with ATTENDEE property but no ORGANIZER property.

Resources