While not known as a calendar program, you can use Excel to create and manage your calendar. If you don't want to create one yourself, you can use a free calendar template or use a Visual Basic (VB) code. You can also take a list of calendar events from a spreadsheet and import them into your Outlook calendar. Here's how to create a calendar in Microsoft Excel using your Windows or Mac computer.
Making a Calendar in Excel
To create a calendar using a template in Excel, click File and select New from Template . Type "calendar" into the search field and select a template. Click Create .
Steps
-
1Open Microsoft Excel . You should see the Excel home page. If you open an Excel file instead, click File in the top-left corner.
- Creating a calendar from a template will allow you to create a blank calendar that you can fill in with events. It will not convert any of your data into calendar format. If you want to convert a list of Excel data into an Outlook calendar, see the last section instead.
-
2Click New . This is in the left panel. On some devices, you may need to click New from Template instead.Advertisement
-
3Type "calendar" into the search bar and press ↵ Enter . You can find the search bar below the list of premade templates. Results will load.
-
4Select a calendar template. Choose one depending on your personal needs. You may want to select a standard calendar format, or an academic calendar, or a weekly schedule planner.
- When you select a calendar, a pop-up menu will open with its full view and details.
-
5Click Create . This is the green button. A new file will be created with your new template. [1] X Research source
-
6Set the template to the correct dates. Once the template loads, you'll see your new blank calendar. The date will likely be incorrect, but you can usually change this using the menu that appears when you select the date.
- Some templates have instructions within the text. You can delete the instructions as you complete them.
- The process will be a little different depending on the template you are using. Usually you can select the displayed year or month and then click the ▼ button that appears next to it. This will display the options you can pick from, and the calendar will adjust automatically.
- You can usually set the day the week starts as well by selecting it and choosing a new one.
-
7Check for any tips. Many templates will have a text box with tips that can inform you on how to change the dates or adjust other settings for the calendar template. You'll need to delete these tip text boxes if you don't want them to appear on your printed calendar.
-
8Adjust any visuals you'd like to change. You can adjust the look of any of the elements by selecting one and then making changes in the Home tab. You can change the font, color, size, and more just like you would any object in Excel.
-
9Enter your events. After your calendar is configured correctly, you can begin entering events and information into it. Select the cell you want to add an event to and start typing. If you need to put more than one thing on a single day, you may have to get creative with your spacing.
-
1Open a workbook in Excel. Before you can use Visual Basic codes in Microsoft Excel, you must have the Developer ribbon enabled. [2] X Research source
- To enable the Developer ribbon, click File > Options > Customize Ribbon > Developer > Add > OK .
-
2Click Developer . This tab is at the top, between View and Help .
-
3Click Visual Basic . This is in the Code section.
-
4Click Insert , and then Module . This is at the top. A new window will open where you can paste a code.
-
5Copy and paste the following code. This goes into the module sheet.
Sub CalendarMaker () ' Unprotect sheet if had previous calendar to prevent error. ActiveSheet . Protect DrawingObjects : = False , Contents : = False , _ Scenarios : = False ' Prevent screen flashing while drawing calendar. Application . ScreenUpdating = False ' Set up error trapping. On Error GoTo MyErrorTrap ' Clear area a1:g14 including any previous calendar. Range ( "a1:g14" ). Clear ' Use InputBox to get desired month and year and set variable ' MyInput. MyInput = InputBox ( "Type in Month and year for Calendar " ) ' Allow user to end macro with Cancel in InputBox. If MyInput = "" Then Exit Sub ' Get the date value of the beginning of inputted month . StartDay = DateValue ( MyInput ) ' Check if valid date but not the first of the month ' -- if so, reset StartDay to first day of month. If Day ( StartDay ) <> 1 Then StartDay = DateValue ( Month ( StartDay ) & "/1/" & _ Year ( StartDay )) End If ' Prepare cell for Month and Year as fully spelled out. Range ( "a1" ). NumberFormat = "mmmm yyyy" ' Center the Month and Year label across a1:g1 with appropriate ' size, height and bolding. With Range ( "a1:g1" ) . HorizontalAlignment = xlCenterAcrossSelection . VerticalAlignment = xlCenter . Font . Size = 18 . Font . Bold = True . RowHeight = 35 End With ' Prepare a2:g2 for day of week labels with centering, size, ' height and bolding. With Range ( "a2:g2" ) . ColumnWidth = 11 . VerticalAlignment = xlCenter . HorizontalAlignment = xlCenter . VerticalAlignment = xlCenter . Orientation = xlHorizontal . Font . Size = 12 . Font . Bold = True . RowHeight = 20 End With ' Put days of week in a2:g2. Range ( "a2" ) = "Sunday" Range ( "b2" ) = "Monday" Range ( "c2" ) = "Tuesday" Range ( "d2" ) = "Wednesday" Range ( "e2" ) = "Thursday" Range ( "f2" ) = "Friday" Range ( "g2" ) = "Saturday" ' Prepare a3:g7 for dates with left/top alignment, size, height ' and bolding. With Range ( "a3:g8" ) . HorizontalAlignment = xlRight . VerticalAlignment = xlTop . Font . Size = 18 . Font . Bold = True . RowHeight = 21 End With ' Put inputted month and year fully spelling out into "a1". Range ( "a1" ). Value = Application . Text ( MyInput , "mmmm yyyy" ) ' Set variable and get which day of the week the month starts. DayofWeek = WeekDay ( StartDay ) ' Set variables to identify the year and month as separate ' variables. CurYear = Year ( StartDay ) CurMonth = Month ( StartDay ) ' Set variable and calculate the first day of the next month. FinalDay = DateSerial ( CurYear , CurMonth + 1 , 1 ) ' Place a "1" in cell position of the first day of the chosen ' month based on DayofWeek. Select Case DayofWeek Case 1 Range ( "a3" ). Value = 1 Case 2 Range ( "b3" ). Value = 1 Case 3 Range ( "c3" ). Value = 1 Case 4 Range ( "d3" ). Value = 1 Case 5 Range ( "e3" ). Value = 1 Case 6 Range ( "f3" ). Value = 1 Case 7 Range ( "g3" ). Value = 1 End Select ' Loop through range a3:g8 incrementing each cell after the "1" ' cell. For Each cell In Range ( "a3:g8" ) RowCell = cell . Row ColCell = cell . Column ' Do if "1" is in first column. If cell . Column = 1 And cell . Row = 3 Then ' Do if current cell is not in 1st column. ElseIf cell . Column <> 1 Then If cell . Offset ( 0 , - 1 ). Value >= 1 Then cell . Value = cell . Offset ( 0 , - 1 ). Value + 1 ' Stop when the last day of the month has been ' entered. If cell . Value > ( FinalDay - StartDay ) Then cell . Value = "" ' Exit loop when calendar has correct number of ' days shown. Exit For End If End If ' Do only if current cell is not in Row 3 and is in Column 1. ElseIf cell . Row > 3 And cell . Column = 1 Then cell . Value = cell . Offset ( - 1 , 6 ). Value + 1 ' Stop when the last day of the month has been entered. If cell . Value > ( FinalDay - StartDay ) Then cell . Value = "" ' Exit loop when calendar has correct number of days ' shown. Exit For End If End If Next ' Create Entry cells, format them centered, wrap text, and border ' around days. For x = 0 To 5 Range ( "A4" ). Offset ( x * 2 , 0 ). EntireRow . Insert With Range ( "A4:G4" ). Offset ( x * 2 , 0 ) . RowHeight = 65 . HorizontalAlignment = xlCenter . VerticalAlignment = xlTop . WrapText = True . Font . Size = 10 . Font . Bold = False ' Unlock these cells to be able to enter text later after ' sheet is protected. . Locked = False End With ' Put border around the block of dates. With Range ( "A3" ). Offset ( x * 2 , 0 ). Resize ( 2 , _ 7 ). Borders ( xlLeft ) . Weight = xlThick . ColorIndex = xlAutomatic End With With Range ( "A3" ). Offset ( x * 2 , 0 ). Resize ( 2 , _ 7 ). Borders ( xlRight ) . Weight = xlThick . ColorIndex = xlAutomatic End With Range ( "A3" ). Offset ( x * 2 , 0 ). Resize ( 2 , 7 ). BorderAround _ Weight : = xlThick , ColorIndex : = xlAutomatic Next If Range ( "A13" ). Value = "" Then Range ( "A13" ). Offset ( 0 , 0 ) _ . Resize ( 2 , 8 ). EntireRow . Delete ' Turn off gridlines. ActiveWindow . DisplayGridlines = False ' Protect sheet to prevent overwriting the dates. ActiveSheet . Protect DrawingObjects : = True , Contents : = True , _ Scenarios : = True ' Resize window to show all of calendar (may have to be adjusted ' for video configuration). ActiveWindow . WindowState = xlMaximized ActiveWindow . ScrollRow = 1 ' Allow screen to redraw with calendar showing. Application . ScreenUpdating = True ' Prevent going to error trap unless error found by exiting Sub ' here. Exit Sub ' Error causes msgbox to indicate the problem , provides new input box , ' and resumes at the line that caused the error. MyErrorTrap : MsgBox "You may not have entered your Month and Year correctly." _ & Chr ( 13 ) & "Spell the Month correctly" _ & " (or use 3 letter abbreviation)" _ & Chr ( 13 ) & "and 4 digits for the Year" MyInput = InputBox ( "Type in Month and year for Calendar" ) If MyInput = "" Then Exit Sub Resume End Sub
-
6Click File . This is in the top-left corner of Visual Basic.
-
7Click Close and Return to Microsoft Excel . Visual Basic will close and apply the code.
-
8Click Macros . This is in the Code section of the Developer tab.
-
9Click CalendarMaker . You should see this underneath the Macro name header.
-
10Click Run . This will run the code and create the calendar in Excel.
-
11Customize your calendar. A dialog box will open for the calendar's inputs. When prompted, type the month and year for the calendar, and then click OK .
-
Create a new blank spreadsheet in Excel. You can import data from Excel into your Outlook calendar . This can make importing things like work schedules much easier.
-
Add the proper headers to your spreadsheet. It will be a lot easier to import your list into Outlook if your spreadsheet is formatted with the proper headers. Enter the following headers into the first row:
- Subject
- Start Date
- Start Time
- End Date
- End Time
- Description
- Location
-
Enter each calendar entry into a new row. The "Subject" field is the name of the event as it appears on your calendar. You don't need to enter something for every field, but you will need at least a "Start Date" as well as the "Subject."
- Make sure to enter the date into the standard MM/DD/YY or DD/MM/YY format so that it can be read properly by Outlook.
- You can make an event that spans multiple days by using the "Start Date" and "End Date" fields.
-
4Open the "Save As" menu. Click File > Save As . Once you're finished adding events to your list, you can save a copy of it in a format that can be read by Outlook.
-
5Select "CSV (Comma delimited)" from the file type menu. This is a common format that can be imported into a variety of different programs, including Outlook.
- If you're importing special characters, select the CSV UTF-8 version instead.
-
6Click Save . You may need to enter a name and select a location first.
-
7Open your Outlook calendar. Outlook comes with Office, and you'll generally have it installed if you have Excel installed. When Outlook is open, click the "Calendar" button in the lower-left corner to view your calendar.
-
8Click the File , then Open & Export . You'll see several options for handling Outlook data.
-
9Click Import/Export . This will open a new window for importing and exporting data into and out of Outlook.
-
10Select Import from another program or file . More options will appear.
-
11Select Comma Separated Values and click Next . You'll be prompted to select the file you want to load from.
-
12Click Browse and find the CSV file you created in Excel. You should usually be able to find it in your Documents folder if you didn't change the default location in Excel.
-
13Ensure "Calendar" is selected as the destination folder. It should be selected since you're in the Calendar view in Outlook.
-
14Click Finish to import the file. Your list will be processed and the events will be added to your Outlook calendar. You can find your events in the correct spaces, with times set according to your list. If you included descriptions, you'll see these after selecting an event.
Community Q&A
-
QuestionWhat holiday is it on the 21st march 2028?Community AnswerAs far as I have found out, the only holiday in March in 2028 is Memorial Day, BUT it's on the 29th.
Tips
References
About This Article
1. Open Excel.
2. Search for a calendar template.
3. Select a template.
4. Set the correct dates.
5. Adjust visuals as needed.
6. Enter your events.