Change event description for organizer using VCalendar - outlook

currently we are using outlook to create a meeting and send it to email x . Whenever imap mailbox x gets an email it automatically parses and send updated iCal file (with new description) to all participants that was added and organizer. Everything is ok for all participants, except organizer, description in outlook calendar is not updating for organizer (old description is left). I am adding Sequence + 1 , changing timestamp, but still the same problem. Does that mean that for organizer there is no possible way to change description of already created event? Maybe there is any way to do that?
Thanks in advance!

I would say that this is the expected behavior. As the organizer, you are supposed to receive only REPLY, REFRESH, COUNTER, DECLINECOUNTER IMIP message. Anything else shall be ignored.

Related

:iCal Event not added into organizer calendar

I am creating ics file with 2 attendee and a organizer.
Event is properly creating for both attendees and response is also received when they accept/reject the event. I am sending same invite to organizer as well. On organizer end, event is not adding into their calendar (accept/reject buttons are grayed out). Following two messages are showing:
At the meeting organizer, you do not need to respond to the meeting.
Meeting cannot be found in the Calendar.
How I can change the event so that it also create in organizer calendar?
BEGIN:VCALENDAR
PRODID:-//Appointment Confirmation Event//EN
VERSION:2.0
CALSCALE:GREGORIAN
METHOD:REQUEST
BEGIN:VEVENT
DTSTART:20200506T190000Z
DTEND:20200506T200000Z
DTSTAMP:20200506T190000Z
ORGANIZER:mailto:test1#test.com
UID:Interview_47461#sterlinghoffman.com
ATTENDEE;PARTSTAT=NEEDS-ACTION;ROLE=REQ_PARTICIPANT;RSVP=TRUE:mailto:test2#test.com
ATTENDEE;PARTSTAT=NEEDS-ACTION;ROLE=REQ_PARTICIPANT;RSVP=TRUE:mailto:test3#test.com
X-MICROSOFT-CDO-OWNERAPPTID:-486846808
CREATED:20200504T130737Z
DESCRIPTION:
LOCATION:at 3423
SEQUENCE:0
SUMMARY:Phone Meeting
TRANSP:OPAQUE
END:VEVENT
END:VCALENDAR
I tried with adding organizer as attendee but it not works.
ATTENDEE;PARTSTAT=ACCEPTED;ROLE=CHAIR;RSVP=TRUE;mailto:test1#test.com
Since it sounds like the ics file is not being generated by the organisers outlook calendar, then two possible solutions suggest themselves:
1) On the assumption that it would be redundant / duplication to add an event to organisers calendar (who would be assumed by the application to have already created the event in itself) possibly the more robust solution for across calendar applications: add a sent-by, as per https://icalendar.org/iCalendar-RFC-5545/3-8-4-3-organizer.html
ORGANIZER;SENT-BY="mailto:jane_doe#example.com":
mailto:jsmith#example.com
2) This might be an outlook bug. A quick search come up with same error messages https://developermessaging.azurewebsites.net/2011/09/30/accepting-ical-appts-in-outlook-when-you-are-the-organiser/ and indicates a hotfix. See also How can I add an ICS meeting automatically to the Organizer's calendar?
See also:
iCalendar does not create an event for organizer
ics not updating organizer calendar,
Sending iCalendar to an user who's also the organizer of the event (the last comment to answer about redundancy to add to organiser
Your iCalendar data has an error in organizer, that's why he is not being added to the calendar. As your organizer doesn't have any parameters and only has a cal-address it needs to be separated with colon : not semicolon ;. Correct organizer property:
ORGANIZER:mailto:test1#test.com
For more about this property (and iCalendar) you can read here.
RFC 5545 specification of organizer:
organizer = "ORGANIZER" orgparam ":" cal-address CRLF
If this is not only about the organizer showing up in the calendar, then you can find more answers to an actual Outlook error in this SO question.
Finally I found the issue. It was bug in Outlook. I followed the instruction given in following article and it works.
https://developermessaging.azurewebsites.net/2011/09/30/accepting-ical-appts-in-outlook-when-you-are-the-organiser/
https://support.microsoft.com/en-us/help/940403/a-new-meeting-request-is-not-saved-to-your-calendar-folder-after-you-c
Thank you #anmari

Outlook API, Message Moved to "Sent Items" still beign marked as "[Draft]"

I'm working on an Outlook Add-in, using office.js, where users can send secure emails using backend service.
In compose mode, when the user sends the email, using the add-in of course, the add-in will then move the message to "Sent Items" folder using the Outlook API /message/{id}/move and everything goes OK with the exception that the message in question still being marked as "Draft" by Outlook which is really annoying and does confuse the user who just sent the email by telling him that "this message hasn't been sent"
I searched through the API to see if there is a way to mark an email as "SENT" in order to prevent Outlook from showing this RED hint but with no luck so far!
So, My Question Is: Is there any way to overcome this misleading msg by marking the email as it was sent by Outlook?
Thanks in advance.
Finally, I was able to achieve a perfect solution for this challenge.
Based on:
#BrianClink's comment
This answer (Which uses Graph API but Outlook REST API): Microsoft Graph API mail office 365: Is any option create inbox message NOT as Draft?
The approach/steps I followed to mark a mailItem as "SENT" (and not shown as 'draft') and put it in "SentItems" Folder are as follow:
First, Save the mailItem as "draft" using Office.context.mailbox.item.currentMail.saveAsync then retrieve its ID
Clone this draft mailItem properties eg: 'Sender', 'Subject', 'Body', 'ToRecipients'..etc so you get an exact copy of it.
With the newly cloned mailItem, add '[SingleValueExtendedProperties]' property with this value :
[
{
PropertyId: 'Integer 0x0E07',
Value: '1'
}
];
Serialize the new item as JSON and POST it to "sentitems" folder as follows:
xhr.open('POST', restHost + '/v2.0/me/MailFolders/sentitems/messages/');
xhr.send(clonedEmailJson);
On success, with xhr.status=201 [created], Remove the draft mailitem using a [DELETE] request
And you will end up having a new mail item created in your "sentItems" folder which appears as it was sent by Outlook :)
This was a very helpful solution to me because my users are using my add-in to send secure emails (using 3rd party API) and NOT Outlook, So, I wanted them to have the same UX/feeling as when they use Outlook.
Note:
Although the solution worked for me perfectly, it came with a price!
On slow internet connections or in case emails containing large attachments, the process can be remarkably slow, because the addin will first save the draft to the remote Exchange Server, get its ID, then duplicate it and send it again to the server, then remove the draft-ed one.

Create text/calendar type email that triggers accept/reject/ignore options

I can programmatically create an email with an .ics file attached. The email gets sent, the recipient clicks the .ics attachment to add it to their calendar. This is easily done.
I want to try and make Outlook behave a little different. When the user previews the message it detects that its calendar type and throws a prompt asking the user to take some action. This action decides if it gets pushed into the calendar. In a perfect world to have accept/reject/ignore options would be super sweet. Is it possible to construct/send and email in such a way that Outlook can treat it different from a standard email? E.G perhaps altering the type (CONTENT-TYPE:text/calendar)?
Note - I have seen a solution where the body contains a link to the .ics file informing the user about the calendar invite details. It then has a click here to Accept. This is nice because the .ics file does not have to be attached.
I am workign in VBScript/VBS world although Im not sure this is all that important. Has anybody done this is any sense. Is it even possible?
edited:
I ended up using the EASendMail component located here it has an autoCalendar property which works really well. It embeds the .ics file as a text/calendar and send the message as a text/calendar. The outcome is perfect, just like it was actually sent from the outlook. It previews with with the action buttons and even loads the meeting in Outlook at tentative waiting for action
Your email needs to follow a proper MIME structure for it to be recognized as an invitation. See Multipart email with text and calendar: Outlook doesn't recognize ics

Outlook calendar disappear from inbox after accept the request

Outlook 2010 and 2010+ versions seem to remove meeting request emails from your inbox once you accept or decline the invite.
How do I prevent these from being removed and keep them in my inbox?
Usually the meeting invite also contains useful information or things that need to be followed up later.
In Outlook, this is found under the File tab. Click Options, then Mail, and scroll down to the Send messages section. Uncheck the box next to Delete meeting requests and notifications from Inbox after responding
The provided "ounce of prevention" instructions are spot on! However, when faced with the immediate dilemma of needing the email... one goes to the Deleted Items folder to find the email, BUT (because the invitation email may be prevented from opening by Outlook) one must click Reply to then be able to once again read (and hyperlink-click) the original email entries.
I just did this, but with the Outlook web (Office 365) it's a little different now. To stop calendar invites being deleted do the following:
Go to the settings wheel > View all Outlook settings > Calendar > Events and invitations > uncheck the box 'delete invitations and responses that have been updated'

Sending ical events to Outlook and making the recipient the Organizer

I am trying to write an application that can manage meetings, I want to be able to send an vcal/ical event via email and have the recipient be the organizer. I have populated the organizer field with the recipients email address which does not have the required result. (in outlook 2010 at least) It appears in their calendar but it does not acknowledge them as the organizer so when trying to move the event a message is displayed notifying them that they are not the organizer.
You could try the solution in the answer found here:
Change organizer of outlook AppointmentItem via VSTO
You could also create appointments directly into the intended organizer's calendar using the GetSharedDefaultFolder method, as long as you have delegate access to their mailbox.
Otherwise I do not believe there is any way to remotely set the organizer of a meeting.

Resources