Skip to main content
ExLibris
  • Subscribe by RSS
  • Ex Libris Knowledge Center

    Timetable

    campusM Logo wh bkg sm1.png

    Overview

    The Timetable product integration allows students, lecturers, and other users of the app to view their schedule or list of calendar events for the day, week, month, and year through the app using their mobile devices or PCs.

    Note that this product integration requires Ex Libris teamwork. Please submit a Support ticket for full configuration. See more information in the Configuration section.

    For more information, watch Timetable Part 1 (3:16 min) and Timetable Part 2 (5:27 min).

    Vendors

    Timetable feeds can be retrieved with Celcat, Ellucian Banner, Ellucian Colleague (custom), MyTimetable (Semestry), Oracle PeopleSoft, Databee Exams Manager, Google Calendars, Microsoft Graph API (Calendars) and RESTful APIs.

    It is possible to have multiple Timetable feeds, which can have different formats (for example, two MyTimetable feeds and one Banner feed) with different configurations accordingly.

    The user can configure whether the feeds are blended or not.

    User Experience

    The following section describes information relating to the user experience for the Timetable product integration.

    User Activities

    • Users can see their events from multiple Timetable feeds.
    • Users can select specific Timetable feeds to view.
    • Users can see a list of events in a daily, weekly, or monthly view.
    • Users can see the following details about a specific event: Start Time, End Time, Location information, etc.
    • Users can select the option to display a blended view.

    User Flow Diagram

    The following diagram describes the workflow to display the user's feeds:

    clipboard_e24da8cbb960fa8845204bb71954f79b3.png

    User's Feeds Diagram
    The following diagram describes the workflow to display the user feed's data:

    clipboard_eb9bfb4ab2183e8ed0b5c1b5d5eea4a98.png

    User Feed's Data Diagram

    Authentication

    Users do not need to fill in their authentication credentials at any stage. See the authentication workflow that occurs behind the scenes in the Technical Flow Diagram section.

    Offline Support

    The following offline support is available:
    • On native (Android/ iOS):
      The cache size is configured in the Web Service Endpoint. If a user enters the app after more time than configured in the Frequency for Checking parameter (defined in Web Service Endpoint), the calendars are refreshed according to the size of the cache. A refresh occurs even if the Timetable Refresh (Web Service Endpoint) parameter is set to NO. Also, when the user accesses the Timetable tile after the app is refreshed, the current block (week or month based on the device) is refreshed. If the user scrolls to a block that has not been queried for data yet, the app calls the endpoint to download the data for that block. If the user accesses the app offline later, all the cached/ previously viewed data is available. If the user logs out of the app, the cache gets cleared automatically.
    • On Web:
      There is no background cache that occurs actively.

    Screenshots

    The following is an overview of the Timetable product integration user interface for a reference when configuring it.

    Blended Calendar View

    Blended calendar1.PNG

    Blended calendar2.PNG

    clipboard_ecc299d535d3069108f4d7d389b1b3cbe.png

    Web Calendar View

    clipboard_e88d8501215a5b84d1a5c7c3238f5dcac.png

    Technical Overview

    Prerequisites

    • The eventRef field of every event must be unique in order for the integration to work properly.
    • CMAuth configured Profile Registration Authentication (App Manager > App Settings > Profile Registration Authentication)
    • CMAuth configured Authentication Access (App Manager > App Settings > Authentication Access)
    • Timetable feeds should be provided by one of the following:
      • CelCat APIs
      • Ellucian Banner APIs
      • Ellucian Colleague (custom) APIs
      • Ellucian Colleague (Web API)
      • MyTimetable APIs
      • Oracle PeopleSoft APIs
      • Databee Exams Manager
      • Google Calendar
      • Microsoft Graph API (Calendars)
      • RESTful API which provides timetable feed in one of the following formats:
        • JSON
        • XML
        • iCal

    Required Format

    Celcat Vendor

    campusM uses the following Celcat APIs:

    GET /api/students – The parameters and headers passed into this API are all set within the configuration page.

    GET /api/events?studentId={{user_input_identifier}} – This returns the timetable data for the user.

    Oracle PeopleSoft Vendor

    The table below includes the relevant fields from Peoplesoft. Ensure that you are using the correct fields when building the query.

    The Timetable query is prompted by EMPLID, START DATE, END DATE, ROLE and returns the class/course meeting information:

    Internal

    campusM Field Name

    Peoplesoft Field Name

    eventRef

    Concat of fields from CLASS_TBL & CLASS_MTG to create a unique non-changing reference value. This value is then used to return the attendees in the retrieve attendees integration

    desc1

    Concat SUBJECT-CATALOG_NBR-CLASS_SECTION-DESCR from CLASS_TBL

    desc2

    Concat SUBJECT-CATALOG_NBR-CLASS_SECTION-CAMPUS_EVENT_NBR from CLASS_TBL and CAMPUS_MTG

    desc3

    Concat SUBJECT-CATALOG_NBR-CLASS_SECTION from CLASS_TBL

    start

    Concat MEETING_DT+MEETING_TIME_START from CAMPUS_MTG

    end

    Concat MEETING_DT+MEETING_TIME_END from CAMPUS_MTG

    teacher_name

    from CLASS_INSTR

    teacher_email

    from EMAIL_ADDRESSES

    loc_code

    FACILITY_ID from CAMPUS_MTG

    loc_add1

    ROOM from FACILITY_TBL

    Descr

    DESCR from BLDG_TBL

    campusM uses the following API:

    GET - https://campus.edu/PSIGW/RESTListeningConnector/ExecuteQuery.v1/PUBLIC/CAMPUSM_TIMETABLE/JSON/NONFILE?isconnectedquery=N&maxrows=0&prompt_uniquepromptname=USERNAME,START,END&prompt_fieldvalue=STUDNT,2020-04-06,2020-04-13&json_resp=true

    The parameters and headers passed into this API are all set within the configuration page.

    JSON Expected Format:

    {

      "status": "success",

      "data": {

        "query": {

          "numrows": 2,

          "queryname=": "CAMPUSM_TIMETABLE",

          "rows": [

            {

              "attr:rownumber": 1,

              "EVENT_REF": "9",

              "DESC1": "Multiplatform Content Creation",

              "DESC2": "COM",

              "DESC3": "COM-200-01",

              "START": "2020-04-06T12:00:00-0700",

              "END": "2020-04-06T14:50:00-0700",

              "TEACHER_NAME": "Dianne Dianne",

              "TEACHER_EMAIL": "do_not_reply@campus.edu",

              "LOC_CODE": "ANM1-259",

              "LOC_ADD1": "259",

              "LOC_ADD2": "79 New"

            },

            {

              "attr:rownumber": 2,

              "EVENT_REF": "25",

              "DESC1": "Multiplatform Content Live",

              "DESC2": "COM",

              "DESC3": "COM-210-01",

              "START": "2020-04-06T15:40:00-0700",

              "END": "2020-04-06T18:30:00-0700",

              "TEACHER_NAME": "Dianne Dianne ",

              "TEACHER_EMAIL": "do_not_reply@campus.edu",

              "LOC_CODE": "ANM1-259",

              "LOC_ADD1": "259",

              "LOC_ADD2": "79 New"

            }

          ]

        }

      }

    }

    RESTful API Vendor

    campusM expects the following RESTful API:

    Example GET request: https://someHostName/serviceName/username?StartDate=[startdate]&EndDate=[enddate]

    Path parameters, query parameters, and API authentication can be customized in the product integration configuration. For more information, see Configuration for RESTful API Vendor.

    • JSON Expected Format
      {
          "events": [
              {
                  "eventRef": "ref 1",
                  "desc1": "Quantum mechanics exam 1",
                  "desc2": "Exam Timetable",
                  "desc3": "Some other description",
                  "start": "2020-07-27T07:00:00.000Z",
                  "end": "2020-07-27T07:00:00.000Z",
                  "teacherName": "Faculty invigilator",
                  "teacherEmail": "buckleym@example.ac.uk",
                  "locCode": null,
                  "locUrl": null,
                  "locAdd1": "Great Hall",
                  "locAdd2": "Senate building",
                  "locAdd3": null,
                  "locAdd4": null,
                  "locPostCode": null,
                  "locWorkTel": null,
                  "attendanceExclude": false,
                  "campus": "London",
                  "meeting": true, 
                  "meetingURL": "https://www.google.com/", 
                  "meetingURLDesc": "This is a meeting url description" 
              }
    • XML Expected Format
      <root>
        <events>
          <eventRef>ref 1</eventRef>
          <desc1>Quantum mechanics exam 1</desc1>
          <desc2>Exam Timetable</desc2>
          <desc3>Some other description</desc3>
          <start>2020-07-27T07:00:00.000Z</start>
          <end>2020-07-27T07:00:00.000Z</end>
          <teacherName>Faculty invigilator</teacherName>
          <teacherEmail>buckleym@example.ac.uk</teacherEmail>
          <locCode/>
          <locUrl/>
          <locAdd1>Great Hall</locAdd1>
          <locAdd2>Senate building</locAdd2>
          <locAdd3/>
          <locAdd4/>
          <locPostCode/>
          <locWorkTel/>
          <attendanceExclude>false</attendanceExclude>
          <campus>London</campus>
          <meeting>true</meeting>
          <meetingURL>https://www.google.com/</meetingURL>
          <meetingURLDesc>This is a meeting url description</meetingURLDesc>
        </events>
      </root>
    • Attributes Mapping for JSON/XML Fields
      Attributes Mapping
      External Field Name Internal CampusM Field Name Description Mandatory Yes/No Data Type Default Example
      Event Reference eventRef A unique ID for the event yes String max 100 chars - "EVENT12345"

      eventRef should include only alphanumeric chars and  '.', '-', ':'

      Primary Description desc1 The primary description of the Event/Course/Exam yes String - "Quantum mechanics exam 1"
      Secondary Description desc2 The secondary description of the Event/Course/Exam no String - truncated after 2000 chars - "Exam Timetable"
      Tertiary Description desc3 Tertiary description - Any additional details of the event type. It is displayed on the detail page of the calendar, below the primary description. no String - truncated after 2000 chars - -
      Start Date start The start date/time - the format for this is configurable in the configuration area. yes String - "2019-08-13T07:00:00.000Z"
      End Date end The end date/time. The format for this is configurable in the configuration area. (It does not have to contain the timezone information). yes String - "2019-08-13T07:00:00.000Z"
      Lecturer Name teacherName The name of the teacher no String -  
      Lecturer Email teacherEmail The email of the teacher - Clicking the email allows the user to send an email no String - "buckleym@example.ac.uk"
      Location Reference locCode Clicking the location links the user to campus maps. This must be a unique identifier for the location to which you want to link in campus maps. The data type can be any string, and must be set as the location reference for the position in the App Manager. no String -  
      Location Reference locUrl A URL that can be sent in the response. It can be a campusM URL scheme / standard HTTP link (overrides locCode as the location reference link)  no String -  
      Location Name locAdd1 A description of the location of the event no String - "Great Hall"
      Additional Location Information locAdd2 An additional description of the location no String - "Senate building"
      Additional Location Information locAdd3 An additional description of the location no String -  
      Additional Location Information locAdd4 An additional description of the location no String -  
      Location Post Code locPostCode If this field is populated, the location name will be treated as the first line of an address rather than a room name no String -  
      Location Work Telephone Number locWorkTel Contact number of the event location or organizer no String -  
      Attendance Exclude Flag attendanceExclude A flag that defines whether or not to exclude the event from attendance monitoring. If this is not specified, all events have attendance monitoring enabled. Note that this is only relevant when campusM Attendance has been deployed. no Boolean (true/false) false true
      Campus Name campus If there are multiple campuses, this field can be used to distinguish between different timezones no String -  
      Meeting meeting A flag that indicates if a meeting link will be included no Boolean false  
      Meeting URL meetingURL The URL for the meeting for the event no String -  
      Meeting URL Description meetingURLDesc The description for the meeting URL no String -  
    • iCal Expected Format:
      BEGIN:VCALENDAR
      BEGIN:VEVENT
      DTSTART:20200428T180000
      DTEND:20200428T210000
      CREATED:20200226T165202Z
      UID:8568585558096800-1588107600
      SUMMARY:Linear Algebra
      DESCRIPTION:This is a math course
      URL:https://www.hostName.edu/event/r-a-d-free-9-hour-womens-self-defense/2020-04-28/
      LOCATION:Hammond Peregrine Hall 300\, 2330 173rd Street\, Hammond\, IN\, 46323\, United States
      GEO:41.5805562;-87.4723704
      ORGANIZER;CN=John Smith:MAILTO:jsmith@host1.com
      X-MEETING:true
      X-MEETING-URL:https://google.com/
      X-MEETING-URL-DESC:This is a great description
      X-PROPERTY-LOCATION-WORK-PHONE:207-123-4567
      END:VEVENT
      END:VCALENDAR
    • Attributes Mapping for iCal Fields
      Attributes Mapping
      External Field Name Internal CampusM Field Name Description Mandatory Yes/No Data Type Default Example
      SUMMARY Primary Description, Event Reference The primary description of the Event/Course/Exam. In addition, 'Events Reference' will consist of this field (together with few others). yes String SUMMARY Primary Description, Event Reference
      DESCRIPTION Secondary Description,
      Event Reference
      The secondary description of the Event/Course/Exam. In addition, 'Events Reference' will consist of this field (together with few others). no String - truncated after 2000 chars DESCRIPTION Secondary Description,
      Event Reference
      DTSTART Start Date, Event Reference The start date/time - the format for this is configurable in the configuration area. In addition, 'Events Reference' will consist of this field (together with few others). yes String - yyyymmddThhmmssZ DTSTART Start Date, Event Reference
      DTEND End Date, Event Reference The end date/time. The format for this is configurable in the configuration area. (It does not have to contain the timezone information). In addition, 'Events Reference' will consist of this field (together with few others). yes String - yyyymmddThhmmssZ DTEND End Date, Event Reference
      ORGANIZER Lecturer Name The name of the teacher no String ORGANIZER Lecturer Name
      ORGANIZER Lecturer Email The email of the teacher - Clicking the email allows the user to send an email no String ORGANIZER Lecturer Email
      URL Location Reference A URL that can be sent in the response. It can be a campusM URL scheme / standard HTTP link (overrides locCode as the location reference link)  no String URL Location Reference
      GEO Location Latitude and Location Longtitude The latitude (before ';') and longtitude (after ';'') for the location coordinates no Decimal GEO Location Latitude and Location Longtitude
      LOCATION Location Name A description of the location of the event no String - "Great Hall"
    • Error Handling

      If there is an error in the response because timetable data does not exist for the user, the response is the following:

      HTTP Status Code should be ‘404 Not Found’

      The response contains the following text: timetable_not_found

    • iCal

      iCal is required according to the iCal standard format. Customized event attributes can be added as additional iCal properties in the iCal feed. For the additional properties’ required configuration, see the Configuration section.

    Banner Vendor

    campusM uses the following Banner APIs:

    •  https://<hostName>:<portNumber>/StudentApi/api/students/<BANNER_ID>/class-schedules?term=<term>

      Banner ID – username or an attribute from the token.

      Term – a term code according to the dates range given in the request from the Application.

      This API returns a list of courses for the student of the given Banner ID during the given term code.

    • https://<hostName>:<portNumber>/StudentApi/api/terms

          This API returns a list of all the available terms for all the students with the information of each term.

    MyTimetable (Semestry) Vendor

    campusM uses the following MyTimetable API:
    GET https://<hostName>:<portNumber>
    path: api/v0/timetable
    Query parameters:
    • startDate
    • endDate
    • excludeResourceTimetables
    Headers:
    • apiToken
    • requestedAuth
    For example:
    URL: https://mytimetable-test.exlibris.com/api/v0/timetable?startDate=2020-02-01&endDate=2020-02-29&excludeResourceTimetables=true
    headers: {apiToken=[10341155-2adf-46ee-92ec-c298c7b32187], Content-Type=[application/json], Accept=[application/json], requestedAuth=[aaa@gmail.com]}
    The conference attribute in the response is used to indicate that a meeting URL should be included with the event. The conferenceUrl attribute specifies the actual URL.

    Ellucian Colleague (Custom) Vendor

    The following Ellucian Colleague (Custom) APIs are available for the Timetable product integration:
    POST  https://<hostName>:<portNumber>
    path: /ColleagueApi/students/timetable
    Body:

    {

        "studentId": "123456",

        "startDate": "08/01/2020",

        "endDate": "12/01/2020"

    }

    Timetable integration Ellucian Colleague (Custom) implementation:
    1. The Ellucian Colleague (custom) vendor configuration is retrieved with the calType in the request coming from the application.
    2. The body is built with information from the user identifier and from the request (start+end dates).
    3. The courses information is received.
    4. Event items are created.

    Ellucian Colleague (Web API) Vendor

    campusM uses several API calls to fetch the timetable data:
    • The first is to authenticate the Colleague Web API via a session token:
      • https://{HOST}/colleagueApi/session/proxy-login
    • The second call is to retrieve all relevant terms for the student:
      • https://{HOST}/colleagueApi/terms
    • The third call is to retrieve the grades data for the active term. This re-uses any available session token or re-authenticate with the proxy-login API:
      • https://{HOST}/colleagueApi/students/{username}/academic-credits
    • The fourth call is to retrieve the sections data (which contains the Timetable meetings). This also re-uses any available session token or re-authenticate with the proxy-login API:
      • https://{HOST}/colleagueApi/qapi/sections

    Google Calendar Vendor

    Currently, campusM supports Public Google Calendars. campusM uses the following Google Calendar APIs: 

    GET https://www.googleapis.com/calendar/v3/calendars/events

    Additional information on this endpoint can be found here.

    Prerequisites to be completed by the customer:

    • Steps that must occur in the Google Developer Console prior to setting up the Product Integration 
      • Navigate to the Google Developer Console
      • From the left menu, select Library
      • Search for calendar
      • Select Google Calendar API
      • Select ENABLE
      • Select + CREATE CREDENTIALS > API Key. The "API Key created" page appears.
      • Note the API key
      • Select CLOSE. The newly created credential appears under API Keys.
    • Prerequisites for the Product Integration Configuration page:
      • Have the API Key from the steps above
      • Get the calendar ID
        • In the Google Calendar interface, from the left, locate My calendars or Other calendars
        • Hover over the calendar you need and select the settings icon. A menu appears.
        • Select Settings
        • Scroll to the Integrate calendar section until you see Calendar ID with the relevant value below 
        • Copy this value to the product integration configuration page 

    Microsoft Graph API (Calendars)

    You will first need to configure Microsoft Azure (Graph) for the Timetable Product Integration. See here for more information.

    The following is the required JSON format for Microsoft Graph API:
    The list of roles returned in the displayName field can be returned separated by a delimiter that can be configured in the Roles PI configuration.
    For example, in the following response, the delimiter is a hyphen (-).

    json_microsoft_graph_API.png

    The list of roles provided by the Microsoft Graph API will be acquired by using the following Microsoft Graph API services:

    Technical Flow Diagram

    technical_flow_diagram_timetable.png

    Technical Flow Diagram - Timetable
    • Currently, when using not-blended view, list all calendar feeds is being displayed (with only relevant data in them, according to calendar's response). It is planned to be fixed in Q2 2020.
    • Events that occur on vacation days are not removed.

    Databee Exams Manager Vendor

    campusM uses the following Databee API:

    GET/api/personaltt/?event={{eventid}}&unique={{studentID}} – The parameters and headers passed into this API are all set within the configuration page. This returns the timetable data for the user.

    Configuration

    To use the Timetable product integration, configure the following components:

    • Timetable Product Integration instances - an instance for each feed.
    • To be done by Ex Libris: Application Server, Authentication Access, Web Service Endpoints, 'Calendar' Menu Entry.


    Configure a Timetable Product Integration Instance

    To configure a Timetable product integration instance (feed), select Add Product Integration Instance from the Product Integrations main menu option and select TIMETABLE.
    The Timetable configuration page appears as the following:

    timetable_api.png

    Timetable Configuration

    Configuration for Celcat Vendor

    The following table describes the configuration options available for the Celcat vendor:
    Configuration Option Description Mandatory Data Type Default Example
    Manage Integration  
    Enable Product Integration Select to enable the product integration Yes Checkbox False  
    Product Integration Description A description of the product integration for internal use Yes String    
    Vendor  
    Vendor Name Celcat Yes Drop-down    
    Base URL to retrieve the information This is the base URL for the Celcat API Yes String https://myDomain.com  
    Parameter Input Option Sets the type of User Input Identifier that is needed Yes Drop-down    
    Token Property Name This is a type of User Input Identifier that can be used Yes, if the Parameter Input Option selected was "Token Property" String    
    Constant Value This is a type of User Input Identifier that can be used Yes, if the Parameter Input Option selected was "Constant" String    
    Authentication Type Sets the API authentication type No Drop-down    
    API Code This is required to authenticate with Celcat Yes String    
    Username Resource Type Sets the supported Celcat resource type that matches the campusM username attribute Yes Drop-down    
    Timetable ID Sets the Celcat ID of the timetable to fetch events from Yes Integer    
    Start of Academic Timetable Year Sets the first month of the academic year; the feed needs to know this Yes Drop-down    
    Timezone Configuration  
    Timezone Configuration Option Sets how the date should be handled that is returned from the API Yes Drop-down ISO Standards  
    Select Timezone If you selected "Single Timezone" for the Timezone Configuration Option, then this field will specify which timezone to use Yes Drop-down UTC  
    Field Name If you selected "Multiple Timezones" for the Timezone Configuration Option, then this field will specify which attribute in the response indicates the location Yes String    
    Field Value If you selected "Multiple Timezones" for the Timezone Configuration Option, then this field will specify what value should indicate the specific timezone Yes String    
    Timezone If you selected "Multiple Timezones" for the Timezone Configuration Option, then this field will specify what timezone should be used Yes Drop-down    
    General  
    Use Location URL? If this is checked, the app will use the location URL specified in the PI data feed, over the location reference value (used to deep link to a position within the maps component) No Checkbox False  
    Import/Export Configuration  
    Export Creates a JSON file with the product integration configuration No      
    Import Use this option in order to load configuration information from JSON of an exported product integration No      

    Configuration for RESTful API Vendor

    The following table describes the configuration options available for the RESTful API vendor:
    Configuration Option Description Mandatory Data Type Default Example
    Enable Product Integration Select to enable the product integration on the user's campusM app No Check box Yes Select to enable the product integration on the user's campusM app.
    Product Integration Description A description of the product integration for internal use Yes Description    
    Vendor Name Select API No      
    Date Format The date format for the data returned in the feed No   yyyy-MM-dd HH:mm:ss:SSS  
    URL to retrieve the information The URL for the Web service No   https://  
    Response Content Type The Web service’s response content type No   JSON  
    URL Query Parameters The parameters sent as part of the query No   For https://someHostName/serviceName?username={user}, the query parameter is username.  
    URL Path Parameters The parameters sent as part of the path No   For https://someHostName/serviceName/username, the path parameter is username.  
    General Headers Add (key, value) for additional needed headers No      
    Authentication Type Select one of the following options:
    • No Auth
    • Basic Auth
    • API Key
    • Bearer token
    • OAuth Using User App Authentication – select an OAuth integration profile (from the Integration Profiles configured in App Settings) and choose where the access token should be added, Header or URL.
    • OAUTH Using Client Credentials – select this if you are using a preliminary token call to get the access token.
    No      
    Time Zone Configuration Select an option to determine how to take into account the time zone when handling the time returned from the API. The following options are available:
    • ISO standards – handle the time zone according to ISO standards
    • Single Time zone – select a default time zone for all of your events and locations
    • Multiple Time zones – select a different time zone for each location. Enter the field name to contain the location information to use to distinguish between multiple locations with different time zones.
    No      
    If the Response Content Type is configured to be iCalendar, additional fields appear. The following table describes the configuration options available for iCalendar:
    Configuration Option Description Mandatory Data Type Default Example
    Teacher Email Property Name The property name for the email of the teacher No String - X-PROPERTY-TEACHER-EMAIL
    Location Code Property Name

    The property name for the location code

    (Click on the location will link out the user to campus maps. This must be a unique identifier for the location you want to link to in campus maps. The data type can be any string, and must be set as the location reference for the position in the App Manager)

    No String - X-PROPERTY-LOCATION-CODE
    Location Image Property Name The property name for the location image No String - X-PROPERTY-LOCATION-IMAGE
    Location Address No. 2 Property Name The property name for the location secondary address No String - X-PROPERTY-LOCATION-ADDRESS-2
    Location Work Phone Number Property Name The property name for the contact number of the event location or organizer No String - X-PROPERTY-LOCATION--WORK-PHONE
    Location Post Code Property Name The property name for the location post code No String - X-PROPERTY-LOCATION-POST-CODE
    Location URL Property Name The property name for the URL that can be sent in the response. can be a campusM URL scheme / standard HTTP link No String - X-PROPERTY-LOCATION-URL
    Location Latitude Property Name The property name for the latitude for the location Coordinates No String - X-PROPERTY-LOCATION-LATITUDE
    Location Longitude Property Name The property name for the longitude for the location Coordinates No String - X-PROPERTY-LOCATION-LONGITUDE
    Attendance Exclude Property Name The property name for the flag that defines whether or not to exclude the event from attendance monitoring. If this is not specified all events will have attendance monitoring enabled. Note that this is only relevant when campusM Attendance has been deployed. No String - X-PROPERTY-ATTENDANCE-EXCLUDE
    Meeting Property Name The property name for the meeting indicator  No String - X-MEETING
    Meeting URL Property Name The property name for the meeting URL  No String - X-MEETING-URL
    Meeting URL Description Property Name The property name for the meeting URL description  No String  - X-MEETING-URL-DESC

    Configuration for Banner API Vendor

    The following table describes the configuration options available for the Banner API vendor:
    Configuration Option Description Mandatory Data Type Default Example
    Enable Product Integration Select to enable the product integration on the user's campusM app No Check box Yes  
    Product Integration Description A description of the product integration for internal use Yes String    
    Vendor Name Banner Yes Drop-down    
    Base URL to retrieve the information URL for the webservice. Should be in the following format: https://<hostName>:<portNumber>/StudentApi/api/students/<BANNER_ID>/class-schedules Yes URL    
    User Input Identifier Select a parameter input option for Banner ID. Possible values: Username, Token Property, and Constant. Yes Drop-down For https://someHostName/serviceName/username, the path parameter is username  
    Authentication Type

    Authentication type against the web service

    No Drop-down No Auth  
    Time Zone Configuration Select an option to determine how to take into account the time zone when handling the time returned from the API. The following options are available:
    • ISO standards – handle the time zone according to ISO standards
    • Single Time zone – select a default time zone for all of your events and locations
    • Multiple Time zones – select a different time zone for each location. Enter the field name to contain the location information to use to distinguish between multiple locations with different time zones.
    No Drop-down    
    General  
    Use Location URL? If this is checked, the app will use the location URL specified in the PI data feed, over the location reference value (used to deep link to a position within the maps component) No Checkbox Unselected  
    Display Location Description Select to display the location description in the UI No Checkbox Unselected  
    Display Campus Description Select to display the campus description in the UI No Checkbox Unselected  
    Display Room Description Select to display the room number in the UI No Checkbox Unselected  

    Configuration for MyTimetable (Semestry) API Vendor

    The following table describes the configuration options available for the MyTimetable (Semestry) API vendor:
    Configuration Option Description Mandatory Data Type Default Example
    Enable Product Integration Select to enable the product integration on the user's campusM app No Check box Yes  
    Product Integration Description A description of the product integration for internal use Yes String    
    Vendor Name MyTimetable Yes Drop-down    
    Base URL to retrieve the information URL for the webservice.  Yes URL  

    https://someHost.com:portNumber

    https://myColleagueHost:5555

    User Input Identifier Select the source for your user identifier to send as the requestedAuth header on the MyTimetable API. Possible values: Username, Token Property, and Constant.  Yes Drop-down For https://someHostName/serviceName/username, the path parameter is username  
    Authentication Type Select one of the following options:
    • No Auth
    • Basic Auth
    • API Key
    • Bearer token
    • OAuth Using User App Authentication – select an OAuth integration profile (from the Integration Profiles configured in App Settings) and choose where the access token should be added, Header or URL.
    • OAUTH Using Client Credentials – select this if you are using a preliminary token call to get the access token.
    No Drop-down No Auth  
    Time Zone Configuration Select an option to determine how to take into account the time zone when handling the time returned from the API. The following options are available:
    • ISO standards – handle the time zone according to ISO standards
    • Single Time zone – select a default time zone for all of your events and locations
    • Multiple Time zones – select a different time zone for each location. Enter the field name to contain the location information to use to distinguish between multiple locations with different time zones.
    No Drop-down    

    Configuration for Ellucian Colleague (Custom) Vendor

    The following table describes the configuration options available for the Ellucian Colleague (Custom) vendor:
    Configuration Option Description Mandatory Data Type Default Example
    Enable Product Integration Select to enable the product integration on the user's campusM app No Check box Yes  
    Product Integration Description A description of the product integration for internal use Yes String    
    Vendor Name Ellucian Colleague (custom) Yes Drop-down    
    Base URL to retrieve the information URL for the webservice.  Yes URL  

    https://someHost.com:portNumber

    https://myColleagueHost:5555

    User Input Identifier Select a parameter input option for Banner ID. Possible values: Username, Token Property, and Constant. Yes Drop-down For https://someHostName/serviceName/username, the path parameter is username  
    Authentication Type Authentication type against the web service No Drop-down No Auth  
    Time Zone Configuration Select an option to determine how to take into account the time zone when handling the time returned from the API. The following options are available:
    • ISO standards – handle the time zone according to ISO standards
    • Single Time zone – select a default time zone for all of your events and locations
    • Multiple Time zones – select a different time zone for each location. Enter the field name to contain the location information to use to distinguish between multiple locations with different time zones.
    No Drop-down    

    Configuration for Ellucian Colleague (Web API) Vendor

    The following table describes the configuration options available for the Ellucian Colleague (Custom) vendor:
    Configuration Option Description Mandatory Data Type Default Example
    Enable Product Integration
    Select to enable the product integration
    Yes
    Checkbox
    Unchecked
     
    Product Integration Description
    A description of the product integration for internal use
    Yes
    String
     
     
    Vendor
    Vendor Name
    Colleague (Web API)
    Yes
    Drop-down
     
     
    URL to retrieve the information
    The URL for the API server. The protocol, hostname, and optionally port (if required) are needed.
    Yes
    String
    https://{Host}
    URL Query Parameters
    Any query parameters required for the Colleague (Web API) server. Currently none.
    No
    Parameter
     
     
    URL Path Parameters
    Any path parameters required for the Colleague (Web API ) server. Currently none.
    No
    Parameter
     
     
    General Headers
    Any additional headers required for the Colleague (Web API) server. We currently require one, set as follows:

    Header Key: X-CustomCredentials

    Header Value: colleaguewebapitoken
    The header key can be changed if your Colleague server accepts a different key name, but the value is cannot be changed.
    Yes
    Header
     
     
    Authentication Type
    Select one of the following options, according to your Colleague server setup:
    • No Auth
    • Basic Auth
    No
    Dropdown
     
    No Auth
    Parameter Input Option
    The parameter input option for Colleague ID required for the Colleague Web API.

    Possible values:
    Username, Token Property, and Constant. Typically, this is the user's "username" attribute.
    Yes
    Drop-down
     
    Username
    Web API
    Proxy ID
    Required to fetch the session token.
    Yes
    String
     
     
    Proxy Password
    Required to fetch the session token.
    Yes
    String
     
     
    Token Expiry
    The time in hours to store a web API session token for up to a maximum of 24 hours.
    No
    Integer
    1
     
    Start Of The Week
    The day that starts the week can vary in different locales. Please select from the list below if yours differs from the default.
    No
    Drop-down
    Monday
     
    Include Drops
    Include dropped credits when fetching grade records.
    No
    Boolean
    No
     
    Online Courses
    Display Online Courses
     
    No
    Checkbox
    Unchecked
     
    Text - "Online Meeting"
     
    No
    String
    Online Meeting
     
    Online Course Event Duration
    Events belonging to online courses often do not have meeting times set. Select the duration to use for these specific meetings.
    No
    Drop-down
    Display as 30-minute event
     
    Online Course Event Start Time
    Sets the start time for any course meetings that do not have meeting times set.
    No
    Drop-down
    08:00
     
    Timezone Configuration
    Timezone Configuration Option
    Sets how the date returned from the API should be handled
    Yes
    Dropdown
    ISO Standards
     
    Select Timezone
    If you selected Single Timezone for the Timezone Configuration option, this field specifies which time zone to use
    Yes
    Dropdown
    UTC
     
    Field Name
    If you selected Multiple Timezones for the Timezone Configuration option, this option specifies which attribute in the response indicates the location
    Yes
    String
     
     
    Field Value
    If you selected Multiple Timezones for the Timezone Configuration option, this field specifies what value should indicate the specific time zone
    Yes
    String
     
     
    Timezone
    If you selected Multiple Timezones for the Timezone Configuration option, this field specifies which time zone to use
    Yes
    Dropdown
     
     
    General
    Use Location URL?
    If this is checked, the app will use the location URL specified in the PI data feed, over the location reference value (used to deep link to a position within the maps component)
    No
    Checkbox
    Unchecked
     
    Import/Export Configuration
    Export
    Creates a JSON file with the product integration configuration
    No
     
     
     
    Import
    Use this option in order to load configuration information from JSON of an exported product integration
    No
     
     
     

    Configuration for Oracle PeopleSoft Vendor

    The following table describes the configuration options available for the Oracle PeopleSoft vendor:

    Configuration Option Description Mandatory Data Type Default Example
    Enable Product Integration Select to enable the product integration on the user's campusM app No Check box Yes  
    Product Integration Description A description of the product integration for internal use Yes String    
    Vendor Name Oracle PeopleSoft Yes Drop-down    
    URL to retrieve the information The URL for the Web service No   https://  
    URL Query Parameters The parameters sent as part of the query. If it is prompt param, select this checkbox. No   For:
    https://host?isconnectedquery=N&maxrows=0&prompt_uniquepromptname=USERNAME,START,END&prompt_fieldvalue=STUDNT,2020-04-06,2020-04-13&json_resp=true
    The regular query parameter is maxrows. The prompt param is USERNAME and its value is STUDNT.
     
    Authentication Type Select one of the following options:
    • No Auth
    • Basic Auth
    • API Key
    • Bearer token
    • OAuth Using User App Authentication – select an OAuth integration profile (from the Integration Profiles configured in App Settings) and choose where the access token should be added, Header or URL.
    • OAUTH Using Client Credentials – select this if you are using a preliminary token call to get the access token.
    No Drop-down No Auth  
    Time Zone Configuration Select an option to determine how to take into account the time zone when handling the time returned from the API. The following options are available:
    • ISO standards – handle the time zone according to ISO standards
    • Single Time zone – select a default time zone for all of your events and locations
    • Multiple Time zones – select a different time zone for each location. Enter the field name to contain the location information to use to distinguish between multiple locations with different time zones.
    No Drop-down    

    Configuration for Databee Exams Manager Vendor

    The following table describes the configuration options available for the Databee Exams Manager vendor:

    Configuration Option Description Mandatory Data Type Default Example
    Manage Integration
    Enable Product Integration Select to enable the product integration on the user's campusM app No Checkbox Yes  
    Product Integration Description A description of the product integration for internal use Yes String    
    Vendor
    Vendor Name Databee Exams Manager Yes Drop-down Vendor Name  
    Base URL to retrieve the information URL for the web service Yes URL   https://myDomain.com
    URL Query Parameters The parameters sent as part of the query. Yes    

    This vendor uses the following parameters:

    • event
    • unique
    General Headers Add (key, value) for additional needed headers Yes    

    This vendor uses the following header as the API key:

    • X-API-KEY
    Timezone Configuration
    Time Zone Configuration Option Sets how the date should be handled that is returned from the API Yes Drop-down   This vendor should use a single timezone configuration.
    Select Timezone If you selected "Single Timezone" for the Timezone Configuration Option, this field specifies which timezone to use Yes Drop-down UTC  
    Import/Export Configuration
    Export Creates a JSON file with the product integration configuration No      
    Import Use this option to load configuration information from JSON of an exported product integration        

    Configuration for Google Calendar Vendor

    The following table describes the configuration options available for the Google Calendar vendor:

    Configuration Option Description Mandatory Data Type Default Example
    Manage Integration
    Enable Product Integration Select to enable the product integration Yes Checkbox False  
    Product Integration Description A description of the product integration for internal use Yes String    
    Vendor
    Vendor Name Google Calendar Yes Drop-down    
    Calendar Type Sets whether the Google Calendar is Public or Private. Currently, only Public calendars are supported. Yes Drop-down Public  
    URL Query Parameters
    The parameters sent as part of the query
    Yes
     

    Set the following three query parameters.

    1. Query Parameter 1
      1. Parameter Name: timeMin
      2. Parameter Type: Request Options
      3. Request Parameter Name: start
      4. Request Parameter Date Format: yyyy-MM-dd'T'HH:mm:ss.SSS'Z'
    2. Query Parameter 2
      1. Parameter Name: timeMax
      2. Parameter Type: Request Options
      3. Request Parameter Name: end
      4. Request Parameter Date Format: yyyy-MM-dd'T'HH:mm:ss.SSS'Z'
    3. Query Parameter 3
      1. Parameter Name: singleEvents
      2. Parameter Type: Constant
      3. Constant Value: true

     

    URL Path Parameters
    The parameters sent as part of the path
    Yes
     

    Set the following path parameter.

    Parameter Name: calendarId

    Parameter Type: Constant

    Constant Value: This is the id specific to the Google Calendar you are trying to integrate with. The steps to grab this value can be found under the Google Calendar Vendor section of this page.

     
    API Authentication Select one of the following options:
    • No Auth
    • Basic Auth
    • API Key
    • Bearer token
    • OAuth Using User App Authentication – select an OAuth integration profile (from the Integration Profiles configured in App Settings) and choose where the access token should be added, Header or URL.
    • OAUTH Using Client Credentials – select this if you are using a preliminary token call to get the access token.
    Yes   For Public Google Calendars, an API Key is required. The Query Param Key is the actual string "key", but without the quotes. The Query Param Value comes from completing the prerequisites for this vendor. The steps to grab this value can be found under the Google Calendar Vendor section of this page.  
    Timezone Configuration
    Time Zone Configuration Option Sets how the date should be handled that is returned from the API Yes Drop-down ISO Standards  
    Select Timezone If you selected Single Timezone for the Timezone Configuration option, this field specifies which timezone to use Yes Drop-down UTC  
    Field Name
    If you selected Multiple Timezones for the Timezone Configuration option, then this field will specify which attribute in the response indicates the location Yes String    
    Field Value If you selected Multiple Timezones for the Timezone Configuration option, then this field will specify what value should indicate the specific timezone Yes String    
    Timezone If you selected Multiple Timezones for the Timezone Configuration option, then this field will specify what timezone should be used Yes Drop-down    
    General
    Use Location URL?
    If this is checked, the app uses the location URL specified in the PI data feed, over the location reference value (used to deep link to a position within the maps component) No Checkbox    
    Import/Export Configuration
    Export Creates a JSON file with the product integration configuration No      
    Import Use this option to load configuration information from JSON of an exported product integration        

    Configurations for Microsoft Graph API Vendor

    The following table describes the configuration options available for the Microsoft Graph API vendor:

    Configuration Option Description Mandatory Data Type Default Example
    Enable Product Integration Select to enable the product integration on the user's campusM app. No      
    Product Integration Description A description of the product integration for internal use Yes      
    Vendor Name Select MS Graph APIs Yes      
    Microsoft Graph APIs Configuration
    Delimiter The separator between the different roles returned in the displayName field. For example, in the following response, the delimiter is a hyphen (-):
    displayName: US-DC-FAC
    No One of the following:
    • -
    • /
    • ;
    • ,
    • No delimiter
    No delimiter  
    Tenant The tenant value in the path of the request can be used to control who can sign into the application. The allowed values are common for both Microsoft accounts and work or school accounts, organizations for work or school accounts only, consumers for Microsoft accounts only, and tenant identifiers such as the tenant ID Yes String    
    Client ID The Application ID that the registration portal assigned your app Yes String   6731..-..6914391e
    Client Secret The application secret that you created in the app registration portal for your app. It should not be used in a native app, because client secrets cannot be reliably stored on devices. It is required for Web apps and Web APIs that have the ability to store the client secret securely on the server side Yes String    
    Grant Type Must be client_credentials for the authorization code flow Yes String   client_credentials
    Scope The scopes requested in this leg must be equivalent to or a subset of the scopes requested in the first (authorization) leg. If the scopes specified in this request span multiple resource servers, then the v2.0 endpoint returns a token for the resource specified in the first scope Yes String   https://graph.microsoft.com/.default
    User Input Identifier
    Parameter Input Option

    User input identifier for MemberOf API

    Yes Input options   username
    Constant Value Enter the constant value        

    Getting Microsoft Calendar Event via campusM API with Sample GetTimetableMicrosoft Service Request

    The request URL should be as follows: 

    Request URL.

    For example: 
    Example Request.

    URL password, orgCode and password should be provided by your Ex Libris project or support contact by opening a CRM Salesforce request.
    Retrieve Calendar Request.
    • Was this article helpful?