[[:dev|Developer Reference]] / [[dev:api|AOS API Document]] / calendar ====== AOS Calendar API commands - RFC ====== \\ Date: 4 April 2001\\ Last Revision: 9 April 2001\\ Available: 9 April 2001\\ Status: Draft\\ Revision: 1\\ Compliant to AOS API Version: AOS 2.0b1\\ Web: http://www.afteroffice.com/dev/api/calendar.html\\ By fui@afteroffice.com\\ ------------------------------------------------------------------------------------------ **Description**\\ Retrieve calendar raw data and performing editing tasks. Use dir.cal.mms is find out the list of calendar available, use view.cal.mms to download the calendar data and ed.cal.mms to peform update.\\ **Index**\\ 1. [[dev:api:calendar#dir.cal.mms|dir.cal.mms]]: Obtain calendar files list\\ 2. [[dev:api:calendar#view.cal.mms|view.cal.mms]]: Obtain calendar raw data\\ 3. [[dev:api:calendar#ed.cal.mms|ed.cal.mms]]: Edit calendar item\\ 4. [[dev:api:calendar#crnew.cal.mms|crnew.cal.mms]]: Create new calendar\\ 5. [[dev:api:calendar#delcfn.cal.mms|delcfn.cal.mms]]: Delete calendar\\ ------------------------------------------------------------------------------------------ **Revision 1 (9 April 2001)**\\ Add "showBusy" flag in the Event record structure.\\ ------------------------------------------------------------------------------------------ ==== dir.cal.mms ==== **Command:** [SID].dir.cal.mms\\ Use: Obtain calendar files list\\ Access: HTTP\\ Method: POST and GET\\ Parameters case sensitive: NO\\ Where: [SID] = the user login session ID\\ **Result:**\\ Multiple-lines records, each line is the calendar file name\\ **Parameters:**\\ API = only 1 argument accepted: "LC"\\ ------------------------------------------------------------------------------------------ ==== view.cal.mms ==== **Command:** [SID].view.cal.mms\\ Use: Obtain calendar raw data\\ Access: HTTP\\ Method: POST and GET\\ Parameters case sensitive: NO\\ Where: [SID] = the user login session ID\\ **Parameters:** ^Key ^Mandatory ^Description ^Sample^ |api |Yes |Indicate the http query is for API, only 1 argument accepted: "LC" |lc| |y |No |The year of the calendar |2001| |m |No |The month of the calendar, integer. "Next" and "Prev" can be used. |12| |d |No |The day of the calendar, not effective here since the result returned will be always in chunk of month. |1| |f |No |The calendar file to view |Main| **Result:**\\ Multiple-lines records, with DEL (ASCII 8) as fields separator.\\ First field of each of the line (record) is a dataKey.\\ **DataKey**\\ DataKey describe the record. Each record (line) starts with a dataKey which is typically looks like: 1,1,1 or 1,email\\ **Predefined (Permanent) dataKeys:** ^dataKey ^Description^ |0 |total of calendar loaded| |0,dir |calendar file list| |0,file |current calendar file| |0,day |current day| |0,month |current month| |0,year |current year| **Event record dataKey**\\ AVO calendar are sharable, and therefore calendar data return by the API are multidimensional (aka complex). Event record dataKey has 3 column: x,y,z\\ All columns are always integer. Each column seperated by a comma. The first column of an event record dataKey is the calendar number. Calendar 1 is always the first calendar specified by the "f" key. Calendar 2 and so on are usually the shared calendar or the cascading calendar ("View also" calendar in AVO).\\ 2nd column of the event record dataKey represent the day in a calendar, and 3rd column represent the event number in the day.\\ E.g.: 1,7,1 = 1st event record in day 7 of calendar 1\\ **Event record structure:** ^Field No. ^Type ^Format ^Description ^Sample^ |1 |DataKey |String |Calendar raw data are returned as array, this is the key locate the data |1,1,1| |2 |Rsrvd |- |Reserved |-| |3 |Rsrvd |- |Reserved |-| |4 |longRef |Real |The event item unique reference |986269618.53469| |5 |ts |Long |Date and time of the event item, in seconds |Main| |6 |dura |Long |Duration of the event, in seconds |3600| |7 |title |String |Title of the event |Weekly meeting| |8 |desc |String |Description of the event. If description has more than one line, line break escape as "\r". |Agenda required| |9 |rmdTs |Long |Reminder data and time, in seconds |986356200| |10 |rmdRef |Long |Reference number for the Reminder |59177477046| |11 |rmdMethod |String |Reminding method, "mail", "SMS","mailsms" and "othermail" |mail| |12 |rmdVal |int |Reminding value, use this value to multiply with rmdUnit, and get result in seconds (Number of seconds before the event) |10| |13 |rmdUnit |int |Reminding value unit |60| |14 |rmdMail |String |Send reminding event to this email |support@afteroffice.com| |15 |repeat |- |Repeat the reminder (not supported) |N/A| |16 |showBusy |- |Show as busy |checked| **Special dataKey**\\ For each calendar, there are special dataKey that describe the calendar in more detail:\\ Eg: 1,email or 1,0\\ ^dataKey ^Description^ |x,email |The calendar (x) name and email (HTML escaped) of the shared calendar owner. If this calendar is belong to the user, it will be the name of the calendar.| |x,0 |Up bound (day) of the calendar (x). E.g.: User has events until day 8 of the month, this value will be 8.| |x,y,0 |Up bound (event) of the day (y) in calendar (x). E.g.: User has 2 events in the day, this value will be 2, and therefore x,y,1 and x,y,2 contains valid event record.| **URL Sample:**\\ http://afteroffice.com/SIDxxx.view.cal.mms?api=lc\\ ------------------------------------------------------------------------------------------ ==== ed.cal.mms ==== **Command:** [SID].ed.cal.mms\\ Use: Update, create or delete event.\\ Access: HTTP\\ Method: POST and GET\\ Parameters case sensitive: NO\\ Where: [SID] = the user login session ID\\ **Result:** \\ **Parameters:** ^Key ^Mandatory ^Description ^Sample^ |api |Yes |Indicate the http query is for API, only 1 argument accepted: "LC" |lc| |f |Yes |Calendar file name |Main| |y |No |Event original Year. Required if you try to update or delete an event. |2001| |m |No |Event original Month. Required if you try to update or delete an event. |1| |d |No |Event original Day. Required if you try to update or delete an event. |1| |r |No |Event longRef (reference) number. Required if you try to update or delete an event. If this key is not specify, new event record will be created. |986269618.53469| |title |No |Event title |Meeting| |desc |No |Event description |Weekly| |dhour |No |Event duration in hour |1| |dmin |No |Event duration in minute. To specify an event which is 3:30 hour, set dhour to 3 and dmin to 30. |20| |rmd |No |Turn on reminder. "Checked" to turn on, empty to turn off |Checked| |rmdVal |No |Reminding value before the event invoke, use this value to multiply with rmdUnit, and get result in seconds (Number of seconds before the event) |10| |rmdUnit |No |Reminding value unit, in second. To specify 10 minutes, set rmdVal to 10 and rmdUnit to 60. To specify 1 hours, set rmdVal to 1 and rmdUnit to 3600 (or rmdVal to 60 and rmdUnit to 60) |60| |rmdMail |No |Send reminding event to this email |name@abc.com| |rmdMethod |No |Reminding method, "mail", "SMS","mailsms" and "othermail" |mail| |th |Yes |Event time (hour) |12| |tm |Yes |Event time (minute) |30| |tap |Yes |Event time (AM or PM) |AM| |year |Yes |Event year |2001| |month |Yes |Event month |1| |day |Yes |Event day |1| |del |No |Delete the event. Specify a non-empty value to indicate delete the event instead of update. |del| ------------------------------------------------------------------------------------------ ==== crnew.cal.mms ==== **Command:** [SID].crnew.cal.mms\\ Use: Create new calendar.\\ Access: HTTP\\ Method: POST and GET\\ Parameters case sensitive: NO\\ Where: [SID] = the user login session ID\\ **Result:** \\ **Parameters:** ^Key ^Mandatory ^Description ^Sample^ |api |Yes |Indicate the http query is for API, only 1 argument accepted: "LC" |lc| |n |Yes |The new calendar name. 27 chars max. |my calendar| ------------------------------------------------------------------------------------------ === crnew.cal.mms === **Command:** [SID].crnew.cal.mms\\ Use: Delete calendar file.\\ Access: HTTP\\ Method: POST and GET\\ Parameters case sensitive: NO\\ Where: [SID] = the user login session ID\\ **Result:** \\ **Parameters:** ^Key ^Mandatory ^Description ^Sample^ |api |Yes |Indicate the http query is for API, only 1 argument accepted: "LC" |lc| |c |Yes |The calendar file to delete |my calendar|