Showing posts with label calendar tools. Show all posts
Showing posts with label calendar tools. Show all posts

Tuesday, September 10, 2019

MIT Media Lab investigation uses calendar info

I read MIT Will Investigate Media Lab's Ties to Jeffrey Epstein Following Director's Resignation as just another "yeah, people will do just about anything for money" article until I came to this part:

On Ito’s calendar, which typically listed the full names of participants in meetings, Epstein was identified only by his initials. Epstein’s direct contributions to the lab were recorded as anonymous.
(underlining mine)

THIS is really interesting!

If you want to know how to do stuff like this forensically (or even proactively) in Exchange or Office 365 let us know -- our wheels are already turning on this and a few other things.  

Tuesday, May 07, 2019

Office 365 and Your Work-Life Calendar Dichotomy

One of our spouses took a job that requires a lot of travel.  This exacerbated the already delicate? Tenuous? Intricate? Complicated? Spouse work-life schedule negotiation. Ironically, this is the same poorly-addressed issue that we’ve seen in enterprise calendaring since the 1990s.

Our real-world scenario: We use Exchange / Office 365 at work and need to coordinate home life / spouse / children / significant others in on various events.  You know what we’re talking about: airport drop-off/pick-ups, dentist appointments, visits, children performances, mother-in-law prescriptions, that kind of thing.

To date, we’ve found two options:
  • Sharing calendars.  This can be an entire calendar, or a partial calendar.
  • Forwarding / copying individual events or create a meeting and invite the spouse

Each option has pros and cons.   But none feel exactly right for the majority of situations we’ve encountered without a lot of pain on someone’s side.  

It’s too darned complicated and doesn’t work well in real life.

Roh-Roh George

The two options are, at best, half-baked partial solutions.  This is our efforts to work through our thinking, in the troll-defying pages of our calendar nerd blog, in hopes of soliciting your feedback, comment, diatribes, or even constructive ideas.  We have our own ideas as you’ll see near the conclusion.  We’re going to walk through the various ways we’ve tried to synchronize with the spouse:

  • Shared Calendars (Shared vs exports)
  • Meetings
  • Create a separate “Google Calendar” and share it
  • Forward/Copy
For example: We have a corporate person (let’s call her Judy) and her work-at-home husband (let’s call him Zyg) trying to navigate the work-life problem.

Share your entire calendar
Sharing / publishing one calendar is well-documented and akin to making someone a delegate. 

Although sharing/publishing one’s calendar is well documented, it depends upon if you are connected to Office 365 (or not).  Here are the choices: If you are an Office 365 user, right-click on the calendar and select share: 



If you the at-home outlook user, pick share from the “Home” tab in Outlook calendar:




But in a corporate environment sharing your calendar with someone Judy of the organization is never going to fly.  Security concerns alone keep knowledge workers like Judy from putting their work calendar on-line.  (We agree!) 

Zyg may be able to put his life online, and Judy can (usually? Sometimes?) subscribe to it.  But the downside is that she views that calendar as a separate entity.  She may need to copy events to her calendar.  Well and good, except then these events are copies which are NOT updated if Zyg makes changes.  

Still it’s better than nothing.

Where this works well is for public events that are informational with schedules published well in advance (rather than mission-critical or last-minute), e.g.:  sports schedules, concert tour dates, corporate training.  Note also that these events WANT to be widely-known as opposed to the security attached to corporate or private calendars.

When Zyg got an email announcing a videogame stream, he had the option of putting it into his calendar.  Rather than a single event, Gearbox Software subscribed him to an entire calendar.  
Marketing over-kill if ever there was, but it solved one of the key problems of this in the Outlook interface: the multi-step process of clicking on a link for an ICS and then having to save and import the ICS.

Share a part of your calendar

There is another option to publishing your entire calendar, sending a partial calendar.  Outlook makes this easy, visually pleasing, and security-conscious.  Who’d have thunk it?
Zyg gets something that looks like this from Judy as he tries to work out what’s available for date-night options or in-law visits.
  
But again, this is a one-off as opposed to a real-time shared “calendar” solution.  It also doesn’t say if she’s in town, or in Charlotte, Chattanooga, Charleston, or Columbus

Make it a meeting

Yes, if Judy needs coverage during a dental procedure, she can simply propose a meeting to Zyg.  It shows up in his calendar (regardless of the client or back-end he’s viewing it on) and it’s updated when Judy updates it.  But is this can be informational.  So why does it show up as Busy, blocking Zyg's availability? Or does Judy really need Zyg to pick her up from the dentist?  Still, a viable solution as long as it’s between small numbers of people for a specific purpose. (And Zyg can always change that meeting on his calendar to free…..)
  
But sometimes Judy’s workday extends into the evening.  It would be nice to let Zyg know she’s going to be late so the kids don’t die of hunger or dinner burned beyond recognition. For example, the quarterly shareholders call runs from 4 PM to 7 PM. Judy wants Zyg to know.  She cannot add him to the Attendee List.  Let’s face it, that’s weird and nobody on either end wants that.

Separate “Google Calendar” and shared Between Zyg and Judy

Yes, Judy can copy her key items to a Google calendar, and share it with Zyg.  But keeping that current is never going to happen, particularly if Judy doesn’t manage her schedule. Although it’s conceptually a good idea, it falls apart in reality.

Copying an event

Judy has three choices:

  1. She could forward Zyg a copy of the meeting (but again, he gets a guest list, which is weird and dangerous).
  2. She could create a new event to let Zyg know / email it.  Which is never going to happen unless her admin does it and that’s now straining the system. 
  3. She could text Zyg at 7:30 from the parking garage saying she’s going to be late for dinner. (This, of course, is the one typically does.)
Getting creative with Resource Designations

One of our teammates suggested Judy get really clever and add Zyg to the meeting as a resource.  This effectively bcc:'s Zyg to the calendar event .  This works only if: Judy is the organizer, and Judy’s Admin remembers to do it.   This had several benefits:

  • Zyg did NOT show up on the meeting list of attendees (!)
  • Zyg DID get updates to the meeting status
However,

  • Zyg really doesn’t need (or want!) to see the details
  • This breaks if there is no location (and Zyg shows up in the location!)  This could be an abuse of the system and would get Judy in trouble with corporate Security.
Then of course we discovered this is mentioned in a Microsoft article.

Consider this last situation

When you think about it this last situation solves a lot of the work-life calendar cross-over issue from the security-conscious enterprise and the starving spouse perspectives.  Judy gets to clue Zyg in where and when they need it, but it does not mess up the enterprise.

And, as though by magic, this situation was solved starting in the 1990s by some legacy calendar systems.  Dare we say it?  We dare.  Meeting Maker was one of them.

The solution is simple:  

bcc: and cc: for calendar items.

These have the advantage of allowing a corporate user to keep family members in the loops they need to be in, just as it does corporate users internally, without disrupting corporate security or adding new layers of security.

Note that these features are also incredibly useful internally.

What do you think?

As we said before, we're looking for feedback and comments.  

We'll tell you what we're thinking of doing to solve this in our next post.

Tuesday, February 27, 2018

Sometimes Low-Tech is the Best Tech -- even in calendaring

The New York Times recently did an article "In an Era of 'Smart' Things, Sometimes Dumb Stuff is Better."



You may be surprised that for some people who spend almost all their professional time in Microsoft Exchange and Outlook and breaking legacy calendaring systems (not that there are really any left for us to break), Zyg and Russ are calendar Luddites.

If you've seen us come into a customer site you may have been astounded that the calendaring guys pulled out paper organizers.

Zyg is big on his medium-form filofax and Russ still uses the Time/system book he was trained on at Lotus.

WHY? you are probably asking.

Really simple:  every server, client, and data set at Sumatra is fair game to become an immediate test system by any employee should the need arise.  And yes, it's happened to each of us and we're kind of happy when it does because it means we're shagging down issues making our latest generation of calendar migration tech better.

Now we still have our laptops with Outlook clients.  Truth be told I've tried every organizer / email client since Lotus Agenda.  I do not love Outlook (there is a lot to be unhappy about) but find Outlook just keeps evolving and no other client-based organizer can lay claim to that.

We also both have analog wristwatches.

Tuesday, November 21, 2017

SuPump when used on disabled accounts

We had an issue crop up in one of our favorite sites using the Sumatra Pump.

Calendar item insertion jobs were hanging and the error logs were showing things like this:

GetUserFromAD-ERROR: Failed while reading AD: (employeeId=F112ZHW); err: Object reference not set to an instance of an object.
GetUserFromAD-ERROR: Failed while reading AD: (employeeId=F112ZHY); err: Object reference not set to an instance of an object.
'ERROR: Failed while reading AD.(employeeId=F112ZHT)
ERROR: Failed while reading AD.(employeeId=33460A)

Simple to diagnose: The accounts causing the problem were DISABLED accounts.

To deal with it exclude the disabled accounts.
      Patient: "Doctor, it hurts when I do this."  
      Doctor: "Don't do that!"

WHAT (NOT) TO DO

An easy fix: add this criteria to exclude disabled accounts to the LDAP string in the _config.xml file:
(!userAccountControl:1.2.840.113556.1.4.803:=2)
Thus,  your LDAP4USER setting should look something like this  
LDAP://DC=YOUR_DC,DC=COMPANY,DC=COM;(&(mailNickName=*)(employeeID=*)(!userAccountControl:1.2.840.113556.1.4.803:=2))

What the heck do those strange numbers mean????

It’s a bitwise AND filter for the UAC.  

For more info on the UAC please see:


Sunday, March 05, 2017

Sumatra DBA: Double Booking Alert for Resources in Microsoft Exchange and Office 365

We started to get curious when what we thought was a dry, technical issue of double booked conference rooms became one of the most-read posts on our blog.  We DO pay attention to this stuff.

I refer of course to Double-Booked Meeting Rooms in Office 365 (and how to avoid them).

In the space-time-convenience continuum which is always a struggle with different views of how to optimize your Microsoft Exchange calendaring experience, Outlook and Exchange 2016 do a good job of warning you at booking time of future conflicts with resources and recurring meetings.

But 1.) time management is a very dynamic entity so conflicts creep in at awkward times and 2.) it's easy to procrastinate and then lose track of future conflicts.

The best summary of the problem was here:
We are not happy; our users are not happy.


This brought us down a path of looking at simple means to accomplish checking for double bookings and (more importantly!) to make fixing double bookings actionable on the part of end users! 

We found a serviceable script (from the author of the above quote) at Auditing Exchange Rooms for Double Bookings.

This has a few problems: it's very good at saying "yes there are double bookings in your resources, Mr. Administrator."   And then what the heck is supposed to happen?

We thought it best to let the Exchange Administrator do what they're good at (managing Exchange, installing and maintaining software, handling permissions) and to create a mechanism to get the information where it is most needed -- into the hands of he affected meeting organizers.

To this end we've created Sumatra DBA: Double Booking Alert.

Sumatra DBA: Double Booking Alert

We see the following advantages of our approach:
  • Installs and runs Server-side (no Outlook add-ins to distribute / manage)
  • Pro-active instead of reactive
  • No user training involved (notices come to the inbox of meeting organizers)
  • Admin configurable
  • Notifications configurable by site
Stay tuned for screenshots and examples.

Want in on early testing?  Contact us.

Friday, September 11, 2015

Converting a Meeting Maker server to a relational database

We had someone ask us "Can you guys convert a Meeting Maker server to a relational database?"

Short answer is: Yes - that's how our migration process has always worked.  Raw Meeting Maker data exists in an object-oriented database format that I have described as a cross between a PhD thesis and a junior high school science project. 

Even though we formally ended our MM to Exchange migrations we've been contacted by some Friends of Sumatra who've been through migrations with us before so we've kept our conversion software running.

Time frame: depending on how much history you have and how many users are on your Meeting Maker server we can convert your data into an Microsoft Access database in (at the most) an afternoon.  Usually it's only a few hours but breaking out and spinning up the conversion server is the real hassle.

This converted database alone is insufficient to run a full migration into Exchange.  Do not allow that idea to entertain your mind.

The converted database is completely appropriate for converting / archiving Meeting Maker servers into a standard database format so that you can do searches for legal compliance, history, investigations, or whatever your data-driven needs require.

Thursday, August 06, 2015

Windows 10 and Calendar / Contact Privacy

For those of you who have upgraded to Windows 10 (and if you had Windows 8 this was a no-brainer), you HAVE to read:  Windows 10 is spying on almost everything you do – here’s how to opt out and Windows 10 defaults to keylogging, harvesting browser history, purchases, and covert listening and Digging into and Understanding Windows 10’s Privacy Settings

The most sober reading I've seen comes from Lifehacker.

Now since we're calendar geeks, we're going to show you how to keep your calendar and contacts private, which should be the default in the first place, but is not.

You do not have many choices in your Calendar.  If you want to use Cortona to set your appointments, it needs to check your calendar.  If you are worried Cortona is a nosy rhymes-with-witch who is ratting you out at every opportunity, then turn this off.



You have more choices in your Contacts -- but what "App connector" and "Windows Shell Experience" are is 1.) unclear 2.) why these are options for contacts but not calendar and 3.) WTF?  Microsoft support ducks the question not only about what they are but why they need specific access.


Short answer: beats the heck out of me -- but I dialed my privacy settings to the max.

My main previously unanswered question:  I'm happy with Windows 7 on my desktop.  How do I get rid of the Microsoft annoyanceware in my lower left hand corner?

Simple.

Click that nearly invisible "Up" triangle:

Then select: GWX "Hide icon and notifications"
Yeah!  I get to keep Windows 7!!!!!  And NOT be badgered about it!!!!!!

Our conversion server for Meeting Maker to Exchange still runs Windows XP.  I needed to take the darned thing off the network to make sure Microsoft / Java / Whoever didn't "improve" it by making it unusable with an automatic update.

Wednesday, January 21, 2015

Inserting SQL data into Microsoft Exchange

When we say SQL data being inserted into Microsoft Exchange or Office 365, it's through our soda straw view of the world: calendar items, contacts, and tasks.

You can of course write one-off code in Exchange Web Services to accomplish a specific task – but why reinvent the wheel?  Sumatra has been  inserting calendar, contact, and task items into Exchange from legacy systems for the last fourteen years.  We’ve created a tool-set that allows you to read data from your SQL databases and insert them into Exchange. 

Most of our users of this feature are using Oracle as the SQL of choice, but there's nothing specific to that vendor.



We call this the Sumatra Calendar Pump or just the "Pump" if you hear us referring to it in casual conversation.


Tuesday, December 30, 2014

A few miscellaneous useful links and articles to close out the year

Closing out 2014 with a few Exchange / Outlook related tips.

Really good info in Ways to Avoid Email Tracking.

This includes my favorite advice: Don't even click the UNSUBSCRIBE link.

What these guys are looking for is any kind of response.  You play into their hands by clicking anything.  Best to ignore them.

also -- 

The Best Command Line Replacements for Bloated Desktop Apps gives you some really good tools that are compact and functional.  That we use the exact same philosophy on our calendar migration tools is one of the attractions of this article to me.

and finally --

Adding Sun, Moon, and Stars to Google Calendar.  

Thursday, January 16, 2014

Useful Guided Walkthroughs for Calendaring in Office 365

Since one of our most popular posts ever is Shared Calendars in Exchange 2007 sp1, largely to show folks how to create shared calendars, I'm really happy that Microsoft is finally doing its own tutorials on some things that are just darned hard in Exchange.  Well, in this case Office 365.

Check out the new Guided Walkthroughs Microsoft has put up.

Of special interest to those followers of our blog are:


and

Of course the other walkthroughs on email and mailbox access will be useful to you as well.

Monday, January 13, 2014

MDaemon Calendar Migration to Exchange

We got a wild request for migrating calendar data from MDaemon to Exchange and, seeing as how we're always looking for both an interesting challenge and a profitable business extension we brought up a server and created our traditional users and conference rooms.


Short answer: oh yeah, we can migrate the calendar, tasks, and contacts into Exchange. There are a few obvious issues and some amount of work to be done but there is no doubt about it.

Now the hard part: Is there anyone else out there who wants this?  

We're not sure that this is used outside of small and medium businesses, and they are not our traditional client base.







Tuesday, December 17, 2013

Open Source Server-Side Lite Holiday cmdlet for Exchange

Holidays in Exchange.

The words send shivers down my spine.

We got our first request for a tool to insert holidays server-side after we did a migration for the folks at HMS (shout out to you guys!) for Exchange 2003.  That was CDO-based tech, with its positives and negatives.

After Exchange 2007 came out we re-wrote the tool for Exchange Web Services  (EWS), added a variety of features and found that folks really wanted it, but not at enterprise licensing levels.  Go figure.

But it's a good way of showing what we can do with calendars in migrations, so we've produced an open-sourced lite version of a holiday cmdlet.

Sample code where we build the holiday looks like this:


So you can find the CodePlex project at sumatra.codeplex.com.

We've also hard-coded a few things (like, it's picking up your credentials to authenticate against Exchange, so you ARE the service account!).





We think of this more as a mini-tutorial on how to do a calendar-centric cmdlet.

Why a lite version and not the full thing?

Mainly because the full version has a lot of expertise behind it that we're reticent to just give to those of you toiling out there on software knock-offs.  

Where from here?

We are market-driven.  We're keeping an eye on what we hear back.

Tuesday, July 16, 2013

How does your enterprise spend its time?

Linkedin blogs contain interesting thought pieces.  Three recent posts caught my attention – they talk about how to cut down/eliminate unnecessary meetings:

Jeff Weiner (CEO LinkedIn) notes his managers complain about managing their inbox and their meeting schedules in his post: A Simple Rule to Eliminate Useless Meetings, and The Importance of Scheduling Nothing.

Rajat Taneja (CTO, Electronic Arts) wants to Cut Down on Unnecessary Meetings.

I found Rajat Taneja's post most interesting.  He talks about understanding "how we spend our time," and then he tracked how he spent his time.  We think the act of measurement is a critical component that will drive the CEO to force the organization to change the meeting behavior.

Both of these are geared towards the meeting organizer, that is, changing individual behavior.  But both of these being high level executives, the more interesting question they do NOT pose is: can we get a handle on how the enterprise is spending its time?  Are we being efficient or not?  And can we read this out of Microsoft Exchange?


Having been looking at scheduling metrics off and on over the years we've been trying to figure out how to interrogate the Exchange server to derive useful metrics on this for analysis on the organization / enterprise level.

It's easy to use server-side tools to get a handle and do reports on how much email traffic is generated and disk space is in use.  Email analysis has relatively little dependence or significance on job title or function.

But calendars are precisely the opposite!

As a Tech CEO you usually want your engineering staff working on engineering problems and not in any more meetings than they need to be.  But your sales people need to be meeting with clients or they're not doing their job.  In between there's a wide gulf as much dependent on individual corporate culture and goals as on anything taught in a management course at Business School.
We took a cut at that measurement, in our recent Oracle Beehive migration tool.  See "The Oracle Beehive Calendar Metrics" post for a screen shot of the metrics.  Those of you who have been through migrations with us have seen similar reports on your legacy data.
We've learned over years of analyzing data that the top ten meeting users is sometimes a surprising revelation to corporate management -- usually when they find that one of their top users is a conference room.

And this actually is where we made what we think of as our first big break through: that the inanimate objects in the corporation have a lot more importance than you would first think.  

In fact -- since the only major issue with them is "how much are they in use?" it's relatively straight-forward to do reporting on them and we've already sliced that a few different ways for people.

We'll show sample reports in a follow-on post.

Friday, July 05, 2013

More #Oracle Beehive Calendar Metrics

Our latest version of the Beehive to Exchange / Office 365 migration code includes more table of metrics of Beehive calendars.  I show some of the additional stats we generate here using only two users in our test server so it's easier to take in.





Tuesday, June 18, 2013

#Oracle Beehive Calendar Metrics

We just cannot leave well enough alone so we started analyzing Oracle Beehive data (live, of course) to produce summary reports such as you see below in HTML.  We've been doing it for years for Meeting Maker and OCS but Beehive is relatively new in our demand-space.


If you want to try this in your environment contact us info AT sumatra DOTCOM and please tell us how you will give us helpful feedback.

Tuesday, January 08, 2013

Retiring Meeting Maker Migrations December 20, 2013

Folks, it has been a great evening out but now the bartender is calling for last orders.

As of December 20, 2013 we will no longer be doing Meeting Maker migrations.  We of course continue to do both full state and faster-simpler migrations from Oracle Calendar to Exchange, and faster-simpler migrations from Zimbra to Exchange.  Our Holiday cmdlet continues to thrive and our custom calendar engineering is unparalleled.

To those of you who have been asking us about migrating in the last few years: we'd recommend starting your test cycles sooner rather than later.

We're sympathetic to your budget cycles, so if you need to discuss timing we're open to that.  But we do need to put a stake in the ground so we can all move on.

Wednesday, January 02, 2013

Turn on calendar publishing so people can share information

In general we don't just re-publish other links, but this one is so useful I feel the need.

How do you make your calendar available on Office 365 to users external to your organization?

Check out this article: Turn on calendar publishing so people can share information

A darned useful ability if you use it well.

Monday, May 10, 2010

Managing Automatic Meeting Responses in Outlook 2010

An Oracle Calendar System migration client called because his end users were complaining ..... "Now that we have migrated how can we disable those irritating meeting invitations and responses?"

Keep in mind -- this is not about the migration process. This is about what happens when Oracle Calendar users transition from OCS to Exchange,

I'm not sure anyone has an answer for complaining end users, but I did come across a blog posting from Microsoft's Outlook team that talks about how to deal with meeting responses in Outlook 2010. (you know, the "I accept", "I decline" messages.....). The post describes how to create a rule to deal with those responses:

  1. Keep meeting declines;
  2. Keep all responses if they have a comment;
  3. Otherwise, move tentative and accept messages into a sub folder (and out of the inbox!)

Read the blog post here!

The net result is that Exchange and Outlook will look more like what an OCS user community has been conditioned to expect over the years.

Wednesday, May 05, 2010

"Add2Calendar" an IE8 - Web Accelerator

I receive one or two emails every day inviting me to attend some work, hobby, school, or sporting event. Many of these events, however, do not offer the "add this event to your Outlook calendar" functionality. If I want to add these events to my calendar, I have to do so manually - "cut and paste" the event details into a new Outlook appointment. Ok, it's not hard, it's tedious. It caused me to automate the process, via an Internet Explorer 8 "Web Accelerator".

I first learned about accelerators in an MSDN "Roadshow" put on by two Microsoft Developer Evangelists (Chris Bowen and Jim O'Neil.) They said it was simple to create one... I didn't believe them. I thought it was going to take several days to get started. It didn't. It was as simple as they said!

My accelerator parses highlighted text from the web browser, and return a calendar invitation "on-the-fly" that Outlook easily interprets. There are several ways of adding appointments to Outlook -- I chose iCalendar, since Outlook supports this open standard calendaring format.

What will the user see?

Here is an example of the accelerator in use. I received an email telling me about an upcoming Cambridge Science Festival event. The email directed me to "Boston.com" where I read the event details. I highlighted the event name and time, and right-hand clicked to launch the accelerator:



Here is what appeared in my calendar:



Voila! You can see Add2Calendar captured the event name, date and time, the event summary in the notes area, plus the URL of the event.
For the more technically inclined
This accelerator requires two components:
  1. An XML file to define how the browser communicates with that service, and
  2. A "URL-based service"
The process to create the XML file is well documented in MSDN. Here is the XML that defines how the browser communicates with the service:

<?xml version="1.0" encoding="UTF-8"?>
<os:openServiceDescription
xmlns:os="http://www.microsoft.com/schemas/openservicedescription/1.0">
<os:homepageUrl>http://www.sumatra.com</os:homepageUrl>
<os:display>
<os:name>Add appointment with Sumatra's Add2Calendar</os:name>
<os:icon>http://www.sumatra.com/images/favicon.ico</os:icon>
<os:description>
Highlight something on a web page and add the item into your calendar
</os:description>
</os:display>
<os:activity category="Appointment">
<os:activityAction context="selection">
<os:execute method="post"
action="http://www.sumatra.com/add2calendar/">
<os:parameter name="sel" value="{selection}" type="text" />
<os:parameter name="docURL" value="{documentUrl}" type="text" />
</os:execute>
</os:activityAction>
</os:activity>
</os:openServiceDescription>


I created my URL-service using PHP. The accelerator passes two parameters back to the PHP code ($sel and $DocURL). If those variables are not null, the PHP code can determine if it should show the "add the accelerator to your browser" page, or parse the selection string and return an iCalendar file.

The PHP code creates a form with a button to add the accelerator to the browser. There is also javascript to check if the accelerator exists:

<script language=\"JavaScript\">
window.onload = function()
{
if (window.external.IsServiceInstalled ('http://www.sumatra.com/add2calendar/add2calendar.xml','Appointment'))
{
document.getElementById('btnAdd2Calendar').disabled = true;
alert("Sumatra Add2Calendar accelerator is already installed!");
}
}
</script>
<BODY>
<h1>Welcome to Sumatra's Add2Calendar Web Accelerator.</h1gt;<br>
<h2>Overview:</h2><p>Not all web sites have an "add this event to your calendar" button....
<br><br><br><Please click the button to add the accelerator to your browser.<br>
<button id="btnAdd2Calendar" onclick="window.external.AddService('http://www.sumatra.com/add2calendar/add2calendar.xml')">Install Sumatra's Add2Calendar Accelerator</button>
<p>Copyright © 2000-2010 Sumatra Development LLC. All rights reserved.<br>


Hopefully this gets you started!

The accelerator doesn't parse everything, yet. It's work in progress. If you use the accelerator, and you have comments (and issues, too!), please post or email us: info AT sumatra DOT com