What time zones does Outlook 2007 support in iCalendar invites? - outlook

I understand Outlook only "partially" conforms to the standard. Does Microsoft have a published spec on what they do conform with?
I need a list of the available time zone id's I can use for Outlook meeting invites.
I'm using ical4j to build my invite. I found the ical4j-zoneinfo-outlook project, and it works for the basic America/Chicago and America/New_York time zones. Overall I can't get a list of the complete available id's from this library, and it won't support basic "GMT-6:00".
Any ideas? Thanks!

The best way to get a full list of timezone ids for iCal4j is to check the http://tzurl.org/zoneinfo-outlook website. This is the source for ical4j's timezones.
Note that you still need to either manually or programmatically traverse the site to get all the valid ids.

Related

Google admin sdk - user usage reports not available

I would like to ask you for help with google admin sdk, User Usage Reports. I got following questions:
One of the parameters used to retrieve a usage reports is a date. Unfortunately for current date the reports are not yet available - I must use a date few days in the past. Is there any official rule, recommendation or any advice how to know most recent date for which the reports are already available? Should I query reports for a one day in the past, 3 days, week or...? I just want to have the latest results without worrying about the date...
Even more: sometimes the returned reports are OK for one of the google apps but for other one - like docs - I got warning that its not ready. So my question is: how to get most recent data for all of the apps? (mainly: accounts, docs, gmail).
I am using "all" parameter to retrieve all accounts at once.
Second question is related to first one: assuming I receive partial data - for example no reports for docs - is it possible that when I retrieve reports for all accounts (emails) some of them will have reports ready and some of the only partial data? Or the reports are always either ready or partial and for all accounts (emails) I should expect the same, full or partial data?
Thanks in advance!
Is there any official rule, recommendation or any advice how to know most recent date for which the reports are already available? Should I query reports for a one day in the past, 3 days, week or...? I just want to have the latest results without worrying about the date...
UserUsageReport returns Google Apps service activities across your account's users. the get() method retrieves a report for a set of account users. You can query for any date value provided that its timestamp is represented as ISO 8601 and should use your account's timezone.
how to get most recent data for all of the apps? (mainly: accounts, docs, gmail).
I'm guessing you're using CustomerUsageReport, it may take a while to process a report and thus you may have to retry to call it again after a few hours.
Second question is related to first one: assuming I receive partial data - for example no reports for docs - is it possible that when I retrieve reports for all accounts (emails) some of them will have reports ready and some of the only partial data? Or the reports are always either ready or partial and for all accounts (emails) I should expect the same, full or partial data?
I think this will depend on if the data are now available or not. You can test out various parameter values when accessing the API to test it out.

What actions in Outlook would cause PR_LAST_MODIFIER_NAME or PR_LAST_MODIFICATION_TIME to be modified?

I am testifying soon as to data I gathered using MFCMAPI in which I determined that the PR_LAST_MODIFICATION_TIME did not match the PR_CREATION_TIME or PR_MESSAGE_DELIVERY_TIME of the message.
What actions in Outlook would cause PR_LAST_MODIFIER_NAME or PR_LAST_MODIFICATION_TIME to be modified? Simply reading, marking the message as unread, and viewing the attachments does not modify these properties in my lab tests.
I am trying to determine what other actions performed by the user or on behalf of the user could cause the PR_LAST_MODIFIER_NAME to no longer list the sender and PR_LAST_MODIFICATION_TIME no longer match Delivery/Creation time.
I had the opportunity many months ago to talk to developer on the MFCMAPI project from Microsoft and I am kicking myself in the gut for not writing down his name.
Any help is appreciated.
Do you mean Steve Griffin?
I am not him, but I think I can easily answer your question - every time IMessage::SaveChanges is called, PR_LAST_MODIFICATION_TIME will be reset.

Can the Alarm/Reminder of iCalendar Event be disabled via iCal file?

Quick synopsis:
I've developed a project management system that help our sales reps keep track of events by emailing them iCal files. At the moment everything is working perfectly, but they do not want to have reminders that pop up. Rather, they ONLY want the events to be on their calendars.
Caveat:
Having them change the settings of their email client is, unfortunately, not an acceptable solution.
Research:
According to the iCalendar specifications, the VALARM component can be set so that the Alarm/Reminders are defined, but I can't seem to figure out how to disable the alarms all together.
This seems to work in Outlook 2013, but I don't know why:
BEGIN:VCALENDAR
PRODID:-//Microsoft Corporation//Outlook 15.0 MIMEDIR//EN
VERSION:2.0
METHOD:PUBLISH
X-MS-OLK-FORCEINSPECTOROPEN:TRUE
BEGIN:VEVENT
CLASS:PUBLIC
CREATED:20130625T191929Z
DTEND;VALUE=DATE:20130627
DTSTAMP:20130625T174218Z
DTSTART;VALUE=DATE:20130626
LAST-MODIFIED:20130625T191929Z
PRIORITY:5
SEQUENCE:0
SUMMARY;LANGUAGE=en-us:test
TRANSP:TRANSPARENT
UID:040000008200E00074C5B7101A82E00800000000304147C0A971CE01000000000000000
0100000004A6B73D79A177C4ABFF1E0DCAE7E273F
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 08.00.0681.000">\n<TITLE></TITLE>\n</HEAD>\n<BODY>\n<!-- Converted f
rom text/rtf format -->\n\n<P DIR=LTR><SPAN LANG="en-us"></SPAN></P>\n\n</
BODY>\n</HTML>
X-MICROSOFT-CDO-BUSYSTATUS:FREE
X-MICROSOFT-CDO-IMPORTANCE:1
X-MS-OLK-AUTOFILLLOCATION:TRUE
END:VEVENT
END:VCALENDAR
Am I missing something obvious?
Thank you.
If I remember correctly, at least some versions of Outlook will set the reminder to the default value (15 minutes) if VALARM part is missing. Can you set the alarm to a date in the far future?
If I understand your problem correctly, the client on the receiving end will automatically add a (default) alarm although none was specified in the original VEVENT.
There is no way in iCalendar or iMIP/iTIP to explicitly convey the information that no alarm should ever been associated with an event. And as far as iMIP/iTIP, it is actually a bad practice to have an alarm in the VEVENT that you are sending. After all, my notion of the best alarm is likely to not be yours.
As far as your example, this may be due to the TRANSP property being set to TRANPARENT (you dont care about it since it does not consume your time) but that is a rather wild guess.
There is no way in iCalendar to specify a VALARM component and have it marked as "disabled". It either exists and is active or it simply does not exist.
Some clients like Outlook do not have the concept of disabling an alarm (and being able to reenable it later). The only client I know of that does support the idea of disabling an alarm is Notes but there may be others.
The only way to achieve this is to use an X- property that not everyone supports or to simply remove the VALARM in question.
You could consider having a "send with alarms" preference in your system so that users can indicate if they want you to send them or not. If users opt out then simply remove the VALARM component(s) from what you generate before you send it to them.
Well, I had the same issue. I created a .ics to bulk import a few dozen calendar holds based on a table from Excel. I did not define the VALARM, but when using the mac calendar import it natively inherited this and applied my default alarm. Comparing events with and without an alarm set, I found all events had the VALARM blocks, BUT all events I had marked as no reminder had the exact same trigger value set. Looks like setting it for a Value of 4/1/1976 at 00:55:45Z is the equivocal to no alarm.
BEGIN:VALARM
X-WR-ALARMUID:#####
TRIGGER;VALUE=DATE-TIME:19760401T005545Z
X-APPLE-DEFAULT-ALARM:TRUE
ACTION:NONE
END:VALARM
And this is why 4/1/1976 haha. Typical programming fashion, there's always a reason behind the random date or name selected. Kinda like Python's name...
"Founders Steve Jobs and Steve Wozniak created Apple Computer on April 1, 1976,[1] and incorporated the company on January 3, 1977,[2] in Cupertino, California." - wikipedia

Exchange Web Services, unable to set startTimeZone of appointment (java api)

When trying to set the start time zone of an appointment (in ews java API 1.1.5) I get an error. I'm trying to set the time zone because an exception is raised when using appointment.setStart otherwise.
Appointment = new Appointment(service);
appointment.setStartTimeZone(new TimeZoneDefinition() {{setId("what should go hère")}});
appointment.setStart(startTime);....
Using exchange 2007
It finally appear that the JAVA EWS API is a bad (and full of bugs) port of the C# version.
So the rule is simply to not use it.
There is some alternative out there :
J-xchange
For my specific question, it looks like setStartTimeZone function expect a C# object, which it's not possible to get.
I was able to get around this by commenting out the validation code regarding StartTimeZone (lines 247-256 of Appointment.java) and recompiling the jar. If I pass in date/times based on UTC, the appointment gets created in the user's timezone.

Sync mailchimp campaign click and open with some other database

I am working on mailchimp integration.
I need to pull campaign stats (opens and clicks) and put it in my local database.
Using mailchimp api i am getting the list of all the users with their action taken.
But my issue is how to keep data sync at all time.
Is there any way to skip that data from mailchimp api that i had synced already.
The problem is the entire data set can change between calls and there is no 'since' parameter... The only way to get an updated picture is to query all records and update....
Keeping stat "data synced at all times" really would just depend on your solution (have it query for updates when you/your users access that section...)
You could expidite the update process by keeping track of previous calls/updates with the timestamp (keep track of the timestamp and only update/add records that are newer than the last sync... )
As I said, there is currently no "since" command for the campaignEmailStatsAIMAll method (and no direct equivelent in the export API...)
A 'since' parameter would actually be a good feature... So if coding your own solution to track updates via the timestamp is undesirable, you may want to ask the question in the google group or post a feature request in the google code project:
http://code.google.com/p/mailchimp-api/
EDIT: I just opened the feature request as it may solve a similar issue for an upcomming project:
http://code.google.com/p/mailchimp-api/issues/detail?id=60

Resources