Archive

Posts Tagged ‘ICal’

Event Hijacking with Exchange

November 2nd, 2010 No comments

Greetings fellow implementers and users…

I know many of you out there have implemented Apple products like iCal, iPhones and iPads within Exchange 2007 and 2010 organizations. I’m seeking information on a very specific problem that rears its ugly head on occasion.

Have any of you witnessed a “meeting hijack” problem with your device? Namely, you are an attendee on a meeting and suddenly you find yourself the organizer. Usually you find this out when you send a decline for whatever reason.

I’m trying to reproduce this issue in a lab environment to document the problem but we’re having a hell of a time pulling the data together. If any of you have data to share, please do so in the comments. Thanks!

MobileMe’s Calendar Beta: The Real Story

July 8th, 2010 1 comment

Apple has introduced a new beta for MobileMe.  The press announcement didn’t say much more than, “Hooray, there’s a new interface and it looks like the iPad!”  That’s about all the press said as well.  But there’s something so much more behind the scenes as usual.

If you have updated your Mac to 10.6.4, open up your iCal application.  Go to Preferences/Accounts and try to add a new account.  If you notice there, you can now add “MobileMe” as a new account type.  Clicking this allows you to put in the MobileMe user credentials.

iCal MobileMe Account Setup box in 10.6.4

iCal MobileMe Account Setup box in 10.6.4

But if you’re paying attention, you’ll see that the initial sync gives you an error:

iCal MobileMe Error

iCal MobileMe Error Box

Notice the name of the operation?  ”CalDAVAccountRefreshQueueableOperation.”  That’s CalDAV, folks.  That’s the same calendaring server implementation in Snow Leopard server.

To make this actually work and not receive the error, you have to log into the MobileMe website, get into the calendar icon and click “request an invite” for the beta.  Without being in the beta, you won’t be rolled over to the CalDAV implementation.

Why is this important?  Apple is one of the major players in the calendaring standards consortium “CalConnect.”  One of the proposed standards that CalConnect is driving today is the use of CalDAV as a standard.  Apple’s implementation of CalDAV is even open source.

Now they’re talking the talk and walking the walk.  There’s a FAQ on the beta here and it does give a little more detail on the CalDAV implementation.

But there’s something else.

I love conspiracy theories when it results in good news.  While this beta is good news, there’s even better news.  Buried in the FAQ is this little tidbit:

Support for using the beta with Microsoft Outlook is coming soon.

There is more information at the link here.  To get this working in Microsoft Outlook, you have to install the MobileMe Control Panel for Windows.  Effectively, this means Apple is bringing CalDAV support to Outlook.

…and that, my friends, is the real story.  Apple is providing an alternative to Exchange for Outlook users.  The next logical step would be extending this CalDAV connector to Snow Leopard Server for Outlook users as well.

I’ve said it before and I’ll say it again.  Apple has a knife with Microsoft’s name on the blade.

Enhanced by Zemanta

Weekend Housekeeping: Clean up your iCal

May 7th, 2010 No comments

I’m a calendaring psycho.  I live by my calendars.  They have to work for me in all places.  They have to work well on all of my Macs and my iPhone.  They have to work well on my (future) iPad.

Calendaring is nowhere near as ubiquitous as email.  While there are efforts to make that story better, it’s not there yet.  Today, you get to enjoy the mishmash of interpretive code to drive your day.  iCal on Snow Leopard takes the whole thing to a level about as high as it can go these days, but it’s not without its own set of problems.

Since I’m involved in all sorts of testing with calendars, I try to subject myself to the pain.  That’s the sacrifice we make for you.  Aren’t our lives terrible?  I have calendars on Exchange 2007, MobileMe, iCal server on Snow Leopard and subscriptions.  Yes, I want all of this work on all of my devices.

Lately I noticed that my iPhone started having issues.  Something was hung in the background of the bloody thing.  It was easy to conclude that because the phone would have these mysterious pauses with almost every interaction.  If you swiped an icon screen it would hang before completing the action.  Often it would hang in mid-swipe.  Clicking on any icon generated a huge pause.  Sometimes the pause was just too much – the phone would kill the process before the app even started.  Even my calls suffered more than usual… I would be disconnected or trail off into oblivion while the phone paused on whatever was choking it up.

I decided to investigate.  First I worked with Mail.  I thought that perhaps there was something going on with the Mail processes that was causing the phone to hang while waiting on a response.  I selectively disabled Mail accounts one by one and it had no impact on the phone.  I started to disable calendars one by one.  When I reached MobileMe, the phone hung while trying to delete calendars from the phone.

A…ha.

I had a prime suspect.  I couldn’t even get the phone to disable the MobileMe calendars cleanly.  It would often just hang and run the battery down while it said “Turning off calendars” and spinning to death.  I had to forcibly power the phone off to get it to respond.  Once I even had to reload it from scratch.  Once the phone encountered those MobileMe calendars though, it was all over… again.

After a week of struggling with this and opening a case with Apple, I started to think something was just hosed on MobileMe itself.  I went to iCal on one of my Macbook Pros to begin the process of backing the calendar up and removing it.

That’s when I noticed iCal was having significant performance issues as well.  Now I don’t know how long iCal had been acting this way.  It occurs to me that it had been acting up for quite some time and I just didn’t think much of it since I have an absolute metric crapton of data in the app.  I didn’t think much of it.  But it was quite evident that iCal was choking on something.  When I clicked on an arrow to move forward or backward a week it would pause before displaying anything.  Odd.

I started to examine the individual events on one of the MobileMe calendars and discovered something quite unusual.  Each event had 9 alarms on it.  9 alarms.  What.  The.  Hell?  To troubleshoot, I started removing the alarms one by one on each event.  Afterwards, I turned the MobileMe calendars back on the iPhone and it was happy again.

For a week.

The problem resurfaced all over again the next week.  The iPhone started pausing.  iCal started choking.  Once again I examined the MobileMe calendar and… sonuvabitch.  That stupid calendar had duplicated the alarms again.

Of course I hit the God of Google to understand what’s going on here.  Unfortunately the search produced very little in the way of answers.  It did produce a utility, which is what this post is really about.  A sweet little outfit named BusyMac offers a free utility called iCal Cleaner.  Apparently this problem is common enough that it has to have its own app.  It would appear that it’s not totally a MobileMe issue.  Rather, this is an artifact produced by many devices touching your calendars.

Select iCal Archive

Archive your calendar first!

iCal Cleaner saved the day.  All you have to do is start it up and choose from any one of its very useful tasks.  In my case, I asked it to remove duplicate alarms from all calendars.  It did this by modifying the local copies of ICS files attached to the calendar.  On the next sync, those changes are put into that mysterious Truth Database or whatthehellever and it was all joy.

iCal Cleaner does modify data and it will warn you that you should indeed back up your calendar before proceeding.  To do that, open iCal and choose “File –> Export –> iCal Archive.”  I love to do this periodically anyway.  I save the resulting .icbu file in “~/Documents/iCal Backups.”

Screenshot of iCal Cleaner

iCal Cleaner is your friend

Presuming you downloaded the app from the link above and dropped it in your Applications folder like everything else you install, it’s time to actually perform the surgery.  Open iCal Cleaner.  You’ll find that you can select all of your calendars or just a single calendar to perform operations.  There’s also a wealth of fabulous operations to conduct against your ailing calendar.

iCal Cleaner works against calendars that you control.  That means you can run iCal Cleaner against your own MobileMe calendar or an iCal Server calendar.  It will not work against a subscribed calendar.  This makes sense because you don’t really want to alter a local copy of someone else’s calendar.

So how am I stopping this from happening again?  Not sure yet.  All I know is that something makes these duplicate alarms occur and it happens often enough that someone made a utility for it.  I don’t want to single out MobileMe as the source of all of my pain, but it does seem that syncing calendars can build up and bite you over time.  It’s worth noting that the duplicate alarms were also appearing on my iCal Server calendars, but I’ve not been able to reproduce the issue since cleaning it up.  MobileMe on the other hand has choked like this more than once.

For now I’ve deleted my MobileMe calendars and moved all of my stuff (personal and otherwise) into iCal Server.  This posed another problem with publishing calendars and seeing them on mobile devices.  For example, I subscribed to my wife’s MobileMe “Home” calendar and she subscribed to mine.  That doesn’t appear to be a good workflow, however.  I decided to move our calendars into iCal Server and employ delegation.  But how do you get delegation to work on a mobile device?

Ah, I can’t tell you that right now – for that, my friends, is another post for another day… very soon.

Reblog this post [with Zemanta]

Using Delegation with iCal Server and iPhone

May 5th, 2010 No comments

Businesses are infatuated with calendaring.  The proliferation of mobile devices has contributed to the love affair.  Getting your calendars to work right and work well for you and your business can sometimes be a challenge.

One facet of calendaring is delegation.  Some setups get this right, maybe get it wrong.  Most of the time it’s wrong just because it’s misunderstood.  Okay, yeah, I know, that’s the Exchange world.  We’re not going to talk about that.  We’re here to talk about OS X Server and iCal.  iCal Server on Snow Leopard supports the concept of delegation.  Fortunately, the iCal client on Snow Leopard also supports delegation.  Apple has boiled it down to two simple permissions: read and/or write.  That’s enough for most people.  If you’re an all-Mac shop and no one is trying to do delegation with an iPhone, you can stop reading here.

If you are, however, a heavy user of delegation functions, you may be surprised to find the lack of delegation options in the CalDAV setup on the iPhone.  Not to fear, we can solve that for you.  The iPhone CalDAV client actually does support delegation with iCal server.  It’s just not readily apparent.

Let’s say we’re trying to set up delegation with my manager, Joe Schmoe.  I’ve already set up our desktop iCal clients with the necessary permissions for delegation.  Joe Schmoe has allowed write access to his calendar as per the screenshot here.

iCal Configuring Delegate Access.jpg

It’s quite simple to add delegation to my iCal client, but what if I need to be able to write to Joe’s calendar with my iPhone?  Simple enough.  First, go to the Settings icon and click it.  Click “Mail, Contacts, Calendars.”  We’ll assume you’ve already added your own CalDAV account here for the iCal server.  Let’s add another one.  On this new CalDAV account, configure it just like you would configure for your own account.  Use your login and password just like your regular CalDAV account.  I would suggest you change the “description” to something a little more appropriate like “Joe’s calendar.”

iPhone Delegation Account config 1.jpg

After configuring the account, click “Next.”  Assuming you set up your account and password correctly you’ll get back to the main calendars screen.  Now here’s the trick to make this work.  Click on the account again and go into the configuration.  Click the “Advanced Settings” button near the bottom.  What you want to do is change the “Account URL” to the short name of the user.  In this case, Joe’s short name is “jschmoe.”  I’ll change it there.  Be sure to leave the rest of the URL intact.

iPhone Delegation Account config 2.jpg

Once you’ve made the change, click the left arrow to head back to the main configuration and once more to get back to the main account screens.  Congratulations, you’ve now set up delegate access to your manager’s calendar.  Now all you have to do to view the calendar is go to the Calendar icon like you normally would.  Joe’s calendar will show there.  You can select it by itself and write events to the calendar if you wish.  That’s it!

If your manager isn’t lazy like my fictional one you could also have him keep “Write” unchecked in the original account delegation setup.  That will provide read-only access to his calendar when you’re on the go.  Of course, if you’re adept and using “invite” and the availability window you may not need to use delegation at all.

There you have it!

Also, one last plug.  If you’re really interested in helping to make the calendar as functional and ubiquitous as email, please consider joining CalConnect.  CalConnect is a consortium devoted to the standardization of all things related to calendars.  They’re doing great work and I’m sure they would love the help.

Reblog this post [with Zemanta]