Skip to content
An ultra lightweight, dependency-free JavaScript library to easily manage SharePoint calendar events.
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.


An ultra lightweight, dependency-free JavaScript library to easily manage SharePoint calendar events.

The painful process of obtaining recurring events, matching user provided datetimes with events, and determining time conflicts is tortorous and requires multiple dependencies and lots of code. SP Calendar Pro simplifies this process enormously.


    listName: "StaffSchedule"
}).ready(function(data, obj) {
    if (obj.error) console.error( obj.error );
    console.table( data );


  1. Easily collects recurring calendar events.
  2. Provides a simple way to collect requested datetime values the user.
  3. Provides several methods to easily facilitate various datetime comparisons. Match specified datetimes: matchDateTimes(), determine time conflicts: isTimeConflict(), same dates: isSameDate(), etc).
  4. A basic 'where' property to filter down the returned data in the CAML query.
  5. Returns regular list items along with calendar events.
  6. Option to disable calendar drag and drop: spcalpro.disableDragAndDrop()
  7. Requires zero dependencies! Everything is pure vanilla JS.
  8. Compatible for all SharePoint versions- 2010, 2013, 2016, 2019, and SP Online.
  9. Lightweight! 6 KB minified, 15 KB unminified, with comments.


The code below will:

  1. Asynchronously collect all events (single and recurring) from the StaffSchedule calendar list.
  2. Return only the events have a Title of Homer Simpson.
  3. Compare the returned calendar events to see if any pose a time conflict with the datetimes provided in the .isTimeConflict() parameters.

    listName: "StaffSchedule",
    async: true,
    where: "Title = Homer Simpson"
}).ready(function(data, obj) {
    if (obj.error) console.error(obj.error);
    var homerJSimpson = obj.isTimeConflict("2019-03-01 00:00:00", "2019-04-01 00:00:00");
    console.table( homerJSimpson );

Full documentation can be found here:

You can’t perform that action at this time.