Improve company productivity with a Business Account.Sign Up

x
  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 1352
  • Last Modified:

Automatically move weekend appointments to Monday or Friday

Is there a way to automatically move an Outlook appointment to either a Monday of Friday if the recurrence falls on a Sunday or Saturday respectively?

For instance, I have a meeting that is scheduled for the 20th of each month.  However, if the 20th is on a Saturday, we have the meeting on the preceding Friday and if it falls on a Sunday we have it on the following Monday.  I would like Outlook to follow this same logic.
0
shtaffa
Asked:
shtaffa
  • 4
  • 3
  • 2
2 Solutions
 
David LeeCommented:
Hi, shtaffa.

Outlook has no means of doing that using a recurring appointment.  You'd have to schedule the appointments individually.
0
 
Patrick MatthewsCommented:
Hello David,

I was thinking that perhaps there would be a VBA approach to test each recurrence for happening on a weekend,
and adjust the date accordingly.  Of course, I did not feel confident enough in my Outlook VBA skills to actually
attempt it...

:)

Regards,

Patrick
0
 
David LeeCommented:
Hi, Patrick.

Interesting idea.  Generate the appointments, then go through them all looking for ones falling on a weekend.  Adjust those that are.  That might work, but I see a couple of potential problems.  First, if the user ever edited the series, then I'm pretty sure Outlook would reset the appointments to the original day.  The user would have to run the script again to readjust them.  Second, Outlook doesn't generate all the items at once for an open-ended appointment.  It might be necessary to run the script periodically to adjust the dates.

All things considered I don't think a recurring appointment is the best approach.  I think a better approach is to use a script to simulate a recurring appointment.  Create an appointment, then run a script to make duplicates of that appointment at the desired interval.  The script would have the intelligence necessary to test the day the appointment falls on and adjust it accordingly.  A second script could propagate changes to the base appointment to its clones, and a third script could delete all occurrences of the appointment.  None of the scripts would be very complicated.  
0
The 14th Annual Expert Award Winners

The results are in! Meet the top members of our 2017 Expert Awards. Congratulations to all who qualified!

 
Patrick MatthewsCommented:
David,

On balance, I think you're right--create each instance independently (scripting that would be easy), and don't
try to do it on a recurring basis...

Regards,

Patrick
0
 
David LeeCommented:
shtaffa,

Do you want to give a scripted solution a shot?
0
 
shtaffaAuthor Commented:
It seems like that would be kind of a pain.  I was hoping for more of a "click on this, click on this and you're done, you idiot" type answer.
0
 
David LeeCommented:
Sorry, Outlook just isn't built for doing this.  
0
 
Patrick MatthewsCommented:
shtaffa,

Here's a start.  No doubt David can make it a bit better, but it's pretty easy to implement.

Regards,

Patrick
Sub MakeAppts()
    
    Dim meet As AppointmentItem
    Dim StDate As Date
    Dim EndDate As Date
    Dim UseDate As Date
        
    StDate = #10/20/2008 9:00:00 AM#
    EndDate = #1/20/2009 9:00:00 AM#
    UseDate = StDate
    
    Do While UseDate <= EndDate
        Set meet = CreateItem(olAppointmentItem)
        With meet
            Select Case Weekday(UseDate, vbMonday)
                Case 1 To 5: .Start = UseDate
                Case 6: .Start = UseDate - 1
                Case 7: .Start = UseDate + 1
            End Select
            .End = UseDate + TimeSerial(1, 0, 0)
            .Subject = "subject"
            With .Recipients
                .Add "x@y.com"
                .Add "y@z.com"
            End With
            .Save
            .Send
        End With
        UseDate = DateAdd("m", 1, UseDate)
    Loop
    
    MsgBox "Done"
    
End Sub

Open in new window

0
 
shtaffaAuthor Commented:
I have closed this issue and assigned the points to be split between you both.  Thanks for taking the time to think this through.
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

Join & Write a Comment

Featured Post

Free Tool: Subnet Calculator

The subnet calculator helps you design networks by taking an IP address and network mask and returning information such as network, broadcast address, and host range.

One of a set of tools we're offering as a way of saying thank you for being a part of the community.

  • 4
  • 3
  • 2
Tackle projects and never again get stuck behind a technical roadblock.
Join Now