<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:blogger='http://schemas.google.com/blogger/2008' xmlns:georss='http://www.georss.org/georss' xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-1125062745297868456</id><updated>2026-04-03T07:27:44.424-07:00</updated><title type='text'>Jazzerup Blog</title><subtitle type='html'>My blog has moved - View my latest blog posts here: &lt;a href=&quot;http://www.jazzerup.com/blog&quot;&gt;http://www.jazzerup.com/blog&lt;/a&gt;</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://jazzerup.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1125062745297868456/posts/default?alt=atom&amp;redirect=false'/><link rel='alternate' type='text/html' href='http://jazzerup.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Jaz</name><uri>http://www.blogger.com/profile/00036866587380897292</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>5</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-1125062745297868456.post-92034934790715547</id><published>2009-04-15T15:31:00.000-07:00</published><updated>2009-04-15T19:31:11.774-07:00</updated><title type='text'>Google Friend Connect - Capture ID</title><content type='html'>Find out your members&#39; unique ids (sometimes referred to as userid or user id) in Google Friend Connect.  Useful for integrating friend connect into your existing web forms, applications or tracking.&lt;br /&gt;&lt;br /&gt;Ever have one of those days where that you think something is going to be really easy and 5 hours later you&#39;re ready to pull your hair out?&lt;br /&gt;&lt;br /&gt;That&#39;s how I felt about Google friend Connect. Don&#39;t get me wrong it&#39;s extremely easy if you are only playing with the provided gadgets but the developer&#39;s section can make you squirm.&lt;br /&gt;&lt;br /&gt;Google does a good job of explaining the initial pieces of code you need in your page in order to connect to the API:&lt;br /&gt;&lt;a href=&quot;http://code.google.com/apis/friendconnect/articles/inpage_integration.html#setup&quot;&gt;http://code.google.com/apis/friendconnect/articles/inpage_integration.html#setup&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;What Google doesn&#39;t give you is a quick example on capturing only the unique userid.  Here&#39;s the code to make that happen.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Step 1: Paste this in the header section of your webpage&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class=&quot;codebox&quot;&gt;&lt;code&gt;&lt;br /&gt;&amp;lt;script src=&quot;http://www.google.com/jsapi&quot; type=&quot;text/javascript&quot; charset=&quot;utf-8&quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;script type=&quot;text/javascript&quot; charset=&quot;utf-8&quot;&amp;gt;&lt;br /&gt;google.load(&#39;friendconnect&#39;, &#39;0.8&#39;);&lt;br /&gt;&amp;lt;/script&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;script type=&quot;text/javascript&quot;&amp;gt;&lt;br /&gt;google.friendconnect.container.setParentUrl(&#39;/&#39;);&lt;br /&gt;google.friendconnect.container.loadOpenSocialApi({&lt;br /&gt;site: &#39;&lt;span class=&quot;codeboxcustomize&quot;&gt;XXXXXXXXXXXXXXX&lt;/span&gt;&#39;, &lt;span class=&quot;codeboxcomments&quot;&gt;// Change this on your site&lt;/span&gt;&lt;br /&gt; onload: function() { initAllData(); }&lt;br /&gt;});&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;function initAllData() {&lt;br /&gt;var req = opensocial.newDataRequest();&lt;br /&gt;req.add(req.newFetchPersonRequest(&quot;VIEWER&quot;), &quot;viewer&quot;);&lt;br /&gt;req.send(loadData);&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class=&quot;codeboxcodeboxcomments&quot;&gt;// load the data using open social&lt;/span&gt;&lt;br /&gt;function loadData() {&lt;br /&gt;var req = opensocial.newDataRequest();&lt;br /&gt;req.add(req.newFetchPersonRequest(&#39;VIEWER&#39;), &#39;viewer&#39;);&lt;br /&gt;req.send(onLoadCallback);&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class=&quot;codeboxcomments&quot;&gt;// called after data is loaded&lt;/span&gt;&lt;br /&gt;function onLoadCallback(data) {    &lt;br /&gt;if(data.get(&#39;viewer&#39;).getData()) {&lt;br /&gt;var viewer = data.get(&#39;viewer&#39;).getData();&lt;br /&gt;var name = viewer.getDisplayName();&lt;br /&gt;&lt;br /&gt;&lt;span class=&quot;codeboxcomments&quot;&gt;//The holy grail of code that took me forever to figure out&lt;/span&gt;&lt;br /&gt;var userid = viewer.getField( opensocial.Person.Field.ID );&lt;br /&gt;&lt;br /&gt;&lt;span class=&quot;codeboxcodeboxcomments&quot;&gt;// This code that will update your form field with the userid value. Be sure to change the formname value and the fieldname value to match your form.&lt;/span&gt;&lt;br /&gt;document.&lt;span class=&quot;codeboxcustomize&quot;&gt;FORMNAME.FIELDNAME&lt;/span&gt;.value = userid;&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;&amp;lt;/script&amp;gt;&lt;br /&gt;&lt;/code&gt;&lt;/div&gt;&lt;code&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Step 2: Create your form &lt;/strong&gt;&lt;br /&gt;&lt;div class=&quot;codebox&quot;&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;&amp;lt;form id=&quot;&lt;span class=&quot;codeboxcustomize&quot;&gt;FORMNAME&lt;/span&gt;&quot; name=&quot;&lt;span class=&quot;codeboxcustomize&quot;&gt;FORMNAME&lt;/span&gt;&quot; action=&quot;http://www.actionhere.com&quot; method=&quot;post&quot;&amp;gt;&lt;br /&gt;&amp;lt;input size=&quot;32&quot; name=&quot;&lt;span class=&quot;codeboxcustomize&quot;&gt;FIELDNAME&lt;/span&gt;&quot;&amp;gt;&lt;br /&gt;&amp;lt;input type=&quot;submit&quot; value=&quot;Submit&quot;&amp;gt;&lt;br /&gt;&amp;lt;/form&amp;gt;&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Reference Links&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Google Friend Connect Website&lt;br /&gt;&lt;a href=&quot;http://www.google.com/friendconnect&quot;&gt;http://www.google.com/friendconnect&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Google Friend Connect API Documentation (Javascript):&lt;br /&gt;&lt;a href=&quot;http://code.google.com/apis/friendconnect/js_api.html&quot;&gt;http://code.google.com/apis/friendconnect/js_api.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Supported Open Social Parameters:&lt;br /&gt;&lt;a href=&quot;http://code.google.com/apis/friendconnect/opensocial_and_gfc.html#VIEWER&quot;&gt;http://code.google.com/apis/friendconnect/opensocial_and_gfc.html#VIEWER&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;xmp&gt;&lt;/xmp&gt;</content><link rel='replies' type='application/atom+xml' href='http://jazzerup.blogspot.com/feeds/92034934790715547/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jazzerup.blogspot.com/2009/04/google-friend-connect-capture-id.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1125062745297868456/posts/default/92034934790715547'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1125062745297868456/posts/default/92034934790715547'/><link rel='alternate' type='text/html' href='http://jazzerup.blogspot.com/2009/04/google-friend-connect-capture-id.html' title='Google Friend Connect - Capture ID'/><author><name>Jaz</name><uri>http://www.blogger.com/profile/00036866587380897292</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1125062745297868456.post-4455999038489028539</id><published>2008-09-16T15:05:00.000-07:00</published><updated>2008-09-19T12:41:56.278-07:00</updated><title type='text'>Outlook Meeting Tracking Export</title><content type='html'>&lt;p&gt;Recently I was planning an event using my Outlook calendar at work. I needed to share the list of users who had accepted the outlook invitation with my fellow event planners. Unfortunately I couldn&#39;t find a way to do this in outlook without taking screen shots of the list&lt;/p&gt;&lt;p&gt;I found a website where someone had written a macro to export the list in word.&lt;br /&gt;&lt;a href=&quot;http://www.outlookcode.com/codedetail.aspx?id=37&quot;&gt;http://www.outlookcode.com/codedetail.aspx?id=37&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The code didn&#39;t work in Office 2007 so I tweaked it and decided to take it one step further. I set it to export my list to Excel, instead of word, where I could quickly sort by name or acceptance.&lt;/p&gt;&lt;p&gt;If you have never created a macro before this may be a little intimidating but here&#39;s some easy instructions I got from &lt;a href=&quot;http://groups.google.com/group/microsoft.public.outlook.calendaring/browse_frm/thread/57c2e2b503fad550/241fccb5474500d3?lnk=st&amp;amp;q=outlook+macro+print+invitation&amp;amp;rnum=1&quot;&gt;Google Groups&lt;/a&gt;&lt;br /&gt;&lt;/p&gt;&lt;ol&gt;&lt;li&gt;Copy the code below&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Open Outlook&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Press your &amp;lt;ALT&amp;gt;+&amp;lt;F11&amp;gt; (This opens the Microsoft Visual Basic - VbaProject.OTM)&lt;/li&gt;&lt;br /&gt;&lt;li&gt;On the menu across the top select &quot;Insert&quot; &lt;/li&gt;&lt;br /&gt;&lt;li&gt;Select &quot;Module&quot; &lt;/li&gt;&lt;br /&gt;&lt;li&gt;In the blank window on the right, PASTE the code you copied &lt;/li&gt;&lt;br /&gt;&lt;li&gt;Select &quot;File&quot; &lt;/li&gt;&lt;br /&gt;&lt;li&gt;Select &quot;Close and Return to Microsoft Outlook&quot; &lt;/li&gt;&lt;br /&gt;&lt;li&gt;Right click on your Tool menu (in the gray part where the buttons are) &lt;/li&gt;&lt;br /&gt;&lt;li&gt;Select &quot;Customize...&quot; &lt;/li&gt;&lt;br /&gt;&lt;li&gt;Click on the &quot;Commands&quot; tab &lt;/li&gt;&lt;br /&gt;&lt;li&gt;Select &quot;Macros&quot; from the Categories &lt;/li&gt;&lt;br /&gt;&lt;li&gt;Click on &quot;Project1.PrintAapptAttendee&quot; and drag it to your toolbar&lt;br /&gt;&lt;br /&gt;and Drop it (You have to drop it ON the toolbar not in the gray&lt;br /&gt;&lt;br /&gt;blank area but next to something like the yellow question mark icon) &lt;/li&gt;&lt;br /&gt;&lt;li&gt;Close the Customize window.&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;Now try to use this &quot;&lt;strong&gt;Macro&lt;/strong&gt;&quot;&lt;br /&gt;&lt;/p&gt;&lt;ol&gt;&lt;li&gt;Open an appointment that has attendees in it &lt;/li&gt;&lt;br /&gt;&lt;li&gt;Click on the &quot;Project1.PrintAapptAttendee&quot; button that you put on your toolbar. &lt;/li&gt;&lt;br /&gt;&lt;li&gt;Wait a moment for Word to open and show you your appointment with all of the attendees and how they responded to the invitation&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Code:&lt;/strong&gt;&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;div class=&quot;codebox&quot;&gt;&lt;br /&gt;&lt;p&gt;Sub PrintAapptAttendee()&lt;br /&gt;&lt;br /&gt;&#39; Gather data from an opened appointment and print to&lt;br /&gt;&#39; Excel. This provides a way to print the attendee list with their&lt;br /&gt;&#39; response, which Outlook will not do on its own.&lt;/p&gt;&lt;p&gt;&#39; Set up Outlook&lt;br /&gt;&lt;br /&gt;Dim objApp As Outlook.Application&lt;br /&gt;Dim objItem As Object&lt;br /&gt;Dim objSelection As Selection&lt;br /&gt;Dim objAttendees As Outlook.Recipients&lt;br /&gt;Dim objAttendeeReq As String&lt;br /&gt;Dim objAttendeeOpt As String&lt;br /&gt;Dim objOrganizer As String&lt;br /&gt;Dim dtStart As Date&lt;br /&gt;Dim dtEnd As Date&lt;br /&gt;Dim strSubject As String&lt;br /&gt;Dim strLocation As String&lt;br /&gt;Dim strNotes As String&lt;br /&gt;Dim strMeetStatus As String&lt;br /&gt;Dim strUnderline As String &#39; Horizontal divider line&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&#39; Set up Excel&lt;br /&gt;&lt;br /&gt;Set objExcel = CreateObject(&quot;Excel.Application&quot;)&lt;br /&gt;objExcel.Visible = True&lt;br /&gt;objExcel.Workbooks.Add&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&#39;Create the header and set the background color as yellow&lt;br /&gt;&lt;br /&gt;objExcel.Cells(1, 1).Value = &quot;Attendee&quot;&lt;br /&gt;objExcel.Cells(1, 1).Interior.ColorIndex = 6&lt;br /&gt;objExcel.Cells(1, 2).Value = &quot;Response&quot;&lt;br /&gt;objExcel.Cells(1, 2).Interior.ColorIndex = 6&lt;/p&gt;&lt;br /&gt;&lt;p&gt;objExcel.Cells(1, 3).Value = &quot;Req/Opt&quot;&lt;br /&gt;objExcel.Cells(1, 3).Interior.ColorIndex = 6&lt;br /&gt;&lt;/p&gt;&lt;p&gt;On Error Resume Next&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Set objApp = CreateObject(&quot;Outlook.Application&quot;)&lt;br /&gt;Set objItem = objApp.ActiveInspector.CurrentItem&lt;br /&gt;Set objSelection = objApp.ActiveExplorer.Selection&lt;br /&gt;Set objAttendees = objItem.Recipients&lt;br /&gt;Set objExcel = GetObject(, &quot;Excel.Application&quot;)&lt;br /&gt;&lt;br /&gt;If objExcel Is Nothing Then&lt;br /&gt;Set objExcel = CreateObject(&quot;Excel.Application&quot;)&lt;br /&gt;End If&lt;/p&gt;&lt;p&gt;strUnderline = String(60, &quot;_&quot;) &#39; use 60 underline characters&lt;br /&gt;&lt;br /&gt;On Error GoTo EndClean:&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&#39; check for user problems with none or too many items open&lt;br /&gt;Select Case objSelection.Count&lt;br /&gt;&lt;br /&gt;Case 0&lt;br /&gt;MsgBox &quot;No appointment was opened. Please opten the appointment to print.&quot;&lt;br /&gt;GoTo EndClean:&lt;br /&gt;&lt;br /&gt;Case Is &amp;gt; 1&lt;br /&gt;MsgBox &quot;Too many items were selected. Just select one!!!&quot;&lt;br /&gt;GoTo EndClean:&lt;br /&gt;End Select&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&#39; Is it an appointment&lt;br /&gt;&lt;br /&gt;If objItem.Class &amp;lt;&amp;gt; 26 Then&lt;br /&gt;MsgBox &quot;You First Need To open The Appointment to Print.&quot;&lt;br /&gt;GoTo EndClean:&lt;br /&gt;End If&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&#39; Get the data&lt;br /&gt;&lt;br /&gt;dtStart = objItem.Start&lt;br /&gt;dtEnd = objItem.End&lt;br /&gt;strSubject = objItem.Subject&lt;br /&gt;strLocation = objItem.Location&lt;br /&gt;strNotes = objItem.Body&lt;br /&gt;objOrganizer = objItem.Organizer&lt;br /&gt;objAttendeeReq = &quot;&quot;&lt;br /&gt;objAttendeeOpt = &quot;&quot;&lt;/p&gt;&lt;p&gt;&#39; Get The Attendee List&lt;br /&gt;&lt;br /&gt;For x = 1 To objAttendees.Count&lt;br /&gt;&lt;br /&gt;strMeetStatus = &quot;&quot;&lt;br /&gt;&lt;br /&gt;Select Case objAttendees(x).MeetingResponseStatus&lt;br /&gt;&lt;br /&gt;Case 0&lt;br /&gt;strMeetStatus = &quot;No Response&quot;&lt;br /&gt;&lt;br /&gt;Case 1&lt;br /&gt;strMeetStatus = &quot;Organizer&quot;&lt;br /&gt;&lt;br /&gt;Case 2&lt;br /&gt;strMeetStatus = &quot;Tentative&quot;&lt;br /&gt;&lt;br /&gt;Case 3&lt;br /&gt;strMeetStatus = &quot;Accepted&quot;&lt;br /&gt;&lt;br /&gt;Case 4&lt;br /&gt;strMeetStatus = &quot;Declined&quot;&lt;br /&gt;&lt;br /&gt;End Select&lt;br /&gt;&lt;br /&gt;If objAttendees(x).Type = olRequired Then&lt;br /&gt;&lt;br /&gt;objExcel.Cells(x + 1, 1).Value = objAttendees(x).Name&lt;br /&gt;objExcel.Cells(x + 1, 2).Value = strMeetStatus&lt;br /&gt;objExcel.Cells(x + 1, 3).Value = &quot;Required&quot;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Else&lt;br /&gt;&lt;br /&gt;objExcel.Cells(x + 1, 1).Value = objAttendees(x).Name&lt;br /&gt;objExcel.Cells(x + 1, 2).Value = strMeetStatus&lt;br /&gt;objExcel.Cells(x + 1, 3).Value = &quot;Optional&quot;&lt;br /&gt;&lt;br /&gt;End If&lt;br /&gt;RowCount = RowCount + 1&lt;br /&gt;Next&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&#39;Sort Worksheet&lt;br /&gt;&lt;br /&gt;objExcel.Worksheets(&quot;Sheet1&quot;).Range(&quot;B2&quot;).Sort _&lt;br /&gt;Key1:=objExcel.Worksheets(&quot;Sheet1&quot;).Columns(&quot;B&quot;), _&lt;br /&gt;Header:=xlGuess&lt;br /&gt;&lt;/p&gt;&lt;p&gt;objExcel.Worksheets(&quot;Sheet1&quot;).Range(&quot;A2&quot;).Sort _&lt;br /&gt;Key1:=objExcel.Worksheets(&quot;Sheet1&quot;).Columns(&quot;B&quot;), _&lt;br /&gt;Header:=xlGuess&lt;br /&gt;&lt;br /&gt;objExcel.Worksheets(&quot;Sheet1&quot;).Range(&quot;C2&quot;).Sort _&lt;br /&gt;Key1:=objExcel.Worksheets(&quot;Sheet1&quot;).Columns(&quot;B&quot;), _&lt;br /&gt;Header:=xlGuess&lt;/p&gt;&lt;br /&gt;&lt;p&gt;EndClean:&lt;br /&gt;&lt;br /&gt;Set objApp = Nothing&lt;br /&gt;Set objItem = Nothing&lt;br /&gt;Set objSelection = Nothing&lt;br /&gt;Set objAttendees = Nothing&lt;br /&gt;Set objExcel = Nothing&lt;br /&gt;Set objxls = Nothing&lt;br /&gt;Set excelRng = Nothing&lt;br /&gt;Set wordPara = Nothing&lt;/p&gt;&lt;br /&gt;&lt;p&gt;End Sub&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;&lt;/div&gt;&lt;p&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;color:#cc0000;&quot;&gt;----&gt;UPDATE (9/19/08): &lt;/span&gt;&lt;span style=&quot;color:#cc0000;&quot;&gt;&lt;em&gt;Please note you are using this macro at your own risk.&lt;/em&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;color:#660000;&quot;&gt;Many people were complaining that they could only run the item once and then it stopped working.  I did some research and it turn outs that Outlook disables all &quot;untrusted&quot; Macros.  &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;color:#660000;&quot;&gt;To get this to run more than once you will need to go to: &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;color:#660000;&quot;&gt;Tools &gt; Trust Center and Macro Security &gt; and change the radio button to &quot;Warning for all macros&quot;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;color:#660000;&quot;&gt;You will need to close outlook completely (make sure it&#39;s not running as a background task) then reopen it.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;color:#660000;&quot;&gt;You will receive a warning each time you run this macro but it should still work.&lt;/span&gt;&lt;/p&gt;&lt;p&gt; &lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='http://jazzerup.blogspot.com/feeds/4455999038489028539/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jazzerup.blogspot.com/2008/09/outlook-meeting-tracking-export.html#comment-form' title='123 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1125062745297868456/posts/default/4455999038489028539'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1125062745297868456/posts/default/4455999038489028539'/><link rel='alternate' type='text/html' href='http://jazzerup.blogspot.com/2008/09/outlook-meeting-tracking-export.html' title='Outlook Meeting Tracking Export'/><author><name>Jaz</name><uri>http://www.blogger.com/profile/00036866587380897292</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>123</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1125062745297868456.post-6170351985670599249</id><published>2008-07-28T18:22:00.000-07:00</published><updated>2008-07-28T19:52:52.300-07:00</updated><title type='text'>Google Calendar Event Images</title><content type='html'>Many college are jumping on Google Apps to begin hosting student email. One of the features of Google Apps is the public calendar where you can post college events.&lt;br /&gt;&lt;br /&gt;There are some limitations with Google Calendar:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;When you create an event you cannot add custom fields. There&#39;s no field for a brief description (teaser) or image.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;When I asked Google how to add additional fields they recommended using the API and writing a custom application that uses the google calendar database as a backend. Unfortunately I don&#39;t have the time or the resources to do that right now.&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;I wanted to be able to embed google calendar items in a webpage with a one line teaser and picture.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Example:&lt;br /&gt;&lt;/strong&gt;&lt;br /&gt;&lt;a href=&quot;http://www.jazzerup.com/webapps/googlecalendar.asp&quot;&gt;&lt;img id=&quot;BLOGGER_PHOTO_ID_5228241980521075074&quot; style=&quot;BORDER-RIGHT: #eaeaea 1px solid; PADDING-RIGHT: 2px; BORDER-TOP: #eaeaea 1px solid; PADDING-LEFT: 2px; PADDING-BOTTOM: 2px; BORDER-LEFT: #eaeaea 1px solid; CURSOR: hand; PADDING-TOP: 2px; BORDER-BOTTOM: #eaeaea 1px solid&quot; alt=&quot;Screenshot&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgdFHfU1V7nQjt-BYHfGyfn5svbHOKCiV6e140DRq10baxSnvI4wZzaSLVEOOWsNfjJY1xEY1m-DjCjMbOVU3j4j5lhXFNhfpKzqYGj57zvHewNnxB5pejzbxBrWnvb9T7-MVuvCZw7kmw/s320/screenshot.png&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;&lt;span class=&quot;blogtitle&quot;&gt;How did I do it?&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;To get around this I added the subject and the image to the description but google likes to strip out the html tags. I created a new event on my calendar and in the description box I typed:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;p align=&quot;center&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhTJ2CsQV5edyJaKQt78eU5IBhsaZF9cJbIA76r9ncMxtCxRnuSFg9oC6RZdzLS0BuZRbptHY2aJjV3fIY1Pp-ydNuUqgyQNSASwUs7TI06QpEbfbE4xFiKmPMM09NmnkFEyQyv6s-Lj0s/s1600-h/googlecal_description.JPG&quot;&gt;&lt;img id=&quot;BLOGGER_PHOTO_ID_5228248660811272738&quot; style=&quot;CURSOR: hand&quot; alt=&quot;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhTJ2CsQV5edyJaKQt78eU5IBhsaZF9cJbIA76r9ncMxtCxRnuSFg9oC6RZdzLS0BuZRbptHY2aJjV3fIY1Pp-ydNuUqgyQNSASwUs7TI06QpEbfbE4xFiKmPMM09NmnkFEyQyv6s-Lj0s/s400/googlecal_description.JPG&quot; border=&quot;0&quot; name=&quot;BLOGGER_PHOTO_ID_5228248660811272738&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class=&quot;codebox&quot;&gt;&lt;code&gt;This is my description of the event. It can be as long as I need. This is where I would type all the details that would show up after someone clicks the link.&lt;br /&gt;&amp;lt;br&amp;gt;&lt;br /&gt;Image: http://www.myurl.com/image.jpg&lt;br /&gt;&amp;lt;br&amp;gt;&lt;br /&gt;Subject: This is my teaser&lt;br /&gt;&lt;/code&gt;&lt;/div&gt;&lt;br /&gt;I parsed the xml file created by google and extracted the image and subject from the description. I wrapped the image and subject in the proper html tags when I displayed the content on my webpage.&lt;br /&gt;&lt;br /&gt;Here is what the Google Calendar XML file looks like: &lt;a href=&quot;http://www.google.com/calendar/feeds/jazzerup%40gmail.com/public/basic&quot;&gt;http://www.google.com/calendar/feeds/jazzerup%40gmail.com/public/basic&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;I found a free ASP script to display RSS/XML feeds - &lt;a href=&quot;http://bytescout.com/how_to_display_rss_using_asp.html&quot;&gt;ByteScout&lt;/a&gt; (Big thanks to ByteScout for sharing your code with the world)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;http://www.jazzerup.com/downloads/googlecalendar.zip&quot;&gt;&lt;img height=&quot;32&quot; alt=&quot;zip&quot; hspace=&quot;10&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi7TQuQu9hhb07rpLmh6wSoSv-T4ZX4NJzqe9imsoZ5f3D36_1-v57pTieUIYRtaMrWuJBSO8MXnrQrhKahjeAGClGBZV_2d0L3OjH1juiqZcdN0oCfKUMv4VL53Zb6ovnj7vK2F-sYfJU/s320/zip-icon.gif&quot; width=&quot;32&quot; align=&quot;left&quot; border=&quot;0&quot; /&gt; Download my modified version&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;/p&gt;&lt;br /&gt;I used regular expressions to extract the subject and image. Please note I&#39;m awful at Regular Expressions but I found this great site where people share their completed expresssions: &lt;a href=&quot;http://regexlib.com/&quot;&gt;http://regexlib.com/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;To install this code you&#39;ll need to change the &lt;strong&gt;URLToRSS =&lt;/strong&gt; &lt;a href=&quot;http://www.google.com/calendar/feeds/jazzerup%40gmail.com/public/basic&quot;&gt;http://www.google.com/calendar/feeds/jazzerup%40gmail.com/public/basic&lt;/a&gt;&lt;br /&gt;to your Google Calendar XML Address.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class=&quot;blogtitle&quot;&gt;How do I find my Google Calendar XML Address?&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;em&gt;It&#39;s a little tricky to find your XML Address&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Step 1:&lt;/strong&gt; Open your Google Calendar: &lt;a href=&quot;http://www.google.com/calendar&quot;&gt;http://www.google.com/calendar&lt;/a&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;Step 2:&lt;/strong&gt; Click on &quot;Settings&quot; in the upper right hand corner.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgfEe_08LBG4Mrf65r-DZhJq12gZKaSY9IA_mnBpEC6wLqo4H0OA-2zSSOmlmmRUqEmAPYUH3Pq-ng8pOLYjtc0o-xViheMaJFx9T4XmxowfCo_uh-SKgQzS2Bv264eRH8ik2jPii9vjCY/s1600-h/step1.png&quot;&gt;&lt;img id=&quot;BLOGGER_PHOTO_ID_5228244406019443298&quot; style=&quot;CURSOR: hand&quot; alt=&quot;Step 1&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgfEe_08LBG4Mrf65r-DZhJq12gZKaSY9IA_mnBpEC6wLqo4H0OA-2zSSOmlmmRUqEmAPYUH3Pq-ng8pOLYjtc0o-xViheMaJFx9T4XmxowfCo_uh-SKgQzS2Bv264eRH8ik2jPii9vjCY/s400/step1.png&quot; border=&quot;0&quot; name=&quot;BLOGGER_PHOTO_ID_5228244406019443298&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Step 3:&lt;/strong&gt; Under the &quot;Calendars&quot; tab select your calendar. &lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiYP23yfIRzWNdGDXR50Njk3IJRZeJEUa0yfK3pH7Oi4bckGm-o0Nj91GWMlBzHfYJL1yLdfVVF3YnMyydn_N70I1SxazHRumbelIHeX4noPa6KOJ7qs6x5HlJ2pp-QB8Wa7pYL47zCRKI/s1600-h/step2.png&quot;&gt;&lt;img id=&quot;BLOGGER_PHOTO_ID_5228244994065135602&quot; style=&quot;CURSOR: hand&quot; alt=&quot;Step 2&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiYP23yfIRzWNdGDXR50Njk3IJRZeJEUa0yfK3pH7Oi4bckGm-o0Nj91GWMlBzHfYJL1yLdfVVF3YnMyydn_N70I1SxazHRumbelIHeX4noPa6KOJ7qs6x5HlJ2pp-QB8Wa7pYL47zCRKI/s400/step2.png&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Step 4:&lt;/strong&gt; Under &quot;Sharing&quot; click on &quot;Sharing:Edit Settings&quot;&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiRgxf366zgUL8PS8TwGLslQpC8qEsOHNHPxP8crAyxE9lK77zid4rj9b3pjqsF8dVNCFAL-yVP3EM_v5SLqQ5fizcMmOfUgySUULUejLeSCiVLGO-2BIkcSg_X3tPHZDAg6FkfFawIv0Q/s1600-h/step3.png&quot;&gt;&lt;img id=&quot;BLOGGER_PHOTO_ID_5228245238294682322&quot; style=&quot;CURSOR: hand&quot; alt=&quot;step 3&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiRgxf366zgUL8PS8TwGLslQpC8qEsOHNHPxP8crAyxE9lK77zid4rj9b3pjqsF8dVNCFAL-yVP3EM_v5SLqQ5fizcMmOfUgySUULUejLeSCiVLGO-2BIkcSg_X3tPHZDAg6FkfFawIv0Q/s400/step3.png&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Step 5:&lt;/strong&gt; Under the &quot;Share the Calendar&quot; tab you need to make the Calendar Public in order for your feeds to show events.&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjCjB15zgKylXoEUiZh9bw3-yB1IFK4a0z9JsUSAyjF9JIpDd8u5SSuMrQDgrhLTDQb5gppaaJxQr_0mQo22tjOhBgmUZXy8DJzUpk4rcwoLJ14GQyVCOcYZVV0YqKEWW44gTpLWe9kGQ8/s1600-h/step4.png&quot;&gt;&lt;img id=&quot;BLOGGER_PHOTO_ID_5228245291589993842&quot; style=&quot;CURSOR: hand&quot; alt=&quot;Step 3&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjCjB15zgKylXoEUiZh9bw3-yB1IFK4a0z9JsUSAyjF9JIpDd8u5SSuMrQDgrhLTDQb5gppaaJxQr_0mQo22tjOhBgmUZXy8DJzUpk4rcwoLJ14GQyVCOcYZVV0YqKEWW44gTpLWe9kGQ8/s400/step4.png&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Step 6:&lt;/strong&gt; Under the &quot;Calendar Details&quot; tab there are links to your XML, ICAL and HTML calendars.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjzIFLJzacjiRdm3VmOtKt7hW9nn7d4dXNOzRIzs9jSAbTl8If3ASVwyiTe7HMTybRUdLN24ur_cf1fSkuoKR5F2ENMnML2YH-Ms3vxOa6qaeD_-GPmhWo5awXWmlYJpdd60UgRhj9u8DM/s1600-h/step5.png&quot;&gt;&lt;img id=&quot;BLOGGER_PHOTO_ID_5228245337065712226&quot; style=&quot;CURSOR: hand&quot; alt=&quot;step 4&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjzIFLJzacjiRdm3VmOtKt7hW9nn7d4dXNOzRIzs9jSAbTl8If3ASVwyiTe7HMTybRUdLN24ur_cf1fSkuoKR5F2ENMnML2YH-Ms3vxOa6qaeD_-GPmhWo5awXWmlYJpdd60UgRhj9u8DM/s400/step5.png&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhBOy8Wo3yWUbhVFvNwCu9_ySyqoKI-5wesGZMJQRTiS9sob4MDJAsdfkrJ0_nviZ7DFeLjvG1fVvm9QwjwS-NL-5ivwMek_08xxg49FM4rQ8bHMplrMWmclDDun7SNmINam2j1dQRa2_Y/s1600-h/step6.png&quot;&gt;&lt;img id=&quot;BLOGGER_PHOTO_ID_5228245418842646562&quot; style=&quot;CURSOR: hand&quot; alt=&quot;step 5&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhBOy8Wo3yWUbhVFvNwCu9_ySyqoKI-5wesGZMJQRTiS9sob4MDJAsdfkrJ0_nviZ7DFeLjvG1fVvm9QwjwS-NL-5ivwMek_08xxg49FM4rQ8bHMplrMWmclDDun7SNmINam2j1dQRa2_Y/s400/step6.png&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Step 7:&lt;/strong&gt; Click on the XML link and copy the address.&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgWi_KnI2ot1zSnDrlIA-ap987TWb1Nqm4FMH4wGwqh7NFoJH9i5BSc77YRZu1DlATpSBuhenQerKw9jswPRRLUbZa6d8jVZzR1Kq3GoAzdQoDeGFK8fMRihPwORQjEUeU-xIzch_FL3TA/s1600-h/step7.png&quot;&gt;&lt;img id=&quot;BLOGGER_PHOTO_ID_5228245472486778786&quot; style=&quot;CURSOR: hand&quot; alt=&quot;step 6&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgWi_KnI2ot1zSnDrlIA-ap987TWb1Nqm4FMH4wGwqh7NFoJH9i5BSc77YRZu1DlATpSBuhenQerKw9jswPRRLUbZa6d8jVZzR1Kq3GoAzdQoDeGFK8fMRihPwORQjEUeU-xIzch_FL3TA/s400/step7.png&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='http://jazzerup.blogspot.com/feeds/6170351985670599249/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jazzerup.blogspot.com/2008/07/google-calendar-event-images.html#comment-form' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1125062745297868456/posts/default/6170351985670599249'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1125062745297868456/posts/default/6170351985670599249'/><link rel='alternate' type='text/html' href='http://jazzerup.blogspot.com/2008/07/google-calendar-event-images.html' title='Google Calendar Event Images'/><author><name>Jaz</name><uri>http://www.blogger.com/profile/00036866587380897292</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgdFHfU1V7nQjt-BYHfGyfn5svbHOKCiV6e140DRq10baxSnvI4wZzaSLVEOOWsNfjJY1xEY1m-DjCjMbOVU3j4j5lhXFNhfpKzqYGj57zvHewNnxB5pejzbxBrWnvb9T7-MVuvCZw7kmw/s72-c/screenshot.png" height="72" width="72"/><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1125062745297868456.post-8281885851692914876</id><published>2008-07-27T21:21:00.000-07:00</published><updated>2008-07-28T17:59:31.734-07:00</updated><title type='text'>Organize Files VBS</title><content type='html'>Organize Files by Extension VB Script &lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I have hundreds of gigs worth of files and difficulty finding anything. Before Windows Vista I found that searching for a file could take a half hour and I realized I needed a better way to get organized. I wrote this quick Vistual Basic Script to help organize my files into subfolders by extension and date modifed.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi7TQuQu9hhb07rpLmh6wSoSv-T4ZX4NJzqe9imsoZ5f3D36_1-v57pTieUIYRtaMrWuJBSO8MXnrQrhKahjeAGClGBZV_2d0L3OjH1juiqZcdN0oCfKUMv4VL53Zb6ovnj7vK2F-sYfJU/s1600-h/zip-icon.gif&quot;&gt;&lt;img id=&quot;BLOGGER_PHOTO_ID_5228124655535372450&quot; style=&quot;FLOAT: left; MARGIN: 0px 10px 10px 0px; CURSOR: hand&quot; alt=&quot;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi7TQuQu9hhb07rpLmh6wSoSv-T4ZX4NJzqe9imsoZ5f3D36_1-v57pTieUIYRtaMrWuJBSO8MXnrQrhKahjeAGClGBZV_2d0L3OjH1juiqZcdN0oCfKUMv4VL53Zb6ovnj7vK2F-sYfJU/s320/zip-icon.gif&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;a href=&quot;http://www.jazzerup.com/downloads/organizefiles.zip&quot;&gt;Download Zip&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Below is a screenshot of my folders after my files have been copied to their destination.&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgvT6IuSh9Jliog0bQMyD9q2LHwyqwpYwm0WvddGkMRFMdIqozZ7qXsFiVtX_bdcPhyU9YySOP0QDPAL07Jh4Z3C7bvOHx3yM9w8Wsh8LoMROlarvPwTDSel_vyzQdMCcPZD11IGy823aY/s1600-h/folders_screenshot.JPG&quot;&gt;&lt;img id=&quot;BLOGGER_PHOTO_ID_5228124294773090914&quot; style=&quot;MARGIN: 0px 10px 10px 0px; CURSOR: hand&quot; alt=&quot;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgvT6IuSh9Jliog0bQMyD9q2LHwyqwpYwm0WvddGkMRFMdIqozZ7qXsFiVtX_bdcPhyU9YySOP0QDPAL07Jh4Z3C7bvOHx3yM9w8Wsh8LoMROlarvPwTDSel_vyzQdMCcPZD11IGy823aY/s320/folders_screenshot.JPG&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;How it works: &lt;/div&gt;&lt;div&gt;1) It looks at my source folder&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;2) Copies the file into a new destination (I didn&#39;t do move in case something wen wrong)&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;3) Places the files into a subfolder by its extension and daet modified (Example - test.doc) would go into a doc_2008 folder.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;4) Create a log of each file moved (in case it crashes mid-stream I know the last file moved)&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;License:&lt;/strong&gt; Open Source (GNU General Public License) &lt;/div&gt;&lt;br&gt;&lt;br /&gt;&lt;strong&gt;Code:&lt;/strong&gt; &lt;br /&gt;&lt;div class=&quot;codebox&quot;&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;Dim varstartpath, vardestination&lt;br /&gt;&lt;br /&gt;&#39;IMPORTANT - You need to provide a source and destination path.&lt;br /&gt;varsource = &quot;S:\Users\&quot;&lt;br /&gt;vardestination = &quot;R:\Backup&quot;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;OrganizeFiles(varsource)&lt;br /&gt;&lt;br /&gt;WScript.Echo &quot;Done!&quot;&lt;br /&gt;&lt;br /&gt;&#39;-------function to Find File Extensions------------&lt;br /&gt;&lt;br /&gt;Function GetExtension(varfile)&lt;br /&gt;&lt;br /&gt;&#39;------Split the file by periods--------------------&lt;br /&gt;arrayperiods = Split(varfile,&quot;.&quot;)&lt;br /&gt;&#39;------Select the characters after the last period--&lt;br /&gt;varnumperiods = UBound(arrayperiods)&lt;br /&gt;&#39;------Return the value to GetExtension&lt;br /&gt;GetExtension = arrayperiods(varnumperiods)&lt;br /&gt;&lt;br /&gt;End Function&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&#39;-------Sub Procedure to Create Folders Based on File Extensions and Date------------&lt;br /&gt;&lt;br /&gt;Sub CreateFolder(varfile,vardate)&lt;br /&gt;&lt;br /&gt;Set objFSO = CreateObject(&quot;Scripting.FileSystemObject&quot;)&lt;br /&gt;&lt;br /&gt;&#39;------Find out file extension-----------------------&lt;br /&gt;varextension = GetExtension(varfile)&lt;br /&gt;&#39;-------------------&lt;br /&gt;&lt;br /&gt;&#39;------Create a destination folder based on the extension and the year modified&lt;br /&gt;varfolder = vardestination &amp;amp; &quot;\&quot; &amp;amp; varextension &amp;amp; &quot;_&quot; &amp;amp; year(vardate)&lt;br /&gt;&#39;-------------------&lt;br /&gt;&lt;br /&gt;&#39;------If the folder doesn&#39;t already exist then create it&lt;br /&gt;If Not objFSO.FolderExists(varfolder) Then Set objFolder = objFSO.CreateFolder(varfolder)&lt;br /&gt;&#39;-------------------&lt;br /&gt;&lt;br /&gt;Set objFSO=Nothing&lt;br /&gt;&lt;br /&gt;End Sub&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&#39;-------Sub Procedure to Copy Files to a Folder------------&lt;br /&gt;&lt;br /&gt;Sub CopyToFolder(varpath,varfile,vardate)&lt;br /&gt;&lt;br /&gt;varextension = GetExtension(varfile)&lt;br /&gt;varfilesourcepath = varpath&lt;br /&gt;varfiledespath = vardestination &amp;amp; &quot;\&quot; &amp;amp; varextension &amp;amp; &quot;_&quot; &amp;amp; year(vardate) &amp;amp; &quot;\&quot; &amp;amp; varfile&lt;br /&gt;&lt;br /&gt;Set objFSO = CreateObject(&quot;Scripting.FileSystemObject&quot;)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&#39;-----Keep a log of files moved so you know where it crashed------------------&lt;br /&gt;&lt;br /&gt;&#39;Create or append a text file&lt;br /&gt;&lt;br /&gt;varlog = varpath&lt;br /&gt;&lt;br /&gt;Set fso = CreateObject(&quot;Scripting.FileSystemObject&quot;)&lt;br /&gt;fpath= vardestination &amp;amp; &quot;\FilesMoved.txt&quot;&lt;br /&gt;flg=fso.FileExists(fpath)&lt;br /&gt;&lt;br /&gt;If flg Then&lt;br /&gt;Set floc= fso.OpenTextFile(fpath, 8)&lt;br /&gt;floc.WriteLine(varlog)&lt;br /&gt;floc.Close&lt;br /&gt;Else&lt;br /&gt;Set floc = fso.CreateTextFile(fpath,true)&lt;br /&gt;floc.WriteLine(varlog)&lt;br /&gt;floc.Close&lt;br /&gt;End If&lt;br /&gt;&lt;br /&gt;Set fso = Nothing&lt;br /&gt;&lt;br /&gt;&#39;--------------&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&#39;------Check to see if File Exists-------------------&lt;br /&gt;If Not objFSO.FileExists(varfiledespath) Then&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;objFSO.copyFile varfilesourcepath,varfiledespath&lt;br /&gt;&lt;br /&gt;Else&lt;br /&gt;&lt;br /&gt;set objFileName = objFSO.GetFile(varfilesourcepath)&lt;br /&gt;varsourcesize = objFileName.Size&lt;br /&gt;varsourcemod = objFileName.DateLastModified&lt;br /&gt;Set objFileName = Nothing&lt;br /&gt;&lt;br /&gt;set objFileName = objFSO.GetFile(varfiledespath)&lt;br /&gt;vardestsize = objFileName.Size&lt;br /&gt;vardestmod = objFileName.DateLastModified&lt;br /&gt;Set objFileName = Nothing&lt;br /&gt;&lt;br /&gt;&#39;------If the file was last modified at the same time and is the same size----&lt;br /&gt;&lt;br /&gt;If (varsourcesize = vardestsize) and (varsourcemod = vardestmod) Then&lt;br /&gt;&lt;br /&gt;objFSO.copyFile varfilesourcepath,varfiledespath,true&lt;br /&gt;&lt;br /&gt;Else&lt;br /&gt;&lt;br /&gt;&#39;------If not true then rename the file-------&lt;br /&gt;varyear = year(varsourcemod)&lt;br /&gt;varsourcemod = FormatDateTime(varsourcemod,2)&lt;br /&gt;varsourcemod = Replace(varsourcemod, &quot;/&quot;, &quot;_&quot;)&lt;br /&gt;arrayperiods = Split(varfile,&quot;.&quot;)&lt;br /&gt;varitemname = arrayperiods(0)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;varfiledespath = vardestination &amp;amp; &quot;\&quot; &amp;amp; varextension &amp;amp; &quot;_&quot; &amp;amp; varyear &amp;amp; &quot;\&quot; &amp;amp; varitemname &amp;amp; &quot;_&quot; &amp;amp; varsourcesize &amp;amp; &quot;_&quot; &amp;amp; varsourcemod &amp;amp; &quot;.&quot; &amp;amp; varextension&lt;br /&gt;&lt;br /&gt;objFSO.CopyFile varfilesourcepath,varfiledespath,true&lt;br /&gt;&lt;br /&gt;End If&lt;br /&gt;&lt;br /&gt;End if&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Set objFSO=Nothing&lt;br /&gt;&lt;br /&gt;End Sub&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&#39;-------Sub Procedure to run through the files--------------------&lt;br /&gt;&lt;br /&gt;Sub OrganizeFiles(path)&lt;br /&gt;&lt;br /&gt;dim fs, folder, file, item, url&lt;br /&gt;&lt;br /&gt;set fs = CreateObject(&quot;Scripting.FileSystemObject&quot;)&lt;br /&gt;set folder = fs.GetFolder(path)&lt;br /&gt;&lt;br /&gt;&#39;Display the target folder and info.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&#39;Display a list of sub folders.&lt;br /&gt;&lt;br /&gt;for each item in folder.SubFolders&lt;br /&gt;OrganizeFiles(item.Path)&lt;br /&gt;next&lt;br /&gt;&lt;br /&gt;&#39;Display a list of files.&lt;br /&gt;&lt;br /&gt;for each item in folder.Files&lt;br /&gt;&lt;br /&gt;CreateFolder item.Name,item.DateLastModified&lt;br /&gt;CopyToFolder item.path,item.Name,item.DateLastModified&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;next&lt;br /&gt;&lt;br /&gt;set fs = Nothing&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;end sub&lt;br /&gt;&lt;br /&gt;&#39;----------&lt;br /&gt;&lt;/code&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jazzerup.blogspot.com/feeds/8281885851692914876/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jazzerup.blogspot.com/2008/07/organize-files-by-extension.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1125062745297868456/posts/default/8281885851692914876'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1125062745297868456/posts/default/8281885851692914876'/><link rel='alternate' type='text/html' href='http://jazzerup.blogspot.com/2008/07/organize-files-by-extension.html' title='Organize Files VBS'/><author><name>Jaz</name><uri>http://www.blogger.com/profile/00036866587380897292</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi7TQuQu9hhb07rpLmh6wSoSv-T4ZX4NJzqe9imsoZ5f3D36_1-v57pTieUIYRtaMrWuJBSO8MXnrQrhKahjeAGClGBZV_2d0L3OjH1juiqZcdN0oCfKUMv4VL53Zb6ovnj7vK2F-sYfJU/s72-c/zip-icon.gif" height="72" width="72"/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1125062745297868456.post-1356958604661196694</id><published>2008-07-27T21:15:00.000-07:00</published><updated>2008-07-28T10:35:17.465-07:00</updated><title type='text'>Text Message Notification</title><content type='html'>Nowadays email mailing lists are not nearly as popular&amp;nbsp;or hip as text message lists.&amp;nbsp; There are service providers&amp;nbsp;out there that charge you an arm and a leg for text messaging.&amp;nbsp; There are also free services like Twitter but it requires you join the twitter network.&amp;nbsp; I needed a quick an easy way to notify our technicans and managers of technology issues or outages.&amp;nbsp; I wrote this simple web application that allows you to send text messages based on subscribed categories. It is built in Dreamweaver using Classic ASP and runs on a Microsoft Access Database.&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;border-right: medium none; border-top: medium none; border-left: medium none; border-bottom: medium none;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjiUSYmONu5ORRbblTokUpecF1d3fgXELbe-dTcdqmW03Z8T-Hl1pZ9hcuOKmZ4-gb3bzvoXe9PHrHyQb_3v_r4k-2vfpIutATnl725jS3Ps6ulVgNDC5YKIBId5tzJgwCn9V7DfcEfjO8/s1600-h/zip-icon.gif&quot; imageanchor=&quot;1&quot; style=&quot;clear: left; border-right: 0px; border-top: 0px; float: left; margin-bottom: 1em; border-left: 0px; margin-right: 1em; border-bottom: 0px; background-color: transparent; cssfloat: left;&quot;&gt;&lt;img src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhH0nb7EL4pybC5nlKJCcjT5kMJvLn2tjNJV7gPvN1YsvogtDN1aeudMkd-84aQVMvqSMhx5WPzSsO8STPvFvRhPmB-SEOsxeLujQHhfAqxKaaZ8pb-Pqe7fwWgh50zGSVhCLflU-hpKi0/s320-r/zip-icon.gif&quot; style=&quot;border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px; cssfloat:  ;&quot; wc=&quot;true&quot; /&gt;&lt;/a&gt;&lt;a href=&quot;http://www.jazzerup.com/downloads/textnotify.zip&quot;&gt;Download Zip File&lt;/a&gt; &lt;/div&gt;&lt;br /&gt;
&lt;strong&gt;License:&lt;/strong&gt; Open Source (&lt;a href=&quot;http://www.gnu.org/&quot;&gt;GNU General Public License&lt;/a&gt;)&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;http://www.jazzerup.com/webapps/textnotify/default.asp&quot;&gt;Demo Site&lt;/a&gt;&lt;br /&gt;
username: &lt;a href=&quot;mailto:admin@admin.com&quot;&gt;admin@admin.com&lt;/a&gt;&lt;br /&gt;
password: password&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;Note:&lt;/strong&gt; This demo is intended to display the features and user interface. The ability to update the database has been removed.&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjUT_2WqlJsft9DFPZJEr72bGzA4OakeZOmlPCeEHqsOKc-IgUYcU6eLCwQnHD0p8PZtcijnJZi3V3AsHsQTHl6p4Ve0Hp6C753_Aqa6U-KPl-P8_epEjGu57GwZU9pOFF6ladfOZmHurY/s1600-h/TextAlerts.png&quot; imageanchor=&quot;1&quot; style=&quot;border-right: 0px; border-top: 0px; float: left; margin-left: 1em; border-left: 0px; margin-right: 1em; border-bottom: 0px; background-color: transparent;&quot;&gt;&lt;img src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi3kMgXqWE5GepkouT67KQQylRx2wFtFtydhz1rZu8wtYGE2D8wQ4xiNhZt4QIt4-Nrc4cZpJGJ8cgedoddcDLfn_f3MnvorJI5l3wNY70j4B0KQdgHOcurM4JECtFvtC4zt_yhwesP8Jk/s320-r/TextAlerts.png&quot; style=&quot;border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px; cssfloat:  ;&quot; wc=&quot;true&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;strong&gt;Installation:&lt;/strong&gt; On a windows server, unzip, upload, change permissions on the database to write and you&#39;re good to go.&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;Instructions:&lt;/strong&gt;&lt;br /&gt;
1) Set your Categories&lt;br /&gt;
&lt;em&gt;Categories are items that a user may want to be notifed about.&lt;/em&gt;&amp;nbsp; &lt;br /&gt;
&lt;div&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/div&gt;&lt;div&gt;Example:&lt;/div&gt;&lt;ul&gt;&lt;li&gt;&lt;strong&gt;&lt;em&gt;ITS&lt;/em&gt;&lt;/strong&gt; - You may want to set up your categories as different technology items (servers, phones, email, etc...)&lt;br /&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;em&gt;Clubs &amp;amp; Services&lt;/em&gt;&lt;/strong&gt; - You may want to set up your categories for different clubs and services services and notify&amp;nbsp;students or users&amp;nbsp;of upcoming events.&amp;nbsp; &lt;br /&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;em&gt;Emergency &lt;/em&gt;&lt;/strong&gt;- Categories can be different types of emergency notification.&amp;nbsp; However, given this is running off of an access database I wouldn&#39;t run it with more than 100 users.&lt;br /&gt;
&lt;/li&gt;
&lt;/ul&gt;2) Create Users&lt;br /&gt;
&lt;br /&gt;
3) Select which users should be notified about which categories.&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;How it Works:&amp;nbsp; &lt;/strong&gt;It&#39;s actually very simple.&amp;nbsp; It uses CDOSYS to send emails to the user&#39;s cell phone provider text message service.&amp;nbsp; &lt;br /&gt;
&lt;br /&gt;
Enjoy and &lt;a href=&quot;http://www.chipin.com/contribute/id/915764dce9d48d03&quot;&gt;donations&lt;/a&gt; to my college fund are welcome =)</content><link rel='replies' type='application/atom+xml' href='http://jazzerup.blogspot.com/feeds/1356958604661196694/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jazzerup.blogspot.com/2008/07/text-message-notification.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1125062745297868456/posts/default/1356958604661196694'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1125062745297868456/posts/default/1356958604661196694'/><link rel='alternate' type='text/html' href='http://jazzerup.blogspot.com/2008/07/text-message-notification.html' title='Text Message Notification'/><author><name>Jaz</name><uri>http://www.blogger.com/profile/00036866587380897292</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhH0nb7EL4pybC5nlKJCcjT5kMJvLn2tjNJV7gPvN1YsvogtDN1aeudMkd-84aQVMvqSMhx5WPzSsO8STPvFvRhPmB-SEOsxeLujQHhfAqxKaaZ8pb-Pqe7fwWgh50zGSVhCLflU-hpKi0/s72-c-r/zip-icon.gif" height="72" width="72"/><thr:total>1</thr:total></entry></feed>