How do I get Outlook to process an event update? - outlook

I am trying to create, update and delete an event in Outlook 2007 (but optimally it would work for all versions). Creating and deleting the event is working fine. I followed several threads but for some reason the update action failed.
When I double click on the ICS file, Outlook opens a window and the only choice I have is to delete. But the event it wants to delete is not the old one but the new one (even if it's not created yet). So when I click delete the old event remains here.
The UID is the same, sequence has been increase by 1, DTSTAMP in newer.
First event:
BEGIN:VCALENDAR
PRODID:-//Blatant Media Corporation//Absorb LMS//EN
VERSION:2.0
METHOD:PUBLISH
BEGIN:VEVENT
CLASS:PUBLIC
DTSTART;VALUE=DATE-TIME:20101111T13000000Z
DTEND;VALUE=DATE-TIME:20101111T14000000Z
UID:AbsorbClass150180
DESCRIPTION:A nov session for demoing only\n\nVenue:\nBoardroom 123\n\nInstructor:\nMike Owens\n\nCourse Description:\nInstructor Led Training (ILT) topic: First Aid\n\n------------------\nAbsorb Anywhere\nhttp://www.absorbtraining.com
LOCATION:Boardroom 123
SUMMARY:First Aid: Nov
DTSTAMP:20101107T15353400Z
LAST-MODIFIED:20101107T15353400Z
STATUS:CONFIRMED
SEQUENCE:0
END:VEVENT
END:VCALENDAR
Updated event:
BEGIN:VCALENDAR
PRODID:-//Blatant Media Corporation//Absorb LMS//EN
VERSION:2.0
METHOd:REQUEST
BEGIN:VEVENT
CLASS:PUBLIC
DTSTART;VALUE=DATE-TIME:20101111T15000000Z
DTEND;VALUE=DATE-TIME:20101111T16000000Z
UID:AbsorbClass150180
DESCRIPTION:A nov session for demoing only\n\nVenue:\nBoardroom 123\n\nInstructor:\nMike Owens\n\nCourse Description:\nInstructor Led Training (ILT) topic: First Aid\n\n------------------\nAbsorb Anywhere\nhttp://www.absorbtraining.com
LOCATION:Boardroom 123
SUMMARY:First Aid: Nov
DTSTAMP:20101108T15353400Z
LAST-MODIFIED:20101108T15353400Z
ORGANIZER:Owens
SEQUENCE:1
END:VEVENT
END:VCALENDAR

Add the following to both files:
ORGANIZER:donotreply#test.com
not sure why, but you can't seem to update events without this.

Related

MismatchSenderId in push notification with Ruby

I am building a backend with Ruby (padrino framework) and would like to send push notification.
I used this gem for push notification.
https://github.com/spacialdb/fcm
I used server key from firebase console could setting.
This is code what I have used.
fcm = FCM.new(settings.fcm_serverkey)
registration_ids= [settings.test_key]
options = {data: {score: "123"}, collapse_key: "updated_score"}
response = fcm.send(registration_ids, options)
And this is error what I got.
{:body=>"{\"multicast_id\":8815634661444747749,\"success\":0,\"failure\":1,\"canonical_ids\":0,\"results\":[{\"error\":\"MismatchSenderId\"}]}", :headers=>{"content-type"=>["application/json; charset=UTF-8"], "date"=>["Wed, 20 Dec 2017 21:05:04 GMT"], "expires"=>["Wed, 20 Dec 2017 21:05:04 GMT"], "cache-control"=>["private, max-age=0"], "x-content-type-options"=>["nosniff"], "x-frame-options"=>["SAMEORIGIN"], "x-xss-protection"=>["1; mode=block"], "server"=>["GSE"], "alt-svc"=>["hq=\":443\"; ma=2592000; quic=51303431; quic=51303339; quic=51303338; quic=51303337; quic=51303335,quic=\":443\"; ma=2592000; v=\"41,39,38,37,35\""], "accept-ranges"=>["none"], "vary"=>["Accept-Encoding"], "connection"=>["close"]}, :status_code=>200, :response=>"success", :canonical_ids=>[], :not_registered_ids=>[]}
What the important thing is "MismatchSenderId" from error log.
I can't find param for senderID in github guide.
They only mentioned about serverkey.
Any advice will be big help for me.
Thanks
I was going through the same issue recently.
In my case, I was not using the correct Server-ID because we have to use the Server-Id from the project where our app has been registered.
You can check this in Google-services.json
secondly please ensure that you allowed and added your App to your Firebase project.
I find the best reason explanation here

Outlook 2016 Addin VSTO Catch new calendar event

I have a Add-in for Outlook 2016 and I catch when a new calendar event is created by code:
inspectors = this.Application.Inspectors;
inspectors.NewInspector +=
new Microsoft.Office.Interop.Outlook.InspectorsEvents_NewInspectorEventHandler(Inspectors_NewInspector);
This is working fine if the user:
1. Click on [New Appointment] in the ribbon
2. Right click on the calendar and choose [New Appointment]
3. Doubleclick in the calendar
But if the user create a new calendar event by entering a text directly in the calendar the event is not raised.
How do I catch this?
In that case no Inspector window is created, so you will not trap into the NewInspector event. Instead, you can handle the ItemAdd event of the Items class which is fired when one or more items are added to the specified collection. Note, this event does not run when a large number of items are added to the folder at once.

Why is Outlook suppressing HTML formatting when an .ics attachment is present?

I am trying to set up an email with an .ics file attached. I also want the body of the message to contain a small amount of HTML formatting (a single line coloured red).
I have got all of this set up properly, and all seems to be working on various other mail programs (gmail, mac Mail). However in Outlook (specifically Outlook 2013 on Win10) it fails to render the colour.
If I send an identical message without the .ics attachment, all renders fine.
I have a feeling this may be a 'feature' of Outlook that when showing a calendar preview for the .ics file it won't show anything that might detract from their wonderful preview pane (like some important text that has been rendered in red to make sure people have seen it); but is there something I'm missing?
Full code from the email below:
------=_Part_732_741500152.1445600688123
Content-Type: text/html; charset=utf-8
Content-Transfer-Encoding: 7bit
<html>
<p>Dear Jazzer,</p>
<p style="font-weight:bold">This is some bold text</p>
<p style="color:red">This is some red text</p></html>
------=_Part_732_741500152.1445600688123
Content-Type: text/calendar; method=request; name="Test Learning Event.ics"
Content-Transfer-Encoding: 7bit
BEGIN:VCALENDAR
PRODID:-//Microsoft Corporation//Outlook 15.0 MIMEDIR//EN
VERSION:2.0
METHOD:REQUEST
X-MS-OLK-FORCEINSPECTOROPEN:TRUE
BEGIN:VEVENT
UID:a14L0000001ufrEIAQ
CLASS:PUBLIC
SUMMARY:Test Entry
LOCATION:Bristol,UK
DESCRIPTION:test
CREATED:20151023T114447Z
DTSTART:20151022T140000Z
DTEND:20151023T120000Z
DTSTAMP:20151023T114447Z
LAST-MODIFIED:20151023T114447Z
PRIORITY:5
SEQUENCE:1
TRANSP:OPAQUE
X-MICROSOFT-CDO-BUSYSTATUS:OOF
X-MICROSOFT-CDO-INTENDEDSTATUS:OOF
X-MICROSOFT-CDO-IMPORTANCE:1
X-MICROSOFT-DISALLOW-COUNTER:FALSE
X-MS-OLK-AUTOFILLLOCATION:FALSE
X-MS-OLK-CONFTYPE:0
END:VEVENT
END:VCALENDAR
------=_Part_732_741500152.1445600688123--
Create a MIME message of type text/calendar (just a single MIME part) and populate it with the contents of your ICS file. HTML formatting must be added to the X-ALT-DESC iCal header with an extra attribute FMTTYPE=text/html:
X-ALT-DESC;FMTTYPE=text/html:<html>\n
<p>Dear Jazzer,</p>\n
<p style="font-weight:bold">This is some bold text</p>\n
<p style="color:red">This is some red text</p></html>
Replace the following with your Description.
DESCRIPTION:test
X-ALT-DESC;FMTTYPE=text/html:<html><font face="Arial,sans-serif";>test<br><br></font></html>

How to update attendee list to host in icalender

i'm having issues in sending icalender update to host of the meeting. here i have paste both two of my calender.ics files.
First invitation, with publish method is working and adding to the calender without any issues. But when i send the second email as a update with new attendees(using REQUEST), its not updating with my first calender invitation in outlook.
First Invitation
BEGIN:VCALENDAR
PRODID:-//Microsoft Corporation//Outlook 15.0 MIMEDIR//EN
VERSION:2.0
CALSCALE:GREGORIAN
METHOD:PUBLISH
STATUS:Testbooking
X-MS-OLK-FORCEINSPECTOROPEN:TRUE
BEGIN:VEVENT
CLASS:PUBLIC
CREATED:20140916T060318Z
DESCRIPTION:
DTEND:20140916T090037Z
DTSTAMP:20140916T060320Z
DTSTART:20140916T083037Z
LAST-MODIFIED:20140916T060320Z
LOCATION:Chai Chee - Oasis.Oasis.4th Floor.Celebes
ORGANIZER;CN=Marlen Brayan:mailto:pasan#ecyber.com
PRIORITY:5
SEQUENCE:1
SUMMARY;LANGUAGE=en-us:Testbooking
TRANSP:OPAQUE
UID:events.ivivaworks.com_FB_Booking_48
X-ALT-DESC;FMTTYPE=text/html:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">\n<HTML>\n<HEAD>\n
<META NAME="Generator" CONTENT="MS Exchange Server version 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">
<FONT FACE="Calibri">
</FONT></SPAN><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:FALSE
X-MS-OLK-CONFTYPE:0
BEGIN:VALARM
TRIGGER:-PT15M
ACTION:DISPLAY
DESCRIPTION:Reminder
END:VALARM
END:VEVENT
END:VCALENDAR
Second Invitation
BEGIN:VCALENDAR
PRODID:-//Microsoft Corporation//Outlook 15.0 MIMEDIR//EN
VERSION:2.0
CALSCALE:GREGORIAN
METHOD:REQUEST
STATUS:Testbooking
X-MS-OLK-FORCEINSPECTOROPEN:TRUE
BEGIN:VEVENT
ATTENDEE;ROLE=REQ-PARTICIPANT;CN="Frederic Reboulleau";RSVP=TRUE:mailto:frederic.reboulleau#orange.com
ATTENDEE;ROLE=REQ-PARTICIPANT;CN="pasan fernando";RSVP=TRUE:mailto:i.pasan#yahoo.com
CLASS:PUBLIC
CREATED:20140916T060318Z
DESCRIPTION:
DTEND:20140916T090037Z
DTSTAMP:20140916T061357Z
DTSTART:20140916T083037Z
LAST-MODIFIED:20140916T061357Z
LOCATION:Chai Chee - Oasis.Oasis.4th Floor.Celebes
ORGANIZER;CN=Marlen Brayan:mailto:pasan#ecyber.com
PRIORITY:5
SEQUENCE:4
SUMMARY;LANGUAGE=en-us:Testbooking
TRANSP:OPAQUE
UID:events.ivivaworks.com_FB_Booking_48
X-ALT-DESC;FMTTYPE=text/html:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">\n<HTML>\n<HEAD>\n
<META NAME="Generator" CONTENT="MS Exchange Server version 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">
<FONT FACE="Calibri">
</FONT></SPAN><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:FALSE
X-MS-OLK-CONFTYPE:0
BEGIN:VALARM
TRIGGER:-PT15M
ACTION:DISPLAY
DESCRIPTION:Reminder
END:VALARM
END:VEVENT
END:VCALENDAR
![enter image description here][1]
This is how second invitation shows in outlook. it shows as no response required. but its not updating with first email too. am i doing anything wrong in formatting of ics file?
There's no obvious problem. Your file passes the online validator. Your UIDs are the same. Your sequence number advances, though it should be 0 in the first invitation.
In general, Outlook is very picky, and the only approach that works I find is to copy exactly a working example. Use Gmail to generate an invitation, then modify the event and resend from Gmail. Note exactly how the second invitation is processed by Outlook. Do you need to preview the invitation to provoke the calendar update? Use Gmail "show original" to inspect and copy exactly the structure of the Icalendar, including the order of fields.

How to build html link to a google calendar event?

Using the google calendar API v3, I added an event to a google calendar. Now I want to built an html link so that someone can click and view the calendar event.
Here's what I have tried:
View Google
the href looks like:
https://www.google.com/calendar/feeds/default/private/full/bigstringhere1ovmuup7mjf0
Problem is I get a a 401 Error "Authorization Required"
How can I build a link to view/edit the calendar event based on a google calendar ID?
There is a way! To view a public calendar event, use a link of the form:
https://www.google.com/calendar/event?eid={event-id}&ctz={timezone}
where {event-id} is the unique event id, and {timezone} is one of these time zones.
Here's an example: link to a specific public calendar event.
If you have editing rights to the calendar this event is from, you will be able to edit the event and see the guest list. Otherwise, you just see the public information about the event.
Since it can be difficult to determine the event id, here's a bookmarklet that produces a link to your Google Calendar event when you are editing its Details page:
javascript:(function(){ try { window.prompt('Shareable link to this event:','https://www.google.com/calendar/event?eid='+document.getElementsByClassName('ep')[0].getAttribute('data-eid')) } catch (e) {alert("Use this bookmarklet to get a shareable link to a Google Calendar event when editing its Details page.")}})()
And a version of this bookmarklet which works with the new (as of 2017) Google Calendar UI:
javascript:(function(){
window.prompt('Shareable link to this event:',
'https://www.google.com/calendar/event?eid='+
window.location.href.split("/").pop().split("?")[0])
})()
(Also possibly useful, how to link to a specific day of a public Google calendar:
https://www.google.com/calendar/embed?src={calendar-id}&mode=day&dates={yyyymmdd}%2F{yyyymmdd}
where {calendar-id} is the calendar's id and {yyyymmdd} is the day you want to link to.
Optional parameters include the time zone and whether to display various items, for example:
&ctz=Asia/Taipei&showNav=0&showPrint=0&showCalendars=0
Example: link to single day of a public calendar.)
Here is the HTML to build the link:
https://www.google.com/calendar/render?action=TEMPLATE&text=Your+Event+Name&dates=20140127T224000Z/20140320T221500Z&details=For+details,+link+here:+http://www.example.com&location=Waldorf+Astoria,+301+Park+Ave+,+New+York,+NY+10022&sf=true&output=xml
Event URL is not calendar URL.
This link brings explanations: Google Calender v3
And the way to build this url is:
GET https://www.googleapis.com/calendar/v3/calendars/calendarId/events/eventId
where calendarId & eventId are parametres.
Hope this is helpfull.
I wanted to post this because it is tangental to the question being asked and this post comes up when I was trying to do the following.
I was trying to generate a Google Event for the sole purpose of being added to other people's calendars, not saved to any particular calendar. I've found an example here and I'm currently trying to figure out the URL params it accepts.
https://www.google.com/calendar/render?action=TEMPLATE&text=PRP+Due&dates=20141106T120000Z/20141106T120000Z&details&location&trp=false
To view Google calender event by event Id.
You can use below example:
https://www.google.com/calendar/event?eid={event-id}&ctz={timezone}
Example For Indian TimeZone :
https://calendar.google.com/calendar/event?eid=ZjVicWczYWpndmh0ZmdtYmd0cXFxZWc3czggdTJoZmoybGg0aDcwbmhzMzV2c25pamd1dG9AZw&ctz=Asia/Kolkata
To create a page where users can view the Calendar of Events publicly, a user who has permissions to change calendar sharing settings must first make the calendar public:
From the Google Calendar, at the top right, click the Settings wheel.
In Settings, click the "Calendars" tab.
Click the name of the Calendar you're working with.
Next, click the "Share this Calendar" tab. Make sure the checkboxes are checked from the screenshot below (circled in red).
Afterwards, click the "Calendar Details" tab, located at the top left.
Scroll down to the "Calendar address" section, as shown in the screenshot below.
Click "HTML".
A popup modal will appear, which includes the public URL you'll need to access the Calendar publicly.
Here is an example of what the URL might look like:
https://www.google.com/calendar/embed?src=domain.comrandomstring#group.calendar.google.com&ctz=America/Los_Angeles&gsessionid=OK
In addition, see the Google Calendar Data API for information on creating and working with Calendar Gadgets.
To get the event from the Google Calendar API v3, call:
GET https://www.googleapis.com/calendar/v3/calendars/calendarId/events/eventId
The event contains a property htmlLink, which is exactly what you need:
An absolute link to this event in the Google Calendar Web UI. Read-only.
See https://developers.google.com/google-apps/calendar/v3/reference/events.
The link looks like this:
https://www.google.com/calendar/event?eid=XzYwcTMwYzFnNjBvMzBlMWk2MG80YWMxZzYwcmo4Z3BsODhyajJjMWg4NHMzNGg5ZzYwczMwYzFnNjBvMzBjMWc2c28zMmRoaDhwMGpnaDIxNnQyNDZkaGc2NG8zMGMxZzYwbzMwYzFnNjBvMzBjMWc2MG8zMmMxZzYwbzMwYzFnNzByNDRoMWk2b3AzOGUxazZoMms2aDFrNmQwamNkaTI2OHBrMmhpMjg4czRjZ2hoNzBwMF8yMDA2MDUwNSBob3BtYW4ubmxfbjE5ZGF2YWgxb3Zkb3EzbGl2N2t1aWU5Z.
It will open the event full screen, only of course if you have access to the event. The screen will contain a back button to go back to the calendar.
Clearly, you can't construct this link yourself so you will need to do a call to the API, but you are probably already doing that anyway.
When an google calendar event created, then in the response we got result property. In this result property, one more htmlLink would be available which have link regarding the event being created. Now, it can opened :
window.open(response.result.htmlLink, '_target');
Wordpress + ACF google cal.
Set your ACF date picker to custom return Y-m-d g:i a
Then create a google formatted date.
$event_start_date = get_field('event_start_date');
$event_print_date = date('d/m/Y',strtotime($event_start_date));
$event_start_time = get_field('event_start_time');
$event_end_date = get_field('event_end_date');
$event_print_enddate = date('d/m/Y',strtotime($event_end_date));
$event_end_time = get_field('event_end_time');
$calendarDate = date('Ymd',strtotime($event_start_date)) .'T'. date('Hi',strtotime($event_start_time)). '00/' . date('Ymd',strtotime($event_end_date)) .'T'. date('Hi',strtotime($event_end_time)) . '00';
Link
Add this event to my Google Calendar
private string GetEventLink(string calendarId, string eventId)
{
var calendarIdToEncode = calendarId.Substring(0, calendarId.IndexOf("#", StringComparison.Ordinal) + 2);
var eId = Convert.ToBase64String(Encoding.UTF8.GetBytes(eventId + " " + calendarIdToEncode));
return $"https://www.google.com/calendar/event?eid={eId.Substring(0, eId.Length - 2)}";
}
Google Have created a page to DIY.
https://support.google.com/calendar/answer/3033039

Resources