Note: You are currently viewing documentation for Moodle 4.0. Up-to-date documentation for the latest stable version of Moodle may be available here: Using Calendar.

Using Calendar

From MoodleDocs

Adding an event

To add a calendar event:

  1. Click month on Calendar to get an expanded month view
  2. In Calendar view click the New Event button
  3. On a New Event page select the type of event
  • A User Event will only be visible by the user currently logged in (i.e. the one creating the event)
  • A Group Event will be visible to a particular Group on the course (chosen from a drop-down list)
Group icon and details

Group events will display a group icon in the calendar block and in the event page, the name of the group will be visible next to the event title:

  • A Course Event will be visible to participants on the course in question. Only users with the capability to manage calendar entries at the course level can add course events.
  • A Site Event is a "global" event - visible in every course and on the calendar on the home page. Only users with the capability to manage calendar entries at the system level can add site events.
  1. Set the event properties
  2. Click Save changes

The different types of events can be visually filtered.

For example, if you (as a teacher) wanted to hide Group event dates (events assigned to learner Groups you create), click "Group events" on the bottom of the Calendar. This would hide all group events, and the color code would disappear from the link on the calendar. To show the events again, click the Group Events link again. This can make the calendar easier to read (especially if there are many events on the calendar).

Calendar block showing an event with duration of 3 days

Other features

  • Adding closing dates to course activities — assignments, quizzes etc. will cause them to show up in the calendar block as course events.
  • View previous or future months.
  • Current date is outlined.
  • The duration of an event lasting more than one day is indicated.

Calendar export

Moodle allows users to export calendars so they may be imported into other calendar programs, as a backup or to create a copy. The Moodle export process creates an ics file

There are two ways to create the ics file: creating an ics file for immediate downloading to a computer, or creating a url link that will create a defined calendar from a link without actually logging into the site.

Calendar Export-iCal buttons.jpg

At the bottom of a calendar page you will see the "Export calendar" and "iCal" links.

iCal quick link

Click on the "iCal" link at the bottom of the Moodle calendar to show a "Opening icalexport.ics" popup window. Here you can save the file to your local computer or open it with MS Outlook.

Note: you cannot select individual items to include in the exported file with iCal, all events will be included.

Export options for an ics file

Click on the "Export calendar" button at the bottom of a calendar will bring you to the Export page with options.


  1. Select "All events" or "Events related to courses"
  2. Select the time frame: "This week", "This month", "Recent and next 60 days" or a custom range. The range can be set from Administration>Site administration>Appearance>Calendar by the page administrator.

Now you have a choice to create an icalexport.ics file or to create a url that will create the icslexport.ics file via a link.

Click on the "Export" button will bring up a "Opening icalexport.ics" popup window. Either save the file or have MS Outlook open the file directly.

URL file

After pressing the "Export calendar" button at the bottom of the calendar page, select the events and time frames you wish. The "Get URL address" button will create a URL address. Copy and paste the url link into an email or any HTML page. This link will compile the icalexport.ics file. For example:

Importing Moodle calendar into other calendars

Mozilla Thunderbird/Lightning

  • Enter into calendar mode by clicking the Calendar icon at the bottom-right of the client
  • Click Calendar -> Import... then locate the exported iCal file

Note: changing an event in Thunderbird/Lightning will not change the event in a Moodle calendar as well, you must do that yourself.

Subscribing to a calendar in Outlook 2007

If you use an Outlook 2007 calendar, you can have your Moodle calendar events overlaid on top (or placed side by side) by following these steps:

  1. Go to the calendar view in your Moodle install and find the orange ical icon at the bottom and right click it, choosing "copy link location". This link will permanently subscribe to the calendar events for the currently logged in user.
  2. Open Outlook 2007 and go to Tools->account settings->internet calendars->new.
  3. Paste in the address you copied from Moodle.
  4. Click OK and close.
  5. You should now see another calendar available on the left hand calendar bar, underneath 'My Calendars'. Enable this and Outlook will update the calendar every time it opens.
  6. Right-click on the tabs to choose between 'side by side mode' and 'overlay mode'.

Google calendar

Dynamic Link to Moodle Calendar

In Moodle, after pressing the "Export calendar" button at the bottom of the calendar page, select the events and time frames you wish. The "Get URL address" button will create a URL address.

In Google Calendar's "Other calendars" menu, choose "Add by URL" and supply the URL generated in the process described above. This version of the Google calendar will update whenever changes are made in the source Moodle calendar (including new, changed or deleted events), although it may take several hours for the changes to appear.

Note that this may be more or less useful. The calendar will be relative to the Moodle user. That is, if the user who generates the URL is enrolled in several courses, it is this information that will appear in the calendar. There is no way (at this time) to generate a URL that only applies to one course.

One-time import (future updates in Moodle won't appear)

In Moodle create an export file (icalexport.ics, as detailed above) and save it on your computer.

In Google Calendar, use the settings link (usually near the sign out and help links) and select the settings tab. This will bring up the "Import Calendar" pop up window. Select the file to import and the Google Calendar the file should be imported into. Note that this method doesn't allow new (or modified) events from the Moodle calendar to appear in the Google calendar, unless you repeat this process. See the Dynamic Link method above.

Importing multiple events

See Calendar import for details of how to import external calendars (such as Google Calendar, or a calendar from another Moodle site) into Moodle's calendar.

List format

The calendar displays event lists one day at a time. There is no capacity to display a list of all site or course events over an extended period. To obtain date lists for publications, the only option is to link directly to the SQL database, select by the "courseid" and perform calculations to convert the UNIX "timestart" to a publishable date format:

Using a Microsoft Access query, collect data from the mdl_event table and create 2 calculated fields:

  • calcdate: DateValue("1/1/1970")+[timestart]/60/60/24+10/24
  • daysavdate: IIf([calcdate] Between #2/04/2006# And #29/10/2006#,[calcdate],[calcdate]+1/24)

Then, use additional calculated fields to separate the date, day of week and time (if needing to be formatted separately:

  • Dte: Format([daysavdate],"mmm dd")
  • DayName: Format([daysavdate],"ddd")
  • Tme: Format([daysavdate],"hh:nn am/pm")
TIP: The dates for daylight saving need to be changed each year to match your location.
TIP: Very brief summary process for creating connection to moodle database in Windows environment: Install MySQL ODBC Driver 3.51 / Start settings control panel / admin tools/ Data Sources/ ODBC / add new service/ select MySQL ODBC driver/ follow prompts for User & password/ open access/ get external data/ point to MySQL ODBC connection

Navigating months

There is no easy way to jump to a specific month in the year other than to directly edit the URL variable for month "m=" : calendar/view.php?view=month&cal_d=1&cal_m=02&cal_y=2006

Display current day events

Use link:

See also