Saturday, October 24, 2009

Import Calendar data into Google Calendar via CSV files

You can import CSV files into an existing Google Calendar (but watch the time zones). Here's the format outline ...
About CSV files - Google Calendar Help

Subject,Start Date,Start Time,End Date,End Time,All Day Event,Description,Location,Private
Final Exam,05/12/08,07:10:00 PM,05/12/08,10:00:00 PM,False,Two essay questions that will cover topics covered throughout the semester,"Columbia, Schermerhorn 614",True
The above example omits the usual CSV quotes from most of the strings, but elsewhere we're told they're optional. (In practice you should use them for all strings.)

The documentation is unclear, but looking at my Google Calendar settings it looks like you import into an existing calendar. I don't know if it appends or replaces, I'm guessing append.

I expect to try this soon for our hockey org calendars.

Update 11/1/09: This was an absolute bugger to get to work. Google is pissily picky about the precise format and there are no useful error messages. During the times I was attempting this Google Calender went briefly AWOL -- something that happens far too often.

Here's the header and first row of the CSV file that I was finally able to import. It looks like you need the bloody seconds in the date. I worked with Excel for Mac, used the convert functions to turn text into numbers, then chose the precise format, then exported.
Subject,Start Date,Start Time,End Date,End Time,All Day Event,Description,Location,Private
Edgumbe Peewee Hockey,10/24/09,2:10:00 PM,10/24/09,3:10:00 PM,FALSE,Practice, Highland North,FALSE
Google must have given this chore to an intern who they hated. The feeling was evidently mutual.

Update 11/29/09: There is no way to correct a mistake. I imported 40 events into an existing calendar, and realized I'd made a mistake. I couldn't rapidly remove them, nor could I purge the calendar and reimport. I had to delete the calendar -- and all the subscriptions -- so I could start over. To think some people wonder why I hate the cloud ...

--
My Google Reader Shared items (feed)

Friday, October 23, 2009

MobileMe: Integrating Work and Personal Contacts

It can be exceedingly difficult to get corporate Exchange Server contacts to an iPhone if you don’t have ActiveSync access to the Exchange Server.

In this setting you can’t sync work Contacts with MobileMe (you used to be able to, but no longer. I’ve never heard an explanation of why Apple pulled this capability). I don’t think you can use iTunes sync either, though I don’t want to sync my iPhone at work anyway.

There are several software solutions that claim to be able to extract these Contacts. I’ve tried most of them – they were either buggy or they couldn’t resolve EX style corporate email references. In Outlook 2003 you could fairly readily export Contacts as vCards, but when I do that with Outlook 2007 I get weird formatting problems. (Of course this is export, not sync, but we can’t be picky here).

The only solution I’ve gotten to work thus far is to put my corporate contacts into a PST file, take them home, put them in non-Exchange Outlook at home, and sync to MobileMe. [1]

I sync my OS X Address Book to MobileMe as well, then sync my iPhone to OS X Address Book. That gives me work and home addresses both on my iPhone, on my desktop machines, and on my laptop. [2]

Here are the details of the initial setup. Once you’re done with that maintenance isn’t too bad.

Notes

  • The “source of truth” for the work contacts is corporate Outlook, the “source of truth” for my home contacts is OS X Address Book.
  • This is not synchronization. It is publishing one way. Updates after initial sync are discussed below.

There are two sources of data that will sync to MobileMe.

  1. Outlook 2003 home: Starts with an empty Contacts Folder. An external data folder (PST) holds material copied from work including all Contacts.
  2. OS X 10.5 Address Book: Has several Groups, but one Group has no members. It is is called Contacts_Work. (Warning: If you’re cleaning out a Group in Address Book it’s easy to “remove from group” when you want to delete.)

Step one: Sync OS X Address Book to MobileMe

  1. Sync OS X Address Book to MobileMe.
  2. Sync iPhone to OS X Address Book through iTunes.

Step Two: Sync Outlook to MobileMe

  1. Open MobileMe Control Panel.
  2. Set to Sync with Outlook.
  3. Click Sync now. On a first sync you will be asked if you want to overwrite the computer or MobileMe. Choose to overwrite the computer.
  4. When you are done you will see an Outlook “folder” for each "OS X Group” beneath the original (empty) Outlook Contacts folder. [3] The one called Contacts_Work will be empty.

Step Three: Copy work Contacts into empty Contacts_work

  1. Move (or copy) Contacts from the work PST file to Contacts_Work. I select all, then right click and drag.
  2. Clean up the Contacts_Work folder. Remove lists, etc.
  3. Sync to MobileMe. Now Outlook and MobileMe are done.

Step Four: Finish Syncs

  1. Sync OS X Address Book to MobileMe
  2. Sync iPhone to OS X Address Book [4] via iTunes.
  3. Sync to additional OS X machines as desired.

Addendum - Updates

This is all 1 way, so there’s no sync back to the office. This works fairly well for me however. My corporate contacts don’t change that much, but each time I do an update like this I record the date. Then contacts added or modified after that date are periodically carried home, used to update Outlook, and then I sync as above.

Problems to expect

Synchronization is Hell, but even messaging across databases is Heck. There are attributes and properties in Outlook that Address Book can’t support. There’s location information in Address Book Outlook can’t support. An Address Book contact can belong to many groups, an Outlook contact can belong to only one folder. I try to edit the Work Contacts only in Outlook, everything else only in Address Book.

See also

-- Footnotes --

[1] I’ve not tried synching my iPhone via iTunes to two machines at home – XP/Outlook and OS X/Address Book. I just didn’t think of that one until I wrote this post! I know there’s some multi-machine sync capability with the iPhone.

[2] I also sync my iPhone to Google by ActiveSync (Exchange server) protocol. So I have my Google contacts on the iPhone too. There’s a ton of duplication on the phone between the OS X source and the Google source. Resolving that is a future task.

[3] The symmetry is misleading. A single Address Book entry can belong to multiple Address Book groups, but an Outlook Contact can only belong to one folder. (Acyclic Graph vs. Tree)

[4] This is what I currently do. I may try just synching wirelessly to MobileMe.

[5] I assume Contacts that belong to several OS X Groups are duplicated when they go to Outlook. I wonder why they don’t proliferate, breeding with each sync.

Thursday, October 22, 2009

Microsoft Access 2007 - it's still lousy

I'm back using Access 2007 a year after I wrote about Microsoft Access 2007 reliability issues and suggested workarounds.

In the interim I've been using Access 2003 again.

There are some good things about 2003 (ok, just Sharepoint support), but, by and large, it's busted. It's broken in deep and inexplicable ways. Heaven be your friend if you should change a column name -- you may get weird and persistent side-effects.

Since nobody can imagine Microsoft going away, this kind of thing is more than a bit depressing. It's like spending an eternity in Limbo ...

Update 10/22/09: A bit more detail on the two latest bugs, now that I've figured them out.

I was getting a common and useless error message: The setting you entered isn't valid for this property every time I ran a query on a link to a Sharepoint List who's schema had changed since I'd created the link. In particular a field had gone from memo to string. I had to delete the link and create new one. Access 2007 is supposed to be able to regenerate its link on command, but it turns out that doesn't work.

The other bug I got was related to creating an alias to a Sharepoint List column name where the alias happened to be identical to another Sharepoint Column name that wasn't part of the query. Turns out it sort of works, but not really.
--
My Google Reader Shared items (feed)

Wednesday, October 21, 2009

MobileMe - Sharing Contacts and Calendars in a Family account

If you have a MobileMe Family Account you probably want to share your Contacts or Calendars among family members.

You can't.

Use Google Apps.

See: The MobileMe Massacre begins

Mobile Me back to my Mac for remote maintenance – a complete fail

I’ve had some luck so far with MobileMe, but this time I ran into a complete fail. It wasn’t completely unexpected.

I’ve been using LogMeIn to do remote maintenance of my mother’s Mac Mini, often using my old XP machine. It connects at the machine level; I can log out of her account and connect to the admin account in one session. Today performance using the Firefox plugin was excellent.

MobileMe’s Back to My Mac works very differently. It connects at the account level, and it’s designed as it’s named – to connect between two OS X machine-user-accounts that share the same MobileMe name. In other words, to connect to one’s own account – at the machine level, not the account level.

I had to setup an account on one of my machines with the same MobileMe user name as my mother. Then I could try the connection. As promised it did show her machine in my Shared device Finder display, but when I tried to connect I got a “connection failed” message. I assume my mother’s cable modem/router configuration is not supported.

Even if it had worked though I wouldn’t have been able to switch to her Administrator account, B2MM is an account level connection only.

OS X remote maintenance is certainly unimpressive. I’m even more impressed now with LogMeIn. This MobileMe feature failed.

See: The MobileMe Massacre begins

MobileMe – The iPhone iDisk.app

With MobileMe and the free iPhone iDisk.app files copied to an OS X or XP mounted iDisk (WebDav) share can also be viewed on your iPhone. I know there are other apps that do something similar, such as Air Sharing, but I think this will work for me.

Note that as the “Master” of my family MobileMe account I have 20GB of iDisk storage.

Here’s an illustrative example

  1. Work around XP SP2 bugs so you can mount an iDisk as a Windows (WebDav) file share.
  2. Drop a PDF into the share. It’s now accessible through all iDisk clients, including my server synchronized iDisk folder.
  3. Open iPhone iDisk.app and view PDF. The iPhone PDF viewer is quite impressive.
  4. From iPhone PDF viewer you can send an email. The email will contain a link that points to the shared file (doesn’t actually contain the file).

Slick. I assume the iDisk viewable file types are the same as those viewable as email attachments:

Viewable document types: .jpg, .tiff, .gif (images); .doc and .docx (Microsoft Word); .htm and .html (web pages); .key (Keynote); .numbers (Numbers); .pages (Pages); .pdf (Preview and Adobe Acrobat); .ppt and .pptx (Microsoft PowerPoint); .txt (text); .rtf (rich text format); .vcf (contact information); .xls and .xlsx (Microsoft Excel)

See also: Gordon's Tech- The MobileMe Massacre begins.

MobileMe – Getting WebDav (iDisk) support working on XP

No matter what I tried, I couldn’t get my XP machines to mount an iDisk using the WebDav protocol per Apple’s directions:

Connecting to your iDisk from Windows Explorer

  1. Click the Start menu and choose Network Connections > My Network Places.
  2. In the window that opens, click "Add a network place" to open the Add Network Place wizard.
  3. On the next screen, click "Choose another network location."
  4. When prompted for the URL for your iDisk, type the following URL address (replace "YourMemberName" with your own member name):
    http://idisk.me.com/YourMemberName/

I thought the problem was that my user name had a dot ‘.’ in the middle of it. MobileMe usernames become webdav directories.

Wrong. Google (praise be) gave me the fix …

I'm not sure if this is the right place to post this but I found a solution to my problems with XP and Apache2 here: http://blog.pclark.net/2005/03/fun-with-windows-xp-and-webdav.html...

The secret is to add a port number to the URL - for instance, use:
http://my.site.com:80/mydirectory
rather than
http://my.site.com/mydirectory.

When you do this, you'll get the AuthName from your httpd.conf file in the authentication window above the username and password fields, and the username and password should work, without having to have my.site.com\ prepended to the username…

So I tried http://idisk.me.com:80/first.lastname/ (actually, I forgot the terminal ‘/’ but it worked first try. I just had to enter my username and password, telling XP to remember the password.

I suspect this is actually an XP bug. There’s something familiar with it, it wouldn’t surprise me to learn I’ve had to do this before (yep, I solved this one a year ago with DreamHost, it’s known as the /# hack!)

See also

Update 10/21/09: I tried this on another XP SP2 machine and all I had to do was enter http://idisk.me.com/YourMemberName/ with the trailing forward slash (per directions). I don't know what's really going on here. If you're having problems first try the forward slash, next try entering the port.

Update 10/23/09: An Apple Discussion contributer pointed out that Apple's kb article recommends installation of a May 2007 Microsoft "web folder" update:
I can't tell if this was ever included in any XP service packs, I don't think Microsoft always includes all of their fixes.