Icalendar ICS update does not work on Google Calendar

I have some problems connecting ICS to Gmail / Google calendar addresses. When I need to change the event, I send the update by mail with the ICS file with the same UID of the source event. However, GCalendar adds a second event. How can I overcome this?

This is the first contents of the ICS file:

BEGIN:VCALENDAR VERSION:2.0 CALSCALE:GREGORIAN METHOD:REQUEST BEGIN:VEVENT DTSTART:20130425T090000 DTEND:20130425T100000 DTSTAMP:20130206T101100 ORGANIZER;CN=Test test:mailto: test@test.com ATTENDEE: test@test.eu UID:CALEVENT_TS090519840000000005 DESCRIPTION:test SUMMARY:test LOCATION:Test SEQUENCE:1 STATUS:CONFIRMED END:VEVENT END:VCALENDAR 

And this is the contents of the ICS update file:

 BEGIN:VCALENDAR VERSION:2.0 CALSCALE:GREGORIAN METHOD:REQUEST BEGIN:VEVENT DTSTART:20130425T100000 DTEND:20130425T110000 DTSTAMP:20130206T101100 ORGANIZER;CN=Test test:mailto: test@test.com ATTENDEE: test@test.eu UID:CALEVENT_TS090519840000000005 DESCRIPTION:test SUMMARY:test LOCATION:Test SEQUENCE:2 STATUS:CONFIRMED END:VEVENT END:VCALENDAR 

When I receive update files and I click "add this event to the calendar", I will find two different events.

This is the original raw letter:

 Delivered-To: test@test.eu Received: by 10.216.231.19 with SMTP id k19csp190640weq; Sat, 9 Feb 2013 08:01:11 -0800 (PST) X-Received: by 10.194.7.136 with SMTP id j8mr15530679wja.38.1360425671327; Sat, 09 Feb 2013 08:01:11 -0800 (PST) Return-Path: < test@test.eu > Received: from mxavas8.aruba.it (mxavas8.aruba.it. [62.149.157.18]) by mx.google.com with SMTP id 45si59706250eeg.83.2013.02.09.08.01.11; Sat, 09 Feb 2013 08:01:11 -0800 (PST) Received-SPF: neutral (google.com: 62.149.157.18 is neither permitted nor denied by best guess record for domain of test@test.eu ) client-ip=62.149.157.18; Authentication-Results: mx.google.com; spf=neutral (google.com: 62.149.157.18 is neither permitted nor denied by best guess record for domain of test@test.eu ) smtp.mail=test@test.eu Received: (qmail 4991 invoked by uid 89); 9 Feb 2013 16:01:10 -0000 Delivered-To: test.eu-test@test.eu Received: (qmail 4424 invoked by uid 89); 9 Feb 2013 16:01:04 -0000 Received: from unknown (HELO mxcmd03.ad.aruba.it) (10.10.10.67) by mxavas8.ad.aruba.it with SMTP; 9 Feb 2013 16:01:04 -0000 Received: from smtpdg11.aruba.it ([62.149.158.229]) by mxcmd03.ad.aruba.it with bizsmtp id yFwi1k01A4xF4Fy01G14N7; Sat, 09 Feb 2013 17:01:04 +0100 Received: from localhost ([79.54.181.227]) by smtpcmd04.ad.aruba.it with bizsmtp id yG141k0074umbYX01G140P; Sat, 09 Feb 2013 17:01:04 +0100 Date: Sat, 9 Feb 2013 17:01:04 +0100 Return-Path: test@test.eu To: test@test.eu From: Event notification < test@test.eu > Reply-To: Event notification < test@test.eu > Subject: New Event Message-ID: < 238497c6d05cffae45716486e74a8009@localhost > X-Priority: 3 X-Mailer: PHPMailer 5.2.2 (http://code.google.com/a/apache-extras.org/p/phpmailer/) MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="b1_238497c6d05cffae45716486e74a8009" X-Spam-Rating: mxavas8.ad.aruba.it 1.6.2 0/1000/N --b1_238497c6d05cffae45716486e74a8009 Content-Type: multipart/alternative; boundary="b2_238497c6d05cffae45716486e74a8009" --b2_238497c6d05cffae45716486e74a8009 Content-Type: text/plain; charset=iso-8859-1 Content-Transfer-Encoding: 8bit test DateTimeRoom 02/05/201309.00 - 10.15ROOM1 --b2_238497c6d05cffae45716486e74a8009 Content-Type: text/html; charset=iso-8859-1 Content-Transfer-Encoding: 8bit <html> <head> <meta http-equiv="Content-Type" content="text/html;"> <style type="text/css"> <!-- td{ background-color: #eee; } --> </style> </head> <body style="font-family: Arial, Helvetica, sans-serif; color: #333;"> <p style="text-align:center;"><img src="images/logo2.png" alt="Logo" /></p> <hr style="border: 1px solid #ccc; width: 80%;" /> <div style=" width: 80%; margin: 10px auto;"> <h4></h4> <h3>test</h3> <table style="width: 400px; table-layout: fixed; border: 1px solid #ccc;"> <tr><th>Date</th><th>Time</th><th>Room</th></tr> <tr><td>02/05/2013</td><td>09.00 - 10.15</td><td>ROOM 1</td></tr> </table> </div> </body> </html> --b2_238497c6d05cffae45716486e74a8009-- --b1_238497c6d05cffae45716486e74a8009 Content-Type: text/calendar; name="event.ics" Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename="event.ics" BEGIN:VCALENDAR VERSION:2.0 CALSCALE:GREGORIAN PRODID:tsCalendar METHOD:REQUEST BEGIN:VEVENT DTSTART:20130502T090000 DTEND:20130502T101500 DTSTAMP:20130209T170100 ORGANIZER:mailto: test@test.eu ATTENDEE:mailto: test@test.eu UID:CALEVENT_TS090519840000000013 DESCRIPTION:test SUMMARY:test LOCATION:ROOM1 (floor: prova) SEQUENCE:1 STATUS:CONFIRMED END:VEVENT END:VCALENDAR --b1_238497c6d05cffae45716486e74a8009-- 

Here are other tests with the ORGANIZER email address the same as the sender's email, and the ATTENDEE email address is the same as the recipient's email address.

Creation http://tny.cz/6396ba62 Update http://tny.cz/08ac81c0

+6
source share
2 answers

see RFC5546 Update Event

The event moves to another time. The combination of the "UID" property (no change) and the "SEQUENCE" property (typed before 1) indicate the update.

in your case, given what you have divided, you probably need to add the SEQUENCE property to your file and increase it for each update you make.

Update: considering the file you added in ix format, you are missing the organizer and visitor fields with the update file below.

 BEGIN:VCALENDAR VERSION:2.0 CALSCALE:GREGORIAN PRODID:pyICSParser METHOD:REQUEST BEGIN:VEVENT DTSTART:20130425T090000 DTEND:20130425T100000 DTSTAMP:20130206T101100 ORGANIZER:mailto: organiser@example.com ATTENDEE:mailto: attendee@example.com UID:CALEVENT_TS090519840000000005 DESCRIPTION:test SUMMARY:test LOCATION:Test SEQUENCE:1 STATUS:CONFIRMED END:VEVENT END:VCALENDAR 

You also need to match the sender's email address with the name of the organizer and the same about the visitor, something like the one below was confirmed with the Google calendar.

eml_as_string:

 Subject: New Event Message-ID: < 238497c6d05cffae45716486e74a8009@localhost > X-Priority: 3 X-Mailer: PHPMailer 5.2.2 (http://code.google.com/a/apache-extras.org/p/phpmailer/) MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="b1_238497c6d05cffae45716486e74a8009" X-Spam-Rating: mxavas8.ad.aruba.it 1.6.2 0/1000/N --b1_238497c6d05cffae45716486e74a8009 Content-Type: multipart/alternative; boundary="b2_238497c6d05cffae45716486e74a8009" --b2_238497c6d05cffae45716486e74a8009 Content-Type: text/plain; charset=iso-8859-1 Content-Transfer-Encoding: 8bit test DateTimeRoom 02/05/201309.00 - 10.15ROOM1 --b2_238497c6d05cffae45716486e74a8009 Content-Type: text/html; charset=iso-8859-1 Content-Transfer-Encoding: 8bit <html> <head> <meta http-equiv="Content-Type" content="text/html;"> <style type="text/css"> <!-- td{ background-color: #eee; } --> </style> </head> <body style="font-family: Arial, Helvetica, sans-serif; color: #333;"> <p style="text-align:center;"><img src="images/logo2.png" alt="Logo" /></p> <hr style="border: 1px solid #ccc; width: 80%;" /> <div style=" width: 80%; margin: 10px auto;"> <h4></h4> <h3>test</h3> <table style="width: 400px; table-layout: fixed; border: 1px solid #ccc;"> <tr><th>Date</th><th>Time</th><th>Room</th></tr> <tr><td>02/05/2013</td><td>09.00 - 10.15</td><td>ROOM 1</td></tr> </table> </div> </body> </html> --b2_238497c6d05cffae45716486e74a8009-- --b1_238497c6d05cffae45716486e74a8009 Content-Type: text/calendar; name="event.ics" Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename="event.ics" BEGIN:VCALENDAR VERSION:2.0 CALSCALE:GREGORIAN PRODID:tsCalendar METHOD:REQUEST BEGIN:VEVENT DTSTART:20130502T090000 DTEND:20130502T101000 DTSTAMP:20130209T170100 ORGANIZER:mailto: test@test.eu ATTENDEE:mailto: test@test.eu UID:CALEVENT_TS090519840000000013 DESCRIPTION:test SUMMARY:test LOCATION:ROOM1 (floor: prova) SEQUENCE:1 STATUS:CONFIRMED END:VEVENT END:VCALENDAR --b1_238497c6d05cffae45716486e74a8009-- 

on which the script was applied below:

 # -*- coding:utf-8 -*- import smtplib def sendInvite(fro,to,emlasstring): mailServer = smtplib.SMTP('smtp.gmail.com', 587) mailServer.ehlo() mailServer.starttls() mailServer.ehlo() mailServer.login(login, password) mailServer.sendmail(fro, to, emlasstring) mailServer.close() newUID = "UID:newCALEVENT_TS090519840000000016" #needed to change UID as once an event was sent its UID is locked and a few attempts were needed to make the script work eml = open("SO14712929_1.eml",'r').read() emlhead = "To: "+attendee_eml+CRLF emlhead += "From:"+fro+CRLF emlhead += "Reply-To: "+fro+CRLF eml = emlhead+eml eml = eml.replace("ORGANIZER:mailto: test@test.eu ","ORGANIZER:mailto:"+fro_eml) eml = eml.replace("ATTENDEE:mailto: test@test.eu ","ATTENDEE:mailto:"+attendee_eml) eml = eml.replace("UID:CALEVENT_TS090519840000000013",newUID) sendInvite(fro,attendees,eml) print "invite sent" eml = open("SO14712929_2.eml",'r').read() emlhead = "To: "+attendee_eml+CRLF emlhead += "From:"+fro+CRLF emlhead += "Reply-To: "+fro+CRLF eml = emlhead+eml eml = eml.replace("ORGANIZER:mailto: test@test.eu ","ORGANIZER:mailto:"+fro_eml) eml = eml.replace("ATTENDEE:mailto: test@test.eu ","ATTENDEE:mailto:"+attendee_eml) eml = eml.replace("UID:CALEVENT_TS090519840000000013",newUID) sendInvite(fro,attendees,eml) print "updated invite sent" 
+5
source

Try METHOD: PUBLISH instead of METHOD: REQUEST

0
source

All Articles