{
    "$schema": "http://json-schema.org/draft-04/schema#",
    "title": "Outlook Tasks Schema",
    "type": "object",
    "properties": {
        "totalItems": {
            "type": "integer",
            "description": "Number of task items",
            "minimum": 0
        },
        "moreItemsAvailable": {
            "type": "boolean",
            "description": "Whether more pages can be retrieved after this page"
        },
        "currentStartIndex": {
            "type": "integer",
            "description": "Start row of the items in this page",
            "minimum": 0
        },
        "currentMaxItems": {
            "type": "integer",
            "description": "Maximum number of items on this page"
        },
        "nextStartIndex": {
            "type": "integer",
            "description": "Value to use for the start index to retrieve the next page, if there is a next page.  -1 means there is no next page.",
            "minimum": -1
        },
        "currentSortField": {
            "type": "string",
            "description": "The field on which the current page is sorted"
        },
        "currentSortAscending": {
            "type": "boolean",
            "description": "Whether this page is sorted ascending (true) or descending (false)"
        },
        "items": {
            "description": "List of task items",
            "type": "array",
            "minItems": 0,
            "items": {
                "type": "object",
                "properties": {
                    "id": {
                        "type": "string",
                        "description": "MS Exchange ID for this item"
                    },
                    "subject": {
                        "type": "string"
                    },
                    "created": {
                        "type": "string",
                        "description": "Create date, in JSON date format"
                    },
                    "modified": {
                        "type": "string",
                        "description": "Modify date, in JSON date format"
                    },
                    "body": {
                        "type": "string",
                        "description": "Message body, in HTML 4.01 format"
                    },
                    "size": {
                        "type": "integer",
                        "minimum": 0,
                        "description": "size of the message body"
                    },
                    "sentDate": {
                        "type": "string",
                        "description": "Sent date, in JSON date format"
                    },
                    "dueDate": {
                        "type": "string",
                        "description": "Due date, in JSON date format"
                    },
                    "startDate": {
                        "type": "string",
                        "description": "Start date, in JSON date format"
                    },
                    "completeDate": {
                        "type": "string",
                        "description": "Complete date, in JSON date format"
                    },
                    "complete": {
                        "type": "boolean"
                    },
                    "percentComplete": {
                        "type": "number",
                        "minimum": 0,
                        "maximum": 100
                    },
                    "endDate": {
                        "type": "string",
                        "description": "End date, in JSON date format"
                    }
                }
            }
        }
    }
}