Moving from Microsoft Office VBA to AppleScript:
MacTech's Guide to Making the Transition
Introduction
|
Table of Contents
Page Prev and Page Next buttons at bottom of the page.
|
April, 2007
Page 133
end tell
Essential: if you have an Exchange account, you need to read about multiple address books and calendars in the Make a New Contact and Open Existing Contact sections earlier in this chapter. Everything written there about address books and contacts applies equally to calendars and events.
Create Task from Event (Make New Task)
Note: In Entourage 2004, including v11.2 and later, tasks and notes are only local, not on Exchange servers. But that might well change for Office 2008.
If you've followed along with making a new message, contact, and event, you know how to do it now, so I won't bother with a plain "Make New Task". This script includes making a new task, and discusses the main difference between task and event, namely the different types of reminders they have.
The Entourage menu comes with three scripts provided by Microsoft: Create Event from Message, Create Note from Message, and Create Task from Message. Often it would be handy to Create Task from Event, especially if someone sends you an .ics file from another application that can be imported into Entourage but appears as a calendar event with a fixed time (probably midnight!) when you'd actually prefer to have it as a task.
This script will do it. It is fully commented within rather than at the end this time, except for explanations of the calculation for recurring events and tasks and some unusual and undocumented features. which follow at the end:
tell application "Microsoft Entourage"
try
(*get the currently selected event(s)
(in calendar or custom view) *)
set theEvents to (get selection)
if theEvents = {} or class of (item 1 of theEvents) ¬
is not event then error number -128
on error
(*if there are no events selected, or the first item selected
is not a calendar event, warn the user and then quit*)
beep 2
display dialog "First select an event in the calendar or " & ¬
"a custom view. Then try again" buttons {"Cancel"} ¬
default button 1 with icon 0
end try
repeat with theEvent in theEvents
repeat 1 times
(* if any subsequent item (in a custom view) selected is
not a calendar event, warn the user and then quit *)
if class of theEvent is not event then exit repeat
(* get the information from the event,
and store it in variables*)
set {theTitle, theLocation, theStartTime, hasReminder, ¬
theReminder, ifRecurring, theRecurrence, theCategories, ¬
theProjects, theNotes, theLinks} to theEvent's {subject, ¬
< Previous Page Next Page>
- SPREAD THE WORD:
- Slashdot
- Digg
- Del.icio.us
- Newsvine