Have you checked the timezone settings on all the devices are the same?
iCal on your computer is either set to the timezone in System Preferences > Date & Time, or if you have timezone support set in iCal's > Preferences > Advanced it will be in whatever timezone is shown in the top right of the iCal main window.
The Calendar on iOS devices is set in Settings > General > Date & Time > Time Zone.
Thank you John. That seems to do the trick so far, however it also means that when I take my i-phone or i-pad to any other time zone, I can't set it to that time zone. I think Apple should make appointment times so that they don't migrate to other time zones, because if you make an appointment it is made for a time certain; i.e. if I'm in Az and make an appointment for 11 am in NY in 3 days time prior to traveling there, the time of my appointment will be 11 am regardless.
I'm glad it helped.
What you are talking about is floating time. If I remember correctly you can set iCal to floating time by turning off timezone support in Preferences > Advanced.
To my mind it isn't right though. 11 am in Az (Arizina?) is not 11am in New York, or London or anywhere with a different timezone. What you should do if you want to have events as they would be in a different timezone is set the timezone as part of the event. Anything else doesn't make sense to me. Not using timezones only makes sense if you never move into another one.
What about this:
I am flying across time zones and enter the flight times in ical - perhaps even automatically from the airline website.
Then my phone logs in to the new time zone and updates its time. That means the time for my next flight will be wll mixed up. Why should I neeed to llok up the time zone and calculate the time I need to enter in iCal for an airport I am just transiting?
In my view for iCal to edit the time I have entered should require explicit permission.