• Outlook User
  • New Outlook app
  • Outlook.com
  • Outlook Mac
  • Outlook & iCloud
  • Developer
  • Microsoft 365 Admin
    • Common Problems
    • Microsoft 365
    • Outlook BCM
    • Utilities & Addins

Tips for Customizing Outlook Appointment Forms

Slipstick Systems

› Developer › Tips for Customizing Outlook Appointment Forms

Last reviewed on May 26, 2017     48 Comments

There are a few issues you need to be aware of when customizing an Outlook Appointment or Meeting form.

To open a form in Forms Designer in Outlook 2010 and Outlook 2013, you need to show the Developer ribbon.
appointment-form-deisgn-mode

Open a new form and click Design this Form or select a form from all forms by clicking Design a Form. When a form is in design mode, it will look similar to the screenshot to the right.

Need help designing a custom form? See Designing Custom Outlook Forms and Publishing Custom Forms in Outlook.

Issues when designing Appointment or Meeting forms

The first page of the Appointment form is not customizable. If you want to customize appointment form, you can hide the front page and design a custom page that looks like the first page.

Adding a control to a page (tab) will display that page by default. To rename or hide a page, check the options on the Page button.

Doing this leads to the next issues:

Outlook does not include a date and time picker. Outlook 2007 introduced date and time pickers for use with form regions. However, these are not designed for use on legacy forms. Using the new controls on legacy forms may cause form corruption and the loss of code behind the form.

After you publish an appointment form, when you open a new item with that form (other than by double-clicking in a Calendar folder's Day/Week/Month view), the Start date may default to the date you published the form. The form will also have a reminder set if the user's default option is to use a reminder. To avoid this problem you need to use code in the form that turns off the reminder and causes it to default to the current date.

Function Item_Open() 
  If Item.Size = 0 Then 
   Item.Start = Now() 
   Item.ReminderSet = False 
  End If 
End Function

You cannot use your own values in the Location drop-down list on the first page of an appointment form. Outlook maintains this list as a registry entry. See To clear the Location drop-down list on Outlook appointments

Ideas for custom Appointment or Meeting forms

Now that you know what to watch out for, there are a couple of useful uses for custom appointment forms:

Create one or more custom meeting form with the resources selected. If you always invite specific users to all meetings, add them to the form as well.

 

Set a field in every new appointment

When you open a new appointment form you can set a default value for any field using the Item_Open function in a script.

I'll demonstrate how to do this using a default setting that annoys a lot of people: Outlook's 30 minute duration when creating a new appointment.

Outlook's default duration is 30 minutes when you click the New Items button. To use a different duration you need use the day or week view with the desired scale then click in a time period. Or you can use VBScript in a custom form.

This simple script will set the default duration to 15 minutes when you click New Meeting or New Appointment command.

The basic steps to create a custom form are below. I have more information, including screenshots, at Designing Custom Outlook Forms and at Publishing Custom Forms in Outlook.

  1. If the Developer ribbon is not visible, go to File, Options, Customize Ribbon and add a check next to Developer.
  2. Click New Appointment.
  3. Switch to the Developer ribbon and click Design This Form button.
  4. Click View Code button.
  5. Paste the Item_Open function into the Script Editor.
    Function Item_Open()
      If Item.Size = 0 Then
       Item.duration = 15
       End If
    End Function
    
  6. Test it by clicking Run this form on the Developer ribbon.
  7. Return to the forms designer and click Publish, Publish form as.
  8. Type a name for your form and click Publish.
  9. Set the form to be the default calendar form.

When you use Exchange server mailboxes, you can easily share the form with coworkers if it's published to the Organizational Forms Library. See Create an Organizational Forms Library for more information.

More Information

Use one Start and End time for all Outlook Appointments

Tips for Customizing Outlook Appointment Forms was last modified: May 26th, 2017 by Diane Poremsky

Related Posts:

  • Use one Start and End time for all Outlook Appointments
  • How to Insert the Date and Time into an Outlook Item
  • Designing Custom Outlook Forms
  • Created date in table view
    Display the Created Date field of any Outlook item

About Diane Poremsky

A Microsoft Outlook Most Valuable Professional (MVP) since 1999, Diane is the author of several books, including Outlook 2013 Absolute Beginners Book. She also created video training CDs and online training classes for Microsoft Outlook. You can find her helping people online in Outlook Forums as well as in the Microsoft Answers and TechNet forums.

Subscribe
Notify of
48 Comments
newest
oldest most voted
Inline Feedbacks
View all comments

Jason Tisdall (@guest_212219)
November 6, 2018 12:59 pm
#212219

Hi Diane
I have been searching for a particular Outlook Macro use case and haven't quite seen waht I need. I wonder if you can help me.
The end result is that I would like to create a number of buttons on my Quick Access Toolbar in Outlook that will create appointments with various properties pre-set. For example I would like to be able to click on a time in outlook and then hit a button to do:

button1 - creates a 15 min appt marked as free time, and with a particular category set and with alarm set to 0 mins. It opens the appointment ready for me to write in the subject.
button2 - creates a 30 min appt marked private and with a category set.
etc.

What I am trying to do is set various standard use cases up with minimum keystrokes.

Is this possible? Can you point me in the right direction to start digging?
I can write a bit of VBA.
many thanks in advance
Jason

0
0
Reply
Diane Poremsky(@diane-poremsky)
Author
Reply to  Jason Tisdall
November 10, 2018 12:46 am
#212236

Of course it is possible. Repeat the Type1 macro (with a new name of course) for each button.

Dim dStart As Date
Dim strSubject As String
Dim strCategory As String
Dim strFreeBusy
Dim lDuration As Long
Dim lReminder As Long

Sub Type1Appt()
    dStart = Format(Date + 3, "mm/dd/yyyy") & " 8:30:00 AM"
    strSubject = "Test 1"
    strCategory = "Type1"
    strFreeBusy = olBusy
    lDuration = 20
    lReminder = 25
CreateNewAppt
End Sub

Public Sub CreateNewAppt()
Dim objAppt As AppointmentItem

Set objAppt = Application.CreateItem(olAppointmentItem)

 With objAppt
  .Subject = strSubject
  .Categories = strCategory
  .Start = dStart
  .duration = lDuration
  .BusyStatus = strFreeBusy
  .ReminderMinutesBeforeStart = lReminder
  .Display
End With

Set objAppt = Nothing
End Sub

0
0
Reply
Jason Tisdall (@guest_212245)
Reply to  Diane Poremsky
November 11, 2018 1:25 pm
#212245

Hi Diane
Thanks for replying so promptly.
I gave this a go and followed the steps further up your web page i.e.

If the Developer ribbon is not visible, go to File, Options, Customize Ribbon and add a check next to Developer.
Click New Appointment.
Switch to the Developer ribbon and click Design This Form button.
Click View Code button.
Paste the code into the Script Editor (I copied in your code above).
Test it by clicking Run this form on the Developer ribbon

When I tested it I expected an appt with the properties set in your code (such as the subject etc), but just seemed to get the regular appointment.

Am I missing something?
Thanks
Jason

0
0
Reply
Diane Poremsky(@diane-poremsky)
Author
Reply to  Jason Tisdall
November 11, 2018 10:08 pm
#212247

Did you run the Type1Appt macro? It sends the field values to the "master" macro named CreateNewAppt. This allows you to reuse the CreateNewAppt macro with Type2Appt, Type3Appt etc.

To use, click in the Type1Appt and click Run.

2018-11-11-0004.png
2018-11-11-0005.png
0
0
Reply
Rick (@guest_211475)
July 7, 2018 5:57 am
#211475

Hello,
I have developed a custom meeting request but are hampered by a few issues. I cannot use vbscript due to Microsoft security restrictions and my IT department locking me out of Registry changes. There is also no date/time pickers that can be used and bound to the meeting start/end times.

So I am sort of forced to use the default Appointment form to enter the start and end times. I'm happy to do this and then use the custom form to enter the rest of the required information. However I want the form recipient to only see the custom form or at least have the custom form show by default.

If I hide the standard appointment page then I can't put in the start/end times. If I don't hide it then the recipient sees it which is not what I want.

Any idea's on how I might be able to do this will be greatly appreciated

Thanks
Rick

0
0
Reply
Diane Poremsky(@diane-poremsky)
Author
Reply to  Rick
November 10, 2018 12:51 am
#212237

If you don't need the date/time picker, users can just type the date and time in, in the format Outlook 12:52 AM you could use the custom form. (users can use shortcuts like 12/25, 3w, and 3.30p)

0
0
Reply
Chad (@guest_210935)
April 23, 2018 4:55 pm
#210935

Diane,

I am trying to programmatically set the end time for appointments ( we have 4 standard start and 4 standard end times with 2 varying durations). I've tried setting the end time and the duration programmatically; however, the duration nor end date seems to save properly. If I switch over to scheduling assistant it will save the time, but the date is some time in the future.

Any way you can help me out? I've been working on this for 2 days with no success. I find it hard to believe something so simple can be so difficult to accomplish.

If you have an email address I can share sample code and forms with you.

Thanks in advance for any help
Chad

1
0
Reply
Diane Poremsky(@diane-poremsky)
Author
Reply to  Chad
April 23, 2018 9:45 pm
#210936

you can send me the sample at diane at slipstick.

You don't need to use both duration and end time - if you have the start time and set the duration, the end time is set based on the duration. Same for the duration if you set an end time.

0
0
Reply
Chad (@guest_210943)
Reply to  Diane Poremsky
April 24, 2018 1:29 pm
#210943

Thanks Diane, I sent it to you via email.

I only was setting one or the other, but there is something I'm missing to get it to save properly.

Hope you can help!!

0
0
Reply
Diane Poremsky(@diane-poremsky)
Author
Reply to  Chad
April 24, 2018 10:04 pm
#210946

I will take a look at it.

1
0
Reply
doryo (@guest_211641)
Reply to  Diane Poremsky
August 3, 2018 11:37 am
#211641

I have the same Appointment requirement that you describe, Chad. Would love to know what you two learned. I would like to provide an add-in for my co-workers that would make these non-standard start/end times easier to select. doryowen at gmail

0
0
Reply
Kathryn T (@guest_210673)
March 20, 2018 12:00 pm
#210673

Diane, I manage several calendars for others. I want to track all appointments that I create. I created a "Created By" field in the P.2 Form Region which inserts my initials in that field. How do I use this form as the default new appointment form that is associated with the keyboard shortcut CTRL+SHIFT+A? Do you have a better idea for tracking "Created By"?

0
0
Reply
Diane Poremsky(@diane-poremsky)
Author
Reply to  Kathryn T
March 20, 2018 11:55 pm
#210677

That will work - to set it as the default form, you need ot publish it, to an org library is best if its going to be used in other calendars, but it's ok if you can't. Publish it to the calendar folder(s) and set it as default for the folder - right click on the folder, choose properties then choose it for the default form. See https://www.slipstick.com/developer/how-to-apply-a-new-default-form-to-an-outlook-folder/ for more details.

1
0
Reply
Kasey (@guest_209859)
January 4, 2018 12:52 pm
#209859

Hi Diane,

This discussion was very useful and it helped me create the form that I needed to get appointments in the same format. My question is, is there a way to send my Form as a template so that others can use it?

I don't have a option to publish to MS Exchange...so I can only publish locally. I need to share this form with others so the entire team is using it. Is there a way?

Is there a way to do a template that results in a appointment being generated sent to the right people? Again I was able to do it with a form, but can't seem to share it.

0
0
Reply
Diane Poremsky(@diane-poremsky)
Author
Reply to  Kasey
January 5, 2018 9:12 pm
#209871

You either save it as a template - open the form to create a new item and save it as a template, or if it is a published form, you can save it as a frm file in File, Options, Advanced, Custom forms button, Manage forms. find the form and then choose save as. The recipients will publish it using pretty much the same steps.

0
0
Reply
Andy C. (@guest_206021)
April 23, 2017 2:24 pm
#206021

Hi Diane. Great information on your site on your site on working with forms. We have a custom appointment form for our calendar that is shared among multiple locations. Recently it was asked about creating a reminder AFTER an appointment to go back and make sure everything was complete from that meeting. I am hoping you may have a suggestion that we could try, as we have used several different fields without success. Thanks for your help!

Andy

0
0
Reply
Diane Poremsky(@diane-poremsky)
Author
Reply to  Andy C.
May 26, 2017 7:49 am
#206811

You'll need a script behind it - do you want to change the reminder on the initial appointment to reset it or create a followup appointment or task?

0
0
Reply
Kiran Prabhu (@guest_199854)
July 7, 2016 1:59 am
#199854

Just one correction here, it includes while replying but the recipient doesn't receive appended new message text + original message.

0
0
Reply
Kiran Prabhu (@guest_199853)
July 7, 2016 1:54 am
#199853

Hi Diane,
I have a custom form to compose and reply, for some reason while replying it does not include original message in the body. Initially I had chosen "Respect user's default" in "Actions" tab while replying, but that didn't work although my normal reply mails includes original text. Later i choose to "Include and indent original message text" and published the form, but still it doesn't work.
I have unchecked File->Options->mail->Ignore original message text in reply or forward.

Kiran

0
0
Reply
Diane Poremsky(@diane-poremsky)
Author
Reply to  Kiran Prabhu
July 7, 2016 11:52 am
#199860

Did you create a separate read layout? That can cause issues such as this, although I would expect to see the quoted content in the message.

Does your form use script to set the message body?

0
0
Reply
Kiran Prabhu (@guest_199876)
Reply to  Diane Poremsky
July 8, 2016 4:59 am
#199876

Yes i have separate form for compose and read. No i don't have any script. The compose layout has some standard mail input like To,CC, subject and some custom input (Status and Ticket) set with user defined fields and read layout has labels to show this user defined fields. Let me put the case i am doing in steps, 1. Compose a new message(A) with input in To,CC,subject, Status, Ticket and some text in message body(it also has the default signature set) 2. Send the composed message(A), Recipient receives the message(B) with the message body text and other fields including Status and Ticket fields. 3. Recipient replies the message, opens the compose message(C) with message trail of A in message body and adds some more text in the message body. Also changes the Status and Ticket custom field and sends the message. 4. Message(D) received by original sender(1) as a reply, but the text in the message body is empty, although the Status and Ticket fields are updated as sent in C. 5. Recipient in point 3 checks the message(C) in sent folder, the message body text is empty in message(C) but the status and Ticket fields are updated as… Read more »

0
0
Reply

Visit Slipstick Forums.
What's New at Slipstick.com

Latest EMO: Vol. 30 Issue 19

Subscribe to Exchange Messaging Outlook






Support Services

Do you need help setting up Outlook, moving your email to a new computer, migrating or configuring Office 365, or just need some one-on-one assistance?

Our Sponsors

CompanionLink
ReliefJet
  • Popular
  • Latest
  • Week Month All
  • Jetpack plugin with Stats module needs to be enabled.
  • Open Outlook Templates using PowerShell
  • Count and List Folders in Classic Outlook
  • Google Workspace and Outlook with POP Mail
  • Import EML Files into New Outlook
  • Opening PST files in New Outlook
  • New Outlook: Show To, CC, BCC in Replies
  • Insert Word Document into Email using VBA
  • Delete Empty Folders using PowerShell
  • Warn Before Deleting a Contact
  • Classic Outlook is NOT Going Away in 2026
Ajax spinner

Recent Bugs List

Microsoft keeps a running list of issues affecting recently released updates at Fixes or workarounds for recent issues in classic Outlook (Windows).

For new Outlook for Windows: Fixes or workarounds for recent issues in new Outlook for Windows .

Outlook for Mac Recent issues: Fixes or workarounds for recent issues in Outlook for Mac

Outlook.com Recent issues: Fixes or workarounds for recent issues on Outlook.com

Office Update History

Update history for supported Office versions is at Update history for Office

Outlook Suggestions and Feedback

Outlook Feedback covers Outlook as an email client, including Outlook Android, iOS, Mac, and Windows clients, as well as the browser extension (PWA) and Outlook on the web.

Outlook (new) Feedback. Use this for feedback and suggestions for Outlook (new).

Use Outlook.com Feedback for suggestions or feedback about Outlook.com accounts.

Other Microsoft 365 applications and services




New Outlook Articles

Open Outlook Templates using PowerShell

Count and List Folders in Classic Outlook

Google Workspace and Outlook with POP Mail

Import EML Files into New Outlook

Opening PST files in New Outlook

New Outlook: Show To, CC, BCC in Replies

Insert Word Document into Email using VBA

Delete Empty Folders using PowerShell

Warn Before Deleting a Contact

Classic Outlook is NOT Going Away in 2026

Newest Code Samples

Open Outlook Templates using PowerShell

Count and List Folders in Classic Outlook

Insert Word Document into Email using VBA

Warn Before Deleting a Contact

Use PowerShell to Delete Attachments

Remove RE:, FWD:, and Other Prefixes from Subject Line

Change the Mailing Address Using PowerShell

Categorize @Mentioned Messages

Send an Email When You Open Outlook

Delete Old Calendar Events using VBA

VBA Basics

How to use the VBA Editor

Work with open item or selected item

Working with All Items in a Folder or Selected Items

VBA and non-default Outlook Folders

Backup and save your Outlook VBA macros

Get text using Left, Right, Mid, Len, InStr

Using Arrays in Outlook macros

Use RegEx to extract message text

Paste clipboard contents

Windows Folder Picker

Custom Forms

Designing Microsoft Outlook Forms

Set a custom form as default

Developer Resources

Developer Resources

Developer Tools

VBOffice.net samples

SlovakTech.com

Outlook MVP David Lee

Repair PST

Convert an OST to PST

Repair damaged PST file

Repair large PST File

Remove password from PST

Merge Two Data Files

Sync & Share Outlook Data

  • Share Calendar & Contacts
  • Synchronize two computers
  • Sync Calendar and Contacts Using Outlook.com
  • Sync Outlook & Android Devices
  • Sync Google Calendar with Outlook
  • Access Folders in Other Users Mailboxes

Diane Poremsky [Outlook MVP]

Make a donation

Mail Tools

Sending and Retrieval Tools

Mass Mail Tools

Compose Tools

Duplicate Remover Tools

Mail Tools for Outlook

Online Services

Calendar Tools

Schedule Management

Calendar Printing Tools

Calendar Reminder Tools

Calendar Dates & Data

Time and Billing Tools

Meeting Productivity Tools

Duplicate Remover Tools

Productivity

Productivity Tools

Automatic Message Processing Tools

Special Function Automatic Processing Tools

Housekeeping and Message Management

Task Tools

Project and Business Management Tools

Choosing the Folder to Save a Sent Message In

Run Rules on messages after reading

Help & Suggestions

Submit Outlook Feature Requests

Slipstick Support Services

Buy Microsoft 365 Office Software and Services

Visit Slipstick Forums.

What's New at Slipstick.com

Home | Outlook User | Exchange Administrator | Office 365 | Outlook.com | Outlook Developer
Outlook for Mac | Common Problems | Utilities & Addins | Tutorials
Outlook & iCloud Issues | Outlook Apps
EMO Archives | About Slipstick | Slipstick Forums
Submit New or Updated Outlook and Exchange Server Utilities

Send comments using our Feedback page
Copyright © 2025 Slipstick Systems. All rights reserved.
Slipstick Systems is not affiliated with Microsoft Corporation.

wpDiscuz

Sign up for Exchange Messaging Outlook

Our weekly Outlook & Exchange newsletter (bi-weekly during the summer)






Please note: If you subscribed to Exchange Messaging Outlook before August 2019, please re-subscribe.

Never see this message again.

You are going to send email to

Move Comment