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"> </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"