|
|
Hi everyone,
I'm interested in creating a calendar that you would click on in Outlook (it would be in the Public Folders), and then you'd see a calendar that shows the "Out of Office" status for everyone in the office. Is there a way to do this? Ideally I'd use the built-in calendar widget to do this, but I can't find a way to get a calendar to include information from other calendars.
If there's another group that might know about this, please let me know that as well.
:-) - Sean
|
|
You could read the Free/Busy status of everyone and create appointments based on their status, with the subjects the people's names.
-- Ken Slovak [MVP - Outlook] http://www.slovaktech.com Author: Absolute Beginner's Guide to Microsoft Office Outlook 2003 Reminder Manager, Extended Reminders, Attachment Options http://www.slovaktech.com/products.htm
<sean.gilbertson[ at ]gmail.com> wrote in message news:1146239351.459949.114730[ at ]e56g2000cwe.googlegroups.com...
[Quoted Text] > Hi everyone, > > I'm interested in creating a calendar that you would click on in > Outlook (it would be in the Public Folders), and then you'd see a > calendar that shows the "Out of Office" status for everyone in the > office. Is there a way to do this? Ideally I'd use the built-in > calendar widget to do this, but I can't find a way to get a calendar to > include information from other calendars. > > If there's another group that might know about this, please let me know > that as well. > > :-) > - Sean >
|
|
Hmm.. maybe this would work. How would I do this? Dynamically on a user's computer, as they open up the calendar? If so, how would I do this? Is there an event fired when a calendar is open, that can run local code? Is that a lot of information to grab (the free/busy information for 110+ people for a given day)? I can say that most days the number of Out-of-Office people per day will be at least 20-30 people.
|
|
Is there an Exchange Server event for when people access a calendar? I'm thinking that it would be good to return the data I want to return, from here. Can I do that?
|
|
Please retain part of the preceding thread in your posts, it makes it very hard to follow when you don't.
One machine running the code would poll for the free/busy status of each person in the GAL. Once the data was retrieved and parsed and put into that public calendar folder as appointments for that user (with their name as the subject) the updated folder and its data would be available to every user who looked at that folder. No need to get more complicated than that.
GetFreeBusy is a method of the AddressEntry object. Iterating each AddressEntry in the AddressEntries collection of the "Global Address List" AddressList object would return the AddressEntry and calling that method would return the free/busy data.
See the Object Browser help for more information on that method and http://support.microsoft.com/?kbid=294554 for a little sample code.
-- Ken Slovak [MVP - Outlook] http://www.slovaktech.com Author: Absolute Beginner's Guide to Microsoft Office Outlook 2003 Reminder Manager, Extended Reminders, Attachment Options http://www.slovaktech.com/products.htm
<sean.gilbertson[ at ]gmail.com> wrote in message news:1146492338.619780.49620[ at ]e56g2000cwe.googlegroups.com...
[Quoted Text] > Hmm.. maybe this would work. How would I do this? Dynamically on a > user's computer, as they open up the calendar? If so, how would I do > this? Is there an event fired when a calendar is open, that can run > local code? Is that a lot of information to grab (the free/busy > information for 110+ people for a given day)? I can say that most days > the number of Out-of-Office people per day will be at least 20-30 > people. >
|
|
Ken,
It looks like by default, my replies should have the replied-to-post quoted at the bottom of the message. It is now, anyway.
Anyway, back to business.
What you describe sounds pretty good. I have some follow-up questions: - Would this run on the Exchange server? Would it be a scheduled task, or something in the Exchange event sink, or something? - I'm glad to hear that I can iterate over the Global Address List. I didn't know how to do that and was despairing a little that I might not be able to. - Is there a way to do this via a request to the Exchange server for XML? I have a book that has an example of how to get Free/Busy information, but that is per user. I need calendar information, and the ability to add calendar items.
If you could paste me a link to a tutorial on getting this type of code up and running, please let me know.
- Sean
Ken Slovak - [MVP - Outlook] wrote:
[Quoted Text] > Please retain part of the preceding thread in your posts, it makes it very > hard to follow when you don't. > > One machine running the code would poll for the free/busy status of each > person in the GAL. Once the data was retrieved and parsed and put into that > public calendar folder as appointments for that user (with their name as the > subject) the updated folder and its data would be available to every user > who looked at that folder. No need to get more complicated than that. > > GetFreeBusy is a method of the AddressEntry object. Iterating each > AddressEntry in the AddressEntries collection of the "Global Address List" > AddressList object would return the AddressEntry and calling that method > would return the free/busy data. > > See the Object Browser help for more information on that method and > http://support.microsoft.com/?kbid=294554 for a little sample code. > > -- > Ken Slovak > [MVP - Outlook] > http://www.slovaktech.com> Author: Absolute Beginner's Guide to Microsoft Office Outlook 2003 > Reminder Manager, Extended Reminders, Attachment Options > http://www.slovaktech.com/products.htm> > > <sean.gilbertson[ at ]gmail.com> wrote in message > news:1146492338.619780.49620[ at ]e56g2000cwe.googlegroups.com... > > Hmm.. maybe this would work. How would I do this? Dynamically on a > > user's computer, as they open up the calendar? If so, how would I do > > this? Is there an event fired when a calendar is open, that can run > > local code? Is that a lot of information to grab (the free/busy > > information for 110+ people for a given day)? I can say that most days > > the number of Out-of-Office people per day will be at least 20-30 > > people. > >
|
|
1. Running on the client. Most Exchange admins don't like code running on the server because any problem could hang or crash the Exchange server. One Outlook client can run the code and once the public folder is updated with the free/busy information all clients can see it, including OWA clients that might look at that folder.
2. Set oAL = oOL.AddressLists("Global Address List") Set colAE = oAL.AddressEntries For each oAE In colAE 'now you have a member of the GAL as an AddressEntry object Next
3. No XML involved. Just get the information for each user (GAL member) and create or update appointments for each user based on the free/busy information. A calendar folder needs individual appointments to create it's view, so why complicate things with XML?
The code sample link I posted should get you started.
-- Ken Slovak [MVP - Outlook] http://www.slovaktech.com Author: Absolute Beginner's Guide to Microsoft Office Outlook 2003 Reminder Manager, Extended Reminders, Attachment Options http://www.slovaktech.com/products.htm
<sean.gilbertson[ at ]gmail.com> wrote in message news:1146595698.242493.174430[ at ]v46g2000cwv.googlegroups.com...
[Quoted Text] > Ken, > > It looks like by default, my replies should have the replied-to-post > quoted at the bottom of the message. It is now, anyway. > > Anyway, back to business. > > What you describe sounds pretty good. I have some follow-up questions: > - Would this run on the Exchange server? Would it be a scheduled task, > or something in the Exchange event sink, or something? > - I'm glad to hear that I can iterate over the Global Address List. I > didn't know how to do that and was despairing a little that I might not > be able to. > - Is there a way to do this via a request to the Exchange server for > XML? I have a book that has an example of how to get Free/Busy > information, but that is per user. I need calendar information, and > the ability to add calendar items. > > If you could paste me a link to a tutorial on getting this type of code > up and running, please let me know. > > - Sean
|
|
I need a program that will run server-side. Can I do this with CDO, or is there another method? Please let me know the best way to do this server-side.
The reason I ask about doing this through XML requests is that, if I can, I can write the program in whatever I want, which is what I'd prefer. I can also put the program anywhere, and communicate with the server. If you know of a way to do what I'm asking for in an XML conversation, please let me know.
- Sean
|
|
And it looks like Exchange doesn't return current Free/Busy information. I scheduled some Out-of-Office time, and it took a while for the Exchange server to realize it was there, and return correct Free/Busy information. I have actually read that this is the case, too.
What is the delay between refreshes of Free/Busy data? Can it be adjusted?
Is there a way to look at calendar data on my own? How?
- Sean
|
|
You can use any server side language you want. CDO 1.21 would do it. Just don't use the Outlook object model running server side.
You get the data from CDO server side just as you would for Outlook, you just have to have a logon that has permissions to log into every mailbox and then do so in turn, getting the information from each in turn.
If this is going to be a server side coding project you'd best post questions about it in one of the Exchange programming groups, not here. Same thing for your setups for free/busy refresh intervals, that's an Exchange admin problem not Outlook.
-- Ken Slovak [MVP - Outlook] http://www.slovaktech.com Author: Absolute Beginner's Guide to Microsoft Office Outlook 2003 Reminder Manager, Extended Reminders, Attachment Options http://www.slovaktech.com/products.htm
<sean.gilbertson[ at ]gmail.com> wrote in message news:1146692880.126483.224530[ at ]i40g2000cwc.googlegroups.com...
[Quoted Text] > And it looks like Exchange doesn't return current Free/Busy > information. I scheduled some Out-of-Office time, and it took a while > for the Exchange server to realize it was there, and return correct > Free/Busy information. I have actually read that this is the case, > too. > > What is the delay between refreshes of Free/Busy data? Can it be > adjusted? > > Is there a way to look at calendar data on my own? How? > > - Sean >
|
|
Actually, I was just thinking: Could I add a hook in creating/editing/deleting calendar items? Like, when a user creates something in their calendar, I could check to see if I'm interested, and add it to a calendar in a public folder.
Let me know if that can be done. From what I've seen so far, adding things to public calendars is not supported in CDO. So let me know if there is any way to do this -- in Outlook, or in talking to Exchange, or something else.
- Sean
|
|
Yes, that can be done, but it's not quite that simple, because you'd also want to handle updates to the original items. Tom Howe's Enterprise Calendar sample from http://www.slipstick.com/calendar/scheduleall.htm shows one approach.
-- Sue Mosher, Outlook MVP Author of Configuring Microsoft Outlook 2003 http://www.turtleflock.com/olconfig/index.htm and Microsoft Outlook Programming - Jumpstart for Administrators, Power Users, and Developers http://www.outlookcode.com/jumpstart.aspx <sean.gilbertson[ at ]gmail.com> wrote in message news:1146836578.464222.304050[ at ]y43g2000cwc.googlegroups.com...
[Quoted Text] > Actually, I was just thinking: Could I add a hook in > creating/editing/deleting calendar items? Like, when a user creates > something in their calendar, I could check to see if I'm interested, > and add it to a calendar in a public folder. > > Let me know if that can be done. From what I've seen so far, adding > things to public calendars is not supported in CDO. So let me know if > there is any way to do this -- in Outlook, or in talking to Exchange, > or something else. > > - Sean >
|
|
Okay, I'll take a look. It's good to know that there are ways to do this.
I may end up doing this through the web. Is there a way to iterate through users' calendars and gather information (e.g. Subject, Type, Start Time, and End Time)? I don't care if this is slow or fast.
- Sean
|
|
Yes, the Namespace.GetSharedDefaultFolder method can return other calendar folders for which you have permission. They can also be accessed with CDO 1.21.
-- Sue Mosher, Outlook MVP Author of Configuring Microsoft Outlook 2003 http://www.turtleflock.com/olconfig/index.htm and Microsoft Outlook Programming - Jumpstart for Administrators, Power Users, and Developers http://www.outlookcode.com/jumpstart.aspx <sean.gilbertson[ at ]gmail.com> wrote in message news:1146838552.903950.54020[ at ]j33g2000cwa.googlegroups.com...
[Quoted Text] > Okay, I'll take a look. It's good to know that there are ways to do > this. > > I may end up doing this through the web. Is there a way to iterate > through users' calendars and gather information (e.g. Subject, Type, > Start Time, and End Time)? I don't care if this is slow or fast. > > - Sean >
|
|
|