2. Please Note
IBM’s statements regarding its plans, directions, and intent are subject to change or withdrawal without notice at IBM’s sole
discretion.
Information regarding potential future products is intended to outline our general product direction and it should not be
relied on in making a purchasing decision.
The information mentioned regarding potential future products is not a commitment, promise, or legal obligation to deliver
any material, code or functionality. Information about potential future products may not be incorporated into any contract.
The development, release, and timing of any future features or functionality described for our products remains at our sole
discretion
Performance is based on measurements and projections using standard IBM benchmarks in a controlled environment.
The actual throughput or performance that any user will experience will vary depending upon many factors, including
considerations such as the amount of multiprogramming in the user’s job stream, the I/O configuration, the storage
configuration, and the workload processed. Therefore, no assurance can be given that an individual user will achieve
results similar to those stated here.
2
4. Calendar and Scheduling APIs
Introduced in Notes and Domino 9.0
Create, read, or modify calendar data
–
Uses the iCalendar data format
–
Encapsulates the complex Domino calendar schema
–
Implicit scheduling takes care of sending out notifications
Perform common calendar workflow actions on calendar entries or notices
–
Accept, decline, cancel, etc
4
Extended in 9.0.1
–
Added switches and methods based on demand – will cover changes within
–
REST calendar service added to Domino out of the box
5. Calendar and Scheduling APIs: Multi-layered
IBM API Offering
iCal>JSON
Design
Partners
Open Source
JavaScript web apps (JSON)
Rest Services
Web apps using iCalendar
JavaScript
Java Classes
LotusScript Classes
C SDK
Core N/D Logic
5
OpenNTF projects
Notes/Domino Java plugins
iCalendar parsers (iCal4J,
libical, etc)
XPages apps
Traditional Domino apps
6. Calendar and Scheduling APIs: What is iCalendar?
6
iCalendar is text-based calendar information that follows the industry-accepted
iCalendar data format, defined in RFC 5545.
Easily created or interpreted using open source (ie. iCal4J)
BEGIN:VCALENDAR
PRODID:-//Nate//MySampleApp//EN
BEGIN:VEVENT
DTSTART:20140308T140000Z
DTEND:20140308T150000Z
UID:MyUniqueEventIdentifier_0123456_NatesApp
TRANSP:OPAQUE
SUMMARY:My first event!
END:VEVENT
END:VCALENDAR
»
7. Calendar and Scheduling APIs: Backend classes
NotesCalendar
–
A representation of a single user's personal calendar
NotesCalendarEntry
–
A representation of a single entry on a user's calendar
NotesCalendarNotice
–
A representation of a calendar workflow notice that would arrive from another user
(usually in the inbox)
7
8. Calendar and Scheduling APIs: NotesCalendar class
Read view level data as iCalendar
Get lists of entries or notices that meet criteria
Get a specific entry or notice
Create an entry
–
Implicit scheduling capabilities
–
New: Create with HTML description
–
New: Consistent UID->Apptunid mapping
Utility methods
–
New: String getApptunidFromUID( String UID)
8
10. Calendar and Scheduling APIs: NotesCalendarEntry class
Read as iCalendar
Update (with iCalendar)
–
Implicit scheduling capabilities
–
New: Update with HTML description
–
New: Informational series updates to repeating meetings
–
New: Series updates to repeating appointments
–
New: “Smart Sequence” updates
10
11. Calendar and Scheduling APIs: NotesCalendarEntry class
11
Take action on a calendar entry or repeating instance/range (without iCalendar):
–
Accept, decline, delete, cancel, delegate, counter, etc
–
New: Add and/or remove invitees
Open as a document
–
New: Ability to open the “parent” note
Get “unprocessed” notices
–
Get any outstanding invitations, reschedules, updates, or cancels from organizer
13. Calendar and Scheduling APIs: NotesCalendarNotice class
Read a notice as iCalendar
Take action on a calendar notice:
–
Accept, decline, delete, cancel, delegate, counter, accept counter, etc
Get a notice as a Document
Get all unaccepted invitation(s) that correspond to this meeting
13
22. Session
Vector Session.freeResourceSearch( DateTime start, DateTime end,
String site,
int type,int maxresult,
String user,
int mincapacity,
String apptUNID,
String server,
int outputversion)
Type constants:
CAL_RESOURCE_TYPE_ROOM
CAL_RESOURCE_TYPE_OTHER
Outputversion constants:
AVAILABLERESOURCESLOOKUP_VERSION_0
22
23. Session
Session.freeResourceSearch
Output format for initial version:
AVAILABLERESOURCESLOOKUP_VERSION_0
Java:
Vector of strings, each entry is composite, separated by semicolon
ResourceName;Capacity;Email;
LS:
Array of strings, same format
ResourceName;Capacity;Email;
23
27. AutoExpand Guidance
27
Last piece of the Xpage Client display problem
Explicit high speed control over View entry expansion
Inputs:
–
NoteIDs
–
Expand list
–
Collapse list
38. Expand & Collapsed Lists
Ways to get them
38
GetAllDocumentsByKey
DocumentCollection.getNoteIDs
Enumerate ViewNavigator with MaxLevel set
Track Entries based on UI Interactions
Search for them with FTSearch
Formula evaluation in a NoteCollection
Logical operations on multiple DocumentCollections
44. Calendar and Scheduling APIs: REST Calendar Service
Included in 9.0.1 (disabled by default)
Exposes calendar functionality over HTTP
–
De-couples from language and OS requirements
–
Allows use without a Notes/Domino install
Offers both iCalendar and JSON data formatting, for easier JavaScript parsing
44
47. Engage Online
SocialBiz User Group socialbizug.org
– Join the epicenter of Notes and Collaboration user groups
Follow us on Twitter
Engage
– @IBMConnect and @IBMSocialBiz
Online
LinkedIn http://bit.ly/SBComm
– Participate in the IBM Social Business group on LinkedIn:
Facebook https://www.facebook.com/IBMSocialBiz
– Like IBM Social Business on Facebook
Social Business Insights blog ibm.com/blogs/socialbusiness
– Read and engage with our bloggers
47
48. Access Connect Online to complete your session surveys using any:
– Web or mobile browser
– Connect Online kiosk onsite
48