<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
		xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd"
	xmlns:media="http://search.yahoo.com/mrss/"
>

<channel>
	<title>That Not So Fresh Feeling &#187; Google Calendar</title>
	<atom:link href="http://blog.ryantoohil.com/category/google-calendar/feed" rel="self" type="application/rss+xml" />
	<link>http://blog.ryantoohil.com</link>
	<description>Stuff.</description>
	<lastBuildDate>Tue, 07 Feb 2012 15:16:20 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
	<copyright>2006-2007 </copyright>
	<managingEditor>ryan@ryantoohil.com (That Not So Fresh Feeling)</managingEditor>
	<webMaster>ryan@ryantoohil.com (That Not So Fresh Feeling)</webMaster>
	<ttl>1440</ttl>
	<image>
		<url>http://blog.ryantoohil.com/wp-content/plugins/podpress/images/powered_by_podpress.jpg</url>
		<title>That Not So Fresh Feeling</title>
		<link>http://blog.ryantoohil.com</link>
		<width>144</width>
		<height>144</height>
	</image>
	<itunes:subtitle></itunes:subtitle>
	<itunes:summary>Just another place for just another jackass to rant about sports, politics, entertainment, technology, and life.</itunes:summary>
	<itunes:keywords></itunes:keywords>
	<itunes:category text="Society &#38; Culture" />
	<itunes:author>That Not So Fresh Feeling</itunes:author>
	<itunes:owner>
		<itunes:name>That Not So Fresh Feeling</itunes:name>
		<itunes:email>ryan@ryantoohil.com</itunes:email>
	</itunes:owner>
	<itunes:block>no</itunes:block>
	<itunes:explicit>no</itunes:explicit>
	<itunes:image href="http://blog.ryantoohil.com/wp-content/plugins/podpress/images/powered_by_podpress_large.jpg" />
		<item>
		<title>Another iCloud Lesson Learned</title>
		<link>http://blog.ryantoohil.com/2011/10/another-icloud-lesson-learned.php</link>
		<comments>http://blog.ryantoohil.com/2011/10/another-icloud-lesson-learned.php#comments</comments>
		<pubDate>Sun, 30 Oct 2011 22:39:00 +0000</pubDate>
		<dc:creator>Ryan Toohil</dc:creator>
				<category><![CDATA[Apple]]></category>
		<category><![CDATA[Google Calendar]]></category>
		<category><![CDATA[Mac]]></category>

		<guid isPermaLink="false">http://blog.ryantoohil.com/?p=914</guid>
		<description><![CDATA[Katie was managing 4 or 5 different versions of calendars between her iPhone, Mac, and Google Calendar. It was leading to dupes (and trips!) of things showing up and just making a general mess. So I thought I would help. I get everything reduced to just a couple of calendars synced to iCloud. Then I <a href='http://blog.ryantoohil.com/2011/10/another-icloud-lesson-learned.php'>[...]</a>]]></description>
			<content:encoded><![CDATA[<p>Katie was managing 4 or 5 different versions of calendars between her iPhone, Mac, and Google Calendar. It was leading to dupes (and trips!) of things showing up and just making a general mess. So I thought I would help. I get everything reduced to just a couple of calendars synced to iCloud.</p>
<p>Then I go to <a href="http://blog.ryantoohil.com/2011/10/moving-from-google-calendar-to-icloud.php">move her Google Calendar to iCloud</a> like I did with my own GCal. I export her ics file, import it into iCal, and merge it into her normal calendar.</p>
<p>Everything looks normal.</p>
<p>Until iCloud starts sending out acceptance emails to people for meetings from her work calendar (that had been synched with Google Calendar back in 2008 and 2009).</p>
<p>Yep, tens, maybe hundreds of acceptances to meetings that were years old. I&#8217;m sure there&#8217;s a setting that I missed somewhere, but that just doesn&#8217;t seem like the right thing, Apple, now does it?</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.ryantoohil.com/2011/10/another-icloud-lesson-learned.php/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Moving from Google Calendar to iCloud</title>
		<link>http://blog.ryantoohil.com/2011/10/moving-from-google-calendar-to-icloud.php</link>
		<comments>http://blog.ryantoohil.com/2011/10/moving-from-google-calendar-to-icloud.php#comments</comments>
		<pubDate>Tue, 18 Oct 2011 22:24:44 +0000</pubDate>
		<dc:creator>Ryan Toohil</dc:creator>
				<category><![CDATA[Apple]]></category>
		<category><![CDATA[Google Calendar]]></category>
		<category><![CDATA[iPhone]]></category>

		<guid isPermaLink="false">http://blog.ryantoohil.com/?p=910</guid>
		<description><![CDATA[There&#8217;s a lot of awesomeness about Google Calendar. I&#8217;ve been using it, synced to my iPhone, iPad, and Mac, for pretty much everything but my work calendar (stupid Exchange). I used it so much that I even built a Greasemonkey script to automatically create Google Calendar entries from Evites. That&#8217;s not necessary any more (Evite <a href='http://blog.ryantoohil.com/2011/10/moving-from-google-calendar-to-icloud.php'>[...]</a>]]></description>
			<content:encoded><![CDATA[<p>There&#8217;s a lot of awesomeness about Google Calendar. I&#8217;ve been using it, synced to my iPhone, iPad, and Mac, for pretty much everything but my work calendar (stupid Exchange). I used it so much that I even built a Greasemonkey script to automatically create <a href="http://userscripts.org/scripts/show/7271">Google Calendar entries from Evites</a>. That&#8217;s not necessary any more (Evite finally added it natively), but it&#8217;s safe to say I used Google Calendar pretty exhaustively.</p>
<p>Over time, working with Google Calendar across all those devices became a bit tougher. It&#8217;s not really Google&#8217;s fault&#8211;I just wanted to do some stuff that wasn&#8217;t as easy to do. Syncing across multiple devices with all of them being able to read/write/update entries became a crapshoot as to whether or not an update would work. Weirdness with iCal (on the Mac) where all of a sudden it couldn&#8217;t authenticate to Google&#8217;s servers. I&#8217;m not sure where the fault lies (probably both on Google and Apple: Google tends to do some stuff non-standard; Apple seems to sometimes not handle non-standard stuff very well), but it would go flaky every now and then.</p>
<p>That being said, it still worked very, very nicely. Mostly. iOS 4 made it even easier when they added native Google Calendar syncing.</p>
<p>But, in iOS 5, Apple released <a href="https://www.icloud.com">iCloud</a>, and with it, the chance to simplify a bit. I could drop some of the workarounds to go native Apple. So, as risky as that sounds (remember MobileMe … or hell, remember the <a href="https://twitter.com/#!/ryant/status/124224888117526529">trouble just downloading and activating iOS 5</a>?), I decided to bite the bullet and move my calendar out of GCal to iCloud. Just one less thing that could go wrong…for better or for worse.</p>
<p><a href="http://www.google.com/support/calendar/bin/answer.py?answer=37111">Google makes it very easy to get your data out</a>. Within a minute, I had downloaded my .ics file with all of my historical events. Over to iCal, import, and boom.</p>
<p>It would fail every time.</p>
<p>After a bit of digging (using Console.app), I could see this error:</p>
<pre><code>iCal: Component boundaries mismatch (VALARM VEVENT)
</code></pre>
<p>That lead me to think that maybe Google&#8217;s ics file had some sections that didn&#8217;t match right (I&#8217;m pretty smart, eh?). Thanks to Google&#8217;s search engine, I was able to figure out why Google&#8217;s Calendar wouldn&#8217;t give me my data.</p>
<p>I uploaded my ics to this <a href="http://severinghaus.org/projects/icv/">iCalendar validator</a>. I helpfully told me places where the file didn&#8217;t parse properly. Using my <a href="http://code.google.com/p/macvim/">favorite text editor</a> (hosted on Google&#8217;s code repository&#8211;is there anything these guys don&#8217;t do?), I fixed the problems.</p>
<p>Voila. Everything imported nicely. Moments later, I had my calendar on iCloud.com, on my phone, and on my iPad. Working exactly the same as it was before, but now I get to <em>more easily</em> take advantage of some of Mac OS&#8217; and iOS&#8217; niceties (data detectors, applications creating calendar events), and I can to take one &#8220;sync&#8221; out of my chain.<a href="#fn:1" id="fnref:1" title="see footnote" class="footnote">[1]</a></p>
<div class="footnotes">
<hr />
<ol>
<li id="fn:1">
<p>Unless of iCloud craters and I go rushing back to Google. <a href="#fnref:1" title="return to article" class="reversefootnote">&#160;&#8617;</a></p>
</li>
</ol>
</div>
]]></content:encoded>
			<wfw:commentRss>http://blog.ryantoohil.com/2011/10/moving-from-google-calendar-to-icloud.php/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Updated Evite2GoogleCal Greasemonkey Script</title>
		<link>http://blog.ryantoohil.com/2009/11/updated-evite2googlecal-greasemonkey-script.php</link>
		<comments>http://blog.ryantoohil.com/2009/11/updated-evite2googlecal-greasemonkey-script.php#comments</comments>
		<pubDate>Sat, 28 Nov 2009 04:10:34 +0000</pubDate>
		<dc:creator>Ryan Toohil</dc:creator>
				<category><![CDATA[Evite]]></category>
		<category><![CDATA[Google Calendar]]></category>
		<category><![CDATA[Greasemonkey]]></category>
		<category><![CDATA[Javascript]]></category>

		<guid isPermaLink="false">http://blog.ryantoohil.com/?p=407</guid>
		<description><![CDATA[With the holiday season upon us, I got a few Evites that broke my Greasemonkey script to add Evite invitations to your Google Calendar. I went through and cleaned up the code a bit, and I think it&#8217;ll work a bit better now. You&#8217;ll find the &#8220;Add to Google Calendar&#8221; link next to the Print <a href='http://blog.ryantoohil.com/2009/11/updated-evite2googlecal-greasemonkey-script.php'>[...]</a>]]></description>
			<content:encoded><![CDATA[<p>With the holiday season upon us, I got a few Evites that broke my Greasemonkey script to add Evite invitations to your Google Calendar. I went through and cleaned up the code a bit, and I think it&#8217;ll work a bit better now.</p>
<p>You&#8217;ll find the &#8220;Add to Google Calendar&#8221; link next to the Print link on most invites.</p>
<p><a href="http://www.ryantoohil.com/Evite2GoogleCal.user.js">Evite2GoogleCal.user.js v1.2</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.ryantoohil.com/2009/11/updated-evite2googlecal-greasemonkey-script.php/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Tech Things I Want to Work in 2009</title>
		<link>http://blog.ryantoohil.com/2009/01/tech-things-i-want-to-work-in-2009.php</link>
		<comments>http://blog.ryantoohil.com/2009/01/tech-things-i-want-to-work-in-2009.php#comments</comments>
		<pubDate>Thu, 15 Jan 2009 03:43:29 +0000</pubDate>
		<dc:creator>Ryan Toohil</dc:creator>
				<category><![CDATA[Apps]]></category>
		<category><![CDATA[Gmail]]></category>
		<category><![CDATA[Google]]></category>
		<category><![CDATA[Google Calendar]]></category>
		<category><![CDATA[iPhone]]></category>
		<category><![CDATA[Plaxo]]></category>
		<category><![CDATA[Social Networking]]></category>
		<category><![CDATA[Twitter]]></category>

		<guid isPermaLink="false">http://blog.ryantoohil.com/?p=370</guid>
		<description><![CDATA[There&#8217;s lots of little things that, if tweaked, would just make life a lot nicer . . . For instance . . . The Google Calendar sync tool should support syncing Outlook to secondary Google Calendars, not just your primary calendar. That would mean I could drop SyncMyCal which runs in my Outlook-only Parallels Virtual <a href='http://blog.ryantoohil.com/2009/01/tech-things-i-want-to-work-in-2009.php'>[...]</a>]]></description>
			<content:encoded><![CDATA[<p>There&#8217;s lots of little things that, if tweaked, would just make life a lot nicer . . . </p>
<p><em>For instance . . .</em></p>
<p>The <a href="http://googleblog.blogspot.com/2008/03/google-calendar-sync.html">Google Calendar sync tool</a> should support syncing Outlook to secondary Google Calendars, not just your primary calendar. That would mean I could drop <a href="http://www.syncmycal.com/">SyncMyCal</a> which runs in my Outlook-only Parallels Virtual Machine. I&#8217;d have a nifty, no-click workflow to sync my Work calendar to my secondary Work Google Calendar, which get sync&#8217;d down to iCal and to my iPhone.</p>
<p><em>Better yet . . .</em></p>
<p>The iPhone should support syncing both iCal and Outlook calendars. It&#8217;s sort of a dumb thing that if you turn on Outlook calendar and contact syncing, that&#8217;s the *only* calendars and contacts you get. Why not keep them separate? If Apple added the ability to have your Outlook calendar sit right along side your iCal calendars, then I wouldn&#8217;t even need to sync my Work calendar up. I could just accept meeting invites on my phone and have everything work nice and happy.</p>
<p>Oh, and same goes for Contacts. Just let me sync my Exchange contacts as a separate group. Seriously.</p>
<p><em>Even better . . .</em></p>
<p>Apple Mail and iCal should build in real Exchange support. Then I could actually not run Outlook in my virtual machine all day. Instead, I could just use Mail and iCal as Exchange clients and have the most simplified workflow of all. Supposedly, this is going to happen in <a href="http://www.apple.com/macosx/snowleopard/">Snow Leopard</a>. That would be awesome.</p>
<p><em>Making life even sweeter . . .</em></p>
<p>Google should fix contact management. I love Gmail. I use it for everything. I hate Google&#8217;s Contact stuff. It is awful. They tried to make it better. It didn&#8217;t work very well. But they&#8217;ve got the keys right in their hands &#8230; <a href="http://code.google.com/apis/socialgraph/docs/">Social Graph</a>. Imagine you gave Google some information about you that they could use some <a href="http://oauth.net/">OAuth</a> or other authentication means to determine that it is really you. So you hand them some keys to Flickr and Twitter and (if they can work out their differences), Facebook. Now, Google pulls all that information together and makes a nifty contact for you. Name, picture, email address, home address, work address, phone number, Twitter, Flickr, etc, etc. You only get as much information as the contact allows (if we&#8217;re not friends on Facebook, you don&#8217;t get my phone # or address).</p>
<p>Now, Google can do all this behind the scenes and give you a little button to &#8220;add so-and-so&#8221; as a contact. If I add them, they go into my Contacts section. Then, I subscribe to my Google Contacts like they&#8217;re an LDAP source or however else they want to get hooked into your setup.</p>
<p>Boom. All of a sudden I&#8217;ve got a real contact solution that&#8217;s continually updated.</p>
<p>Ok, sure, that&#8217;s a lot like what <a href="http://www.plaxo.com/">Plaxo</a> promises. Except Plaxo really doesn&#8217;t work all that well.</p>
<p>So. When all this happens, I&#8217;ll have my calendars all seamlessly syncing together to my computer and to my phone. On top of that, my contacts (work and personal) will all sync nicely as well. And stay up-to-date, thanks to something like Social Graph or the like. Plus, Snow Leopard will mean I don&#8217;t have to run a Virtual Machine just to use Outlook (and don&#8217;t tell me to use Entourage &#8230; it barely works).</p>
<p><em>With my work life (and personal contacts) working so seamlessly . . .</em></p>
<p>I&#8217;ve got time to kill. I want to get through some movies or TV while I&#8217;m out and about.</p>
<p>Give me <a href="http://blog.netflix.com/2008/10/upgrade-to-watch-instantly-on-your-pc.html">Netflix Watch Instantly</a> and <a href="http://www.hulu.com/">Hulu</a> on my iPhone! Now that they&#8217;re on my XBox and Mac, I&#8217;d love them remotely. When I&#8217;m out eating lunch or riding in a car, I don&#8217;t need HD video. I just need crappy streaming video that will let me knock off an old episode of Newsradio or watch 15 minutes of a <a href="http://www.netflix.com/WiMovie/The_Tracey_Fragments/">crappy movie</a>.</p>
<p><em>But, if I don&#8217;t want to watch something . . .</em></p>
<p>Sometimes I just want to listen. The fact that the new version of the iPhone firmware lets you download podcasts is great. By why doesn&#8217;t it sync my entire podcast list and let me just quickly scan for a new episode of something I listen to? Even better, why not do something similar to Genius and recommend me a podcast I might like?</p>
<p>All that would be very cool.</p>
<p>Oh, and why can&#8217;t I sync stuff over bluetooth. That would be good too.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.ryantoohil.com/2009/01/tech-things-i-want-to-work-in-2009.php/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Quick iCal/Google Calendar Sync Update</title>
		<link>http://blog.ryantoohil.com/2008/08/quick-icalgoogle-calendar-sync-update.php</link>
		<comments>http://blog.ryantoohil.com/2008/08/quick-icalgoogle-calendar-sync-update.php#comments</comments>
		<pubDate>Sun, 03 Aug 2008 20:10:47 +0000</pubDate>
		<dc:creator>Ryan Toohil</dc:creator>
				<category><![CDATA[Apple]]></category>
		<category><![CDATA[Google Calendar]]></category>
		<category><![CDATA[iPhone]]></category>

		<guid isPermaLink="false">http://blog.ryantoohil.com/?p=288</guid>
		<description><![CDATA[So, Google announced recently that it would support CalDAV syncing with iCal, which means if you update an entry in iCal (or Google Calendar), they&#8217;ll be in sync within a few minutes. Awesome. Unfortunately, it meant that my previous script iteration would now continually add alarms, leading to each entry having 3 or 4 alarms. <a href='http://blog.ryantoohil.com/2008/08/quick-icalgoogle-calendar-sync-update.php'>[...]</a>]]></description>
			<content:encoded><![CDATA[<p>So, Google announced recently that it would support <a href="http://www.google.com/support/calendar/bin/answer.py?answer=99358">CalDAV syncing with iCal</a>, which means if you update an entry in iCal (or Google Calendar), they&#8217;ll be in sync within a few minutes. Awesome. </p>
<p>Unfortunately, it meant that <a href="http://blog.ryantoohil.com/2008/07/syncing-the-iphone-with-google-calendar-now-with-working-alarms.php">my previous script iteration</a> would now continually add alarms, leading to each entry having 3 or 4 alarms. Turns out that updating a local iCal calendar and adding an alarm actually updates that same info at GCal. Which is awesome (but was unexpected).</p>
<p>So, I made a small tweak to the script, which makes it run a bit faster and makes sure that you only get one alarm on an entry:</p>
<p>Try this instead:</p>
<pre>
tell application "iCal"
  set theCalendars to {"Cal1", "Cal2"}
  repeat with theCurrentValue in theCalendars
	tell calendar theCurrentValue
	  set theEvents to every event
	  repeat with theCurrentEvent in theEvents
	    tell theCurrentEvent
	      if not (exists sound alarm of theCurrentEvent) then
		   make new sound alarm at end /
		   with properties {trigger interval:-15}
		  end if
	    end tell
	  end repeat
	end tell
  end repeat
end tell
</pre>
<p>That basically means it won&#8217;t add another sound alarm if the entry already has one. Much handier. In fact, you could just take that script and have it run every few hours (either cron&#8217;d or via iCal), and not have to worry about the iTunes Sync script.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.ryantoohil.com/2008/08/quick-icalgoogle-calendar-sync-update.php/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Syncing the iPhone with Google Calendar (now with working Alarms!)</title>
		<link>http://blog.ryantoohil.com/2008/07/syncing-the-iphone-with-google-calendar-now-with-working-alarms.php</link>
		<comments>http://blog.ryantoohil.com/2008/07/syncing-the-iphone-with-google-calendar-now-with-working-alarms.php#comments</comments>
		<pubDate>Tue, 22 Jul 2008 21:04:15 +0000</pubDate>
		<dc:creator>Ryan Toohil</dc:creator>
				<category><![CDATA[Apple]]></category>
		<category><![CDATA[Google Calendar]]></category>
		<category><![CDATA[iPhone]]></category>

		<guid isPermaLink="false">http://blog.ryantoohil.com/?p=285</guid>
		<description><![CDATA[My biggest gripe with the iPhone thus far has really been a gripe with iCal. Namely, that there&#8217;s not an easy way to add alarms to subscribed calendars. I know that sounds like a silly gripe, but let me set the stage. My main calendaring info is in Google Calendar, like a lot of folks. <a href='http://blog.ryantoohil.com/2008/07/syncing-the-iphone-with-google-calendar-now-with-working-alarms.php'>[...]</a>]]></description>
			<content:encoded><![CDATA[<p>My biggest gripe with the iPhone thus far has really been a gripe with iCal. Namely, that there&#8217;s not an easy way to add alarms to subscribed calendars. I know that sounds like a silly gripe, but let me set the stage.</p>
<p>My main calendaring info is in Google Calendar, like a lot of folks. This is great because I can access my calendar from anywhere, on any computer, most cell phones, etc. It gives me a central way to maintain a calendar and have access to it pretty much all the time. I subscribe to my Google Calendar in iCal on my Mac, which gives me native calendaring (one-way, at least) that&#8217;s always up-to-date with the data in the Google cloud. It&#8217;s nice.</p>
<p>Taking it one step further, I use <a href="http://syncmycal.com/">SyncMyCal</a> to push my Outlook calendar to my Google Calendar as well. (I would use the normal Google Calendar Sync application, but it only syncs with the primary calendar, and I&#8217;d rather keep my personal calendar and work calendar separate.) So, every day, before I leave the office, I click a little sync button and it pushes my Outlook info up to Google Calendar. Again, one-way sync, but it&#8217;s one-way from my primary source, so I&#8217;m not worried about it.</p>
<p>That means I&#8217;ve got my personal and work calendars all centrally located on Google Calendar, accessible from pretty much anywhere. Including my primary machine of my Mac, where iCal subscribes to all of my various calendars. It&#8217;s a wonderful system.</p>
<p>Except one thing. iCal doesn&#8217;t allow you to set alarms on subscribed calendars. At least not through the interface. That makes this wonderful sync system decidedly less useful. See, between my MacBook and my iPhone, I&#8217;m pretty much covered. One is with me most of the time. If I had alarms on my calendars, then I&#8217;d pretty much have a perfect setup.</p>
<p>It worked incredibly well with my Motorola Q (and <a href="http://missingsync.com/">The Missing Sync from Mark/Space</a>), which would import all of the calendar items from iCal, and set default alarms on them on the Q. Beautiful.</p>
<p>Not so much on the iPhone. For a couple of months, I&#8217;ve just dealt with the fact that using Google Calendar put me in the middle of the two supported options: using iCal and using Exchange (which became available with the 2.0 firmware). I could see the calendar events on my iPhone, but they were never going to make that nice &#8220;bleep bleep&#8221; sound and let me know that I had a meeting or I had to be somewhere in a few minutes. It&#8217;s something I had taken for granted with previous smartphones, but just chalked up to a deficiency in the early years of the iPhone.</p>
<p>Except I finally got fed up enough to do some digging into AppleScript and found some pointers to adding an alarm to an event. I figured why not give it a shot on subscribed calendars? Maybe I could add some alarms to my subscribed calendars?</p>
<p>After poking around and playing with AppleScript (something brand new to me, I got this working):</p>
<pre>
tell application "iCal"
	set theCalendars to {"Subscribed 1", "Subscribed 2"}
	repeat with theCurrentValue in theCalendars
		tell calendar theCurrentValue
			set theEvents to every event
			repeat with theCurrentEvent in theEvents
				tell theCurrentEvent
					make new sound alarm at end with properties {trigger interval:-15}
				end tell
			end repeat
		end tell
	end repeat
end tell
</pre>
<p>Basically, we grab our two subscribed calendars (those are placeholder names, replace with your own subscribed calendar names), go through each entry and add a sound alarm 15 minutes before the event. It takes maybe 10 or 15 seconds to go through both of my calendars, but lo! I end up with alarms both in iCal and on the iPhone!</p>
<p>Bingo. Exactly what I need. I&#8217;m sure there&#8217;s something more elegant, but this worked for me.</p>
<p>The next issue, of course, was a &#8220;race condition&#8221; of sorts. My calendars update themselves periodically. If they updated before I sync with my iPhone, the alarms would be gone. How could I resolve that?</p>
<p>How about another AppleScript? I did a bit more googling, and of course, there&#8217;s a nice way to sync your iPhone (or iPod), via AppleScript. Why not combine both scripts and drop it into the iTunes script directory? That&#8217;s a brilliant idea!</p>
<pre>
tell application "iCal"
	set theCalendars to {"Sub1", "Sub2"}
	repeat with theCurrentValue in theCalendars
		tell calendar theCurrentValue
			set theEvents to every event
			repeat with theCurrentEvent in theEvents
				tell theCurrentEvent
					make new sound alarm at end with properties {trigger interval:-15}
				end tell
			end repeat
		end tell
	end repeat
end tell

tell application "iTunes"
	repeat with s in sources
		if (kind of s is iPod) then update s
	end repeat
end tell
</pre>
<p>Now, when I&#8217;m about to leave the house, I just do this:</p>
<p><img src="http://www.ryantoohil.com/images/Fullscreen-20080722-165711.png" title="iTunes Sync" alt="iTunes Sync" /></p>
<p>That&#8217;s it. All of my calendar items, from Google Calendar, sync&#8217;d to my iPhone with alarms. It&#8217;s a beautiful thing. </p>
<p>And I wish nothing more than for iCal to render it useless my having a &#8220;add default alarm to subscribed calendar&#8221; checkbox.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.ryantoohil.com/2008/07/syncing-the-iphone-with-google-calendar-now-with-working-alarms.php/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Evite to Google Calendar Greasemonkey Script v1.4</title>
		<link>http://blog.ryantoohil.com/2007/10/evite-to-google-calendar-greasemonkey-script-v14.php</link>
		<comments>http://blog.ryantoohil.com/2007/10/evite-to-google-calendar-greasemonkey-script-v14.php#comments</comments>
		<pubDate>Fri, 12 Oct 2007 14:00:40 +0000</pubDate>
		<dc:creator>Ryan Toohil</dc:creator>
				<category><![CDATA[Evite]]></category>
		<category><![CDATA[Google Calendar]]></category>
		<category><![CDATA[Greasemonkey]]></category>

		<guid isPermaLink="false">http://blog.ryantoohil.com/2007/10/evite-to-google-calendar-greasemonkey-script-v14.php</guid>
		<description><![CDATA[Hey, I made a small revision to my Greasemonkey script that makes it smarter about handling time (particularly AM/PM). It&#8217;s updated here and updated on Userscripts, where I&#8217;m up to like 566 installs! I&#8217;m a hit! Or something. And I&#8217;m like the 4th link in Google if you search for &#8220;google calendar evite!&#8221; If you&#8217;ve <a href='http://blog.ryantoohil.com/2007/10/evite-to-google-calendar-greasemonkey-script-v14.php'>[...]</a>]]></description>
			<content:encoded><![CDATA[<p>Hey, I made a small revision to <a href="http://blog.ryantoohil.com/2007/01/evite-to-google-calendar-greasemonkey-script-v11.php">my Greasemonkey script</a> that makes it smarter about handling time (particularly AM/PM).</p>
<p>It&#8217;s updated here and updated on <a href="http://userscripts.org/scripts/show/7271">Userscripts</a>, where I&#8217;m up to like 566 installs! I&#8217;m a hit! Or something. And I&#8217;m like the 4th link in Google if you search for &#8220;<a href="http://www.google.com/search?client=safari&amp;rls=en&amp;q=google+calendar+evite&amp;ie=UTF-8&amp;oe=UTF-8">google calendar evite</a>!&#8221;</p>
<p>If you&#8217;ve got Greasemonkey, install your <a href="http://www.ryantoohil.com/Evite2GoogleCal.user.js">Evite to Google Calendar script right from here</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.ryantoohil.com/2007/10/evite-to-google-calendar-greasemonkey-script-v14.php/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Plaxo &#8230; Not Quite the Bees Knees of Sync</title>
		<link>http://blog.ryantoohil.com/2007/07/plaxo-not-quite-the-bees-knees-of-sync.php</link>
		<comments>http://blog.ryantoohil.com/2007/07/plaxo-not-quite-the-bees-knees-of-sync.php#comments</comments>
		<pubDate>Tue, 17 Jul 2007 00:58:54 +0000</pubDate>
		<dc:creator>Ryan Toohil</dc:creator>
				<category><![CDATA[Apple]]></category>
		<category><![CDATA[Google Calendar]]></category>
		<category><![CDATA[Plaxo]]></category>

		<guid isPermaLink="false">http://blog.ryantoohil.com/2007/07/plaxo-not-quite-the-bees-knees-of-sync.php</guid>
		<description><![CDATA[For a while now, I&#8217;ve been looking for a good way to sync the calendar on my Macbook to Google Calendar to my Outlook at work. It&#8217;d be nice to be able to know what my next day at work looks like in Outlook, then to have my Calendar sync&#8217;d down to my laptop so <a href='http://blog.ryantoohil.com/2007/07/plaxo-not-quite-the-bees-knees-of-sync.php'>[...]</a>]]></description>
			<content:encoded><![CDATA[<p align="left">For a while now, I&#8217;ve been looking for a good way to sync the calendar on my Macbook to Google Calendar to my Outlook at work. It&#8217;d be nice to be able to know what my next day at work looks like in Outlook, then to have my Calendar sync&#8217;d down to my laptop so that I can see and adjust things while offline, then sync it all back to the master calendar in Google Calendar.</p>
<p align="left">&nbsp;</p>
<p align="left">It shouldn&#8217;t be that tough, but so far, it has proven elusive. I&#8217;ve tried some of the free tools that are around to sync iCal with Google Calendar and Outlook with Google Calendar, but they&#8217;ve all proved a bit wonky.</p>
<p align="left">&nbsp;</p>
<p align="left">Finally, <a href="http://scobleizer.com/2007/06/24/plaxo-brings-out-new-contact-manager-but/">Scoble mentioned that Plaxo</a> had it&#8217;s new beta that would do all of the syncing through a nifty web application. So, I headed over to <a href="http://www.plaxo.com/">Plaxo.com</a> and tried it out. It seems pretty straight-forward. You add &#8220;sync points&#8221;, which are places that Plaxo will sync your data to. I added Google Calendar, my Mac, and my work Outlook. The latter two required the installation of some software. Nothing too difficult. A couple of config tweaks later and I saw my work calendar in my Google Calendar and sync&#8217;d down to my Mac.</p>
<p>Perfect!</p>
<p align="left">&nbsp;</p>
<p align="left">Except, over the following few days, I would constantly get duplicate calendars, lose the original calendar, get duplicate entries, continually have to tell Outlook which calendars I really wanted, which it would ignore and keep syncing other ones.</p>
<p align="left">&nbsp;</p>
<p align="left">It became a royal mess.</p>
<p align="left">&nbsp;</p>
<p align="left">So, I decided to uninstall things, get back to square one, and at least retain my Google Calendar the way it was. Except Plaxo ate my two calendars (because they no longer existed in Outlook &#8230; lesson: kill your sync points before killing your calendars). That kinda pissed me off. Thankfully, my Mac still had my calendar, so I was able to dump the ICS entries and upload them to Google (import of ICS files is a nice feature of Google Calendar, by the way!). I lost my music calendar, but it was mostly older stuff at this point, so I started that one over.</p>
<p align="left">&nbsp;</p>
<p align="left">Plaxo just didn&#8217;t work for me, though it seems like it could be useful if they work the kinks out. It didn&#8217;t sync to Google Calendar fast enough, which was always a bit annoying. The apps for the Mac and PC were kind of clunky, but they worked ok. But borking the calendar syncing was just a bit too much to deal with at this point.</p>
<p align="left">&nbsp;</p>
<p align="left">So, I&#8217;m back to just subscribing to my Google Calendar feeds through iCal. I&#8217;m going to try <a href="http://www.macness.com/blog/">gSync</a> for about the 4th time and hope that the final release version is finally good enough to maybe think about using full time.</p>
<p align="left">&nbsp;</p>
<p align="left">It&#8217;d be cool if Google solved this problem themselves (maybe opening up the GCal API), but I&#8217;m not holding my breath.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.ryantoohil.com/2007/07/plaxo-not-quite-the-bees-knees-of-sync.php/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Evite to Google Calendar Greasemonkey Script v1.3</title>
		<link>http://blog.ryantoohil.com/2007/06/evite-to-google-calendar-greasemonkey-script-v13.php</link>
		<comments>http://blog.ryantoohil.com/2007/06/evite-to-google-calendar-greasemonkey-script-v13.php#comments</comments>
		<pubDate>Tue, 26 Jun 2007 02:17:30 +0000</pubDate>
		<dc:creator>Ryan Toohil</dc:creator>
				<category><![CDATA[Google Calendar]]></category>
		<category><![CDATA[Greasemonkey]]></category>
		<category><![CDATA[Javascript]]></category>

		<guid isPermaLink="false">http://blog.ryantoohil.com/2007/06/evite-to-google-calendar-greasemonkey-script-v13.php</guid>
		<description><![CDATA[I&#8217;d noticed a couple of problems with my Evite to Google Calendar script, so when I got an Evite today, I took some time to figure out how to fix it. I fixed everything I could find, and made the script a bit more robust at handling future Evite changes. So, if you&#8217;ve been having <a href='http://blog.ryantoohil.com/2007/06/evite-to-google-calendar-greasemonkey-script-v13.php'>[...]</a>]]></description>
			<content:encoded><![CDATA[<p>I&#8217;d noticed a couple of problems with my <a href="http://blog.ryantoohil.com/2007/01/evite-to-google-calendar-greasemonkey-script-v11.php" title="Evite to Google Calendar">Evite to Google Calendar script</a>, so when I got an Evite today, I took some time to figure out how to fix it. I fixed everything I could find, and made the script a bit more robust at handling future Evite changes. So, if you&#8217;ve been having problems, give it another shot and hopefully it&#8217;ll work for you now.</p>
<p><a href="http://www.ryantoohil.com/Evite2GoogleCal.user.js" title="Evite to Google Calendar">Install Evite to Google Calendar Greasemonkey Script v1.3</a></p>
<p>You can also install it from <a href="http://userscripts.org/scripts/show/7271" title="Evite to Google Calendar at UserScripts">UserScripts</a>, like 387 other people.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.ryantoohil.com/2007/06/evite-to-google-calendar-greasemonkey-script-v13.php/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Evite to Google Calendar Greasemonkey Script v1.2</title>
		<link>http://blog.ryantoohil.com/2007/04/evite-to-google-calendar-greasemonkey-script-v12.php</link>
		<comments>http://blog.ryantoohil.com/2007/04/evite-to-google-calendar-greasemonkey-script-v12.php#comments</comments>
		<pubDate>Sun, 22 Apr 2007 02:09:25 +0000</pubDate>
		<dc:creator>Ryan Toohil</dc:creator>
				<category><![CDATA[Evite]]></category>
		<category><![CDATA[Google Calendar]]></category>
		<category><![CDATA[Greasemonkey]]></category>

		<guid isPermaLink="false">http://blog.ryantoohil.com/2007/04/evite-to-google-calendar-greasemonkey-script-v12.php</guid>
		<description><![CDATA[I got my first Evite in a while, and I noticed that my little Greasemonkey script wasn&#8217;t working for it. That lead me to go back and check out the entry at Userscripts and find out that people were getting bit by the fact I had to hard code the timezone info, which isn&#8217;t very <a href='http://blog.ryantoohil.com/2007/04/evite-to-google-calendar-greasemonkey-script-v12.php'>[...]</a>]]></description>
			<content:encoded><![CDATA[<p>I got my first Evite in a while, and I noticed that my <a href="http://blog.ryantoohil.com/2007/01/evite-to-google-calendar-greasemonkey-script-v11.php">little Greasemonkey script</a> wasn&#8217;t working for it. That lead me to go back and check out the entry at <a href="http://userscripts.org/">Userscripts</a> and find out that people were getting bit by the fact I had to hard code the timezone  info, which isn&#8217;t very friendly.</p>
<p>So, I opened it up again and hacked around and fixed both bugs. Took me about 30 minutes, and got my mind off of recent events.</p>
<p><a href="http://userscripts.org/scripts/show/7271">Evite2GoogleCal at Userscripts</a></p>
<p>Now with:</p>
<ul>
<li> the ability to use it for invites that happened on the 1-9th of the month (yeah, that was a dumb bug)!</li>
<li>automagically detecting your timezone and setting the entry to the right time!</li>
</ul>
<p>Be the 191st person to install it!</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.ryantoohil.com/2007/04/evite-to-google-calendar-greasemonkey-script-v12.php/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>

