Submit Hint Search The Forums LinksStatsPollsHeadlinesRSS
14,000 hints and counting!

Sync subscribed calendars to the iPhone via MobileMe iOS devices
Calendar syncing via MobileMe to an iPhone works great, except it doesn't include subscribed calendars yet. (An Apple knowledge base article makes it sound like they are working on it.) Here's a workaround that's good for static calendars, like US Holidays or Jewish Holidays:
  1. Select the subscribed calendar in iCal.
  2. Choose File » Export... and save it someplace.
  3. Choose File » Import... and select the file you just saved.
  4. Uncheck the subscribed calendar so you don't see duplicates on the local Mac.
Now your holidays or birthdays will be shown on the iPhone.
    •    
  • Currently 2.78 / 5
  You rated: 4 / 5 (9 votes cast)
 
[26,332 views]  

Sync subscribed calendars to the iPhone via MobileMe | 14 comments | Create New Account
Click here to return to the 'Sync subscribed calendars to the iPhone via MobileMe' hint
The following comments are owned by whoever posted them. This site is not responsible for what they say.
Sync subscribed calendars to the iPhone via MobileMe
Authored by: Supp0rtLinux on Jul 17, '08 09:45:43AM

Sounds like this is begging for an automator script to run through each Subscribed calendar, do the export/import/uncheck thingy. Then, the automator script could be dropped into Lingon and set to run hourly, daily, etc...

Or... Apple could just add the support back in. :)



[ Reply to This | # ]
Sync subscribed calendars to the iPhone via MobileMe
Authored by: mattarino on Jul 17, '08 02:22:19PM
I do have an automator workflow created that does move the events of subscribed calendars into a separate calendar that can be synced with MobileMe. I'm not a programmer so I searched and found a suite of iCal automator actions here:
http://automatorworld.com/archives/yellow-camp-ical-actions/

First, create your catch-all calendar in iCal that will receive the new events and that will be synced with MobileMe.
Then, from automator, the process will go like this:
1. "Launch Application" (under Finder) and select iCal
2. "Get Specified iCal Items" (choose the subscribed calendar with events you want to move)
3. "Move iCal Events" (this is the script from the downloaded actions that you will need) and select your new catch-all calendar.

This process will move all events from the subscribed calendars to the calendar that you sync. The only caveat is that all of the events from the subscribed calendars will be temporarily deleted (since they were moved). They will show back up once those calendars are refreshed, so make sure that you have them set to auto-refresh.

I was worried about duplication of events since the intent is to keep the synced calendar updated and this process would be repeated. Thankfully, that doesn't seem to be the case.

My next step was going to be figuring out how to automate this at specific intervals, then I saw "Lingon" mentioned. I don't have any knowledge of that program. Any thoughts/steps/solutions on automation of the automator workflow?

[ Reply to This | # ]
Sync subscribed calendars to the iPhone via MobileMe
Authored by: dethbunny on Jul 17, '08 09:32:01PM
I wrote a script along these lines to gather my schedule together with my wife's for work. Find it below. There are a few things you should know first, though:

1) This script is rather unsafe, in that it purges the destination calendar before re-populating it with events. Make sure that you're creating a new calendar to use as the destination or you WILL lose data.

2) Repeating events that started before the cutoff date (9 days ago in the example) will not be copied. For me, this isn't a problem. If it is for you, consider setting a cutoff date far enough back to include the repeating event.

3) It's slow, but it works. Don't let me understate how slow it is - prepare for a few minutes of event copying if your calendar is anything like mine. If you know how to improve it let me know.

4) You can schedule this script to run pretty easily by creating a repeating event in iCal with the script as an alarm. Set the event to run once a day, once a week, or whatever makes sense to you. With (3) in mind, you may want to schedule it when you won't be using the computer, or just run it manually when there are changes.
-- iCal Duplicator 2.0
--
-- MobileMe Push Sync with iCal does not currently support susbcribed calendars.  This has disappointed some like
-- myself, who rely extensively on subscribed calendars.  This kludgy solution copies events from a subscribed calendar
-- to a local calendar.  Set your calendar names in the script, then run the script on a weekly/daily basis or manually to
-- update your local copy/copies based on the subscribed calendar.
--
-- Support for copying from multiple calendars has been added.  You'll need to enter the source and destination names as
-- pairs. If you want multiple subscribed calendars copied into one local calendar, you can enter the local calendar names
-- multiple times as I have for the "Combined - Local" calendar.
--
--
-- Christian Lindemer, July 15th, 2008  {macosxhints (a) dethbunny (.) net}

-- **** **** **** Edit values to match actual calendar names **** **** ****
-- The subscribed calendars
property sourceCalendarNames : {"Work", "Second Calendar", "Third"}
-- The blank local calendar(s) to copy in to, in the same order as the source calendars
property destinationCalendarNames : {"Work - Local", "Combined - Local", "Combined - Local"}
-- how many days to go back - the more you add, the slower the script runs.
property oldEntryDays : 9
-- **** **** **** **** **** **** **** **** **** **** **** **** ****

on run
	--make sure we have valid names.
	try
		tell application "iCal"
			repeat with testName in sourceCalendarNames
				--this throws an error if there is no calendar with the given name, thus checking the calendar's validity.
				set testCal to (the first calendar whose title is the testName)
			end repeat
			repeat with testName in destinationCalendarNames
				set testCal to (the first calendar whose title is the testName)
			end repeat
		end tell
	on error
		--if a name can't be found, alert user and halt.
		calendarNotFound(testName)
		return --this effectively quits the script
	end try
	
	
	repeat with destName in destinationCalendarNames
		clearEvents(destName)
	end repeat
	
	
	set calendarCount to 1
	--repeat through all calendar names
	repeat with sourceName in sourceCalendarNames
		--get the calendar names and pass them to the copyEvents function
		set destinationName to item calendarCount of destinationCalendarNames
		copyEvents(sourceName, destinationName)
		set calendarCount to (calendarCount + 1)
	end repeat --repeat through all calendar pairs
	
end run

on calendarNotFound(notFoundName)
	display alert "Calendar named "" & notFoundName & "" was not found in iCal.  Please edit the script to match your calendars."
end calendarNotFound

on clearEvents(destCalName)
	tell application "iCal"
		--Clear the destination calendar	
		set destCalendar to (the first calendar whose title is the destCalName)
		set calendarEvents to (events of destCalendar) -- get the destination calendar's event list
		repeat with myEvent in calendarEvents -- delete each existing event
			delete myEvent
		end repeat
	end tell
end clearEvents

on copyEvents(sourceCalName, destCalName)
	tell application "iCal"
		set sourceCalendar to (the first calendar whose title is the sourceCalName)
		set destCalendar to (the first calendar whose title is the destCalName)
		
		set calendarEvents to (events of sourceCalendar) -- get the calendar's event list
		repeat with myEvent in calendarEvents -- repeat for each item found in the source event list
			
			--Don't bother with old events
			if start date of myEvent > ((current date) - oldEntryDays * days) then --event is in future, or within prefs for old entries
				-- gather relevant details of event to create new event with
				set eventStart to start date of myEvent
				set eventEnd to end date of myEvent
				set eventAllDay to allday event of myEvent
				set eventSummary to summary of myEvent
				-- create event in destination calendar with details of subscribed event
				tell destCalendar
					make new event at end with properties {summary:eventSummary, start date:eventStart, end date:eventEnd, allday event:eventAllDay}
				end tell
			end if --if not older than 'oldEntryDays' days ago
		end repeat --iterate through entries in source calendar
	end tell
	
end copyEvents


[ Reply to This | # ]
Sync subscribed calendars to the iPhone via MobileMe
Authored by: thehigherlife on Jul 21, '08 06:59:57AM

this line doesn't compile. it doesn't like the quotation marks. i also only have one subscribed calendar i'm syncing.

display alert "Calendar named "" & notFoundName & "" was not found in iCal. Please edit the script to match your calendars."



[ Reply to This | # ]
Sync subscribed calendars to the iPhone via MobileMe
Authored by: clp698 on Jul 21, '08 06:04:54AM

I have found a better way by creating an Automator work flow that copies the data from the subscribed calendars into local calendars at specific times every day by creating an Automator plugin alarm into iCal.



[ Reply to This | # ]
Sync subscribed calendars to the iPhone via MobileMe
Authored by: itower on Nov 20, '08 06:16:40AM

really? sounds ideal, clp - how did you achieve this??



[ Reply to This | # ]
Sync subscribed calendars to the iPhone via MobileMe
Authored by: ryanmathe on Jul 17, '08 09:50:54AM

The calendars wont stay subscribed though will they? This is going to be a pain in the butt...



[ Reply to This | # ]
You cannot subscribe directly from an iPhone
Authored by: jecwobble on Jul 17, '08 10:26:55AM

I don't have (and don't plan to get) an iPhone, but I would have assumed that the calendar feature on the iPhone itself would allow subscriptions to calendars. If that is the case, why not just subscribe to the same calendars on your computer from the iPhone and sync your personal calendars through MobileMe?



[ Reply to This | # ]
You cannot subscribe directly from an iPhone
Authored by: Snowgen on Jul 17, '08 11:43:14AM

I don't have (and don't plan to get) an iPhone, but I would have assumed...

So, in other words, you're completely ignorant of the situation, yet you're arrogant enough to think that your ignorance will add to the discussion.

If you have some useful knowledge to share, by all means speak up. But when you're clueless about something, you should just keep your mouth shut.

To get back on topic, your assumption does not reflect reality, so the rest of your comment won't work.



[ Reply to This | # ]
You cannot subscribe directly from an iPhone?
Authored by: jecwobble on Jul 17, '08 01:13:32PM

Actually, I failed to put a question mark at the end of my posting title. It was intended as a general inquiry in the hope that it might lead to a helpful discussion, all in the interest of helping others, quite inline with the nature of this site. No arrogance was involved. I am sorry if you somehow got that impression.

As for keeping my mouth shut, well, I will happily continue to contribute here as I have for years without any reservations. And I sincerely hope your day improves, as you seem to be having quite a bad one.



[ Reply to This | # ]
Sync subscribed calendars to the iPhone via MobileMe
Authored by: ridogi on Jul 18, '08 12:34:31PM

This looks very useful. I'll try it this weekend.

You can definitely use lingon to automate this.

Create a "my agent"
Give it a name (to identify on the left)
For what use: open ~/path_to_automator_app/your_automator.app
For when use a logical schedule (once a day maybe)
Make sure enabled is checked.

You could also set an iCal event to trigger the Automator file. Set the alarm to open file and make it a repeating event. Of course you don't want to see this on your phone--you just want it to happen. And this is exactly what I am trying to figure out to do--eliminate a calendar from being seen on the iPhone if it is synced with MobileMe.



[ Reply to This | # ]
Sync subscribed calendars to the iPhone via MobileMe
Authored by: mattarino on Jul 21, '08 12:54:34PM

If you have Entourage, you can create a schedule to launch the Automator app. You can pick the days and times to run the selected file. The action is called "Launch alias" and you can select your Automator.app.

The problem with creating the scheduled alarms (to launch the app) in iCal is that each of those events will show up on the iPhone, which we are trying to avoid.

Lingon has been mentioned here, but (I guess I'm missing something) but I hadn't been able to get that to work. The Entourage schedule seems to be my best workaround to run the Automator.app. Anybody have another non-Entourage scheduling app solution?



[ Reply to This | # ]
Sync subscribed calendars to the iPhone via MobileMe
Authored by: ridogi on Jul 23, '08 07:01:24PM

I have gotten this to work with Lingon by saving the automator workflow as an application, and then for the "what" section in Lingon just click choose and browse to the app.

For example if your automator application is at ~/Workflows/calendar.app then your "what" section will read:

/Users/<shortname>/Workflows/calendar.app/Contents/MacOS/calendar



[ Reply to This | # ]
Sync subscribed calendars to the iPhone via MobileMe
Authored by: Cobalt Jacket on Jul 21, '08 05:48:24AM
The best thing we can do is for as many people as possible to fill out this form:

http://www.apple.com/feedback/mac/tm.html


[ Reply to This | # ]