The CData Sync App provides a straightforward way to continuously pipeline your Microsoft Exchange data to any database, data lake, or data warehouse, making it easily available for Analytics, Reporting, AI, and Machine Learning.
The Microsoft Exchange connector can be used from the CData Sync application to pull data from Microsoft Exchange and move it to any of the supported destinations.
The CData Sync App connects with the REST API.
For required properties, see the Settings tab.
For connection properties that are not typically required, see the Advanced tab.
There are two schemas available for connecting to Exchange:
For a look at the data model for each of these schemas, see "Data Model".
To switch between EWS and Microsoft Graph, set Schema to either EWS or MSGraph.
Exchange Online users who still want to use EWS should set Schema to EWS and the Platform to Exchange_Online.
If you are connecting to Exchange Online platform through EWS, set AuthScheme to AzureAD, AzureServicePrincipal, or AzureMSI.
If you connect to Exchange Online through Microsoft Graph, set Schema to MSGraph.
Authentication to Azure AD over a Web application always requires the creation of a custom OAuth application .
For details about creating a custom OAuth application, see Creating an Azure AD Application.
Azure Service Principal is role-based application-based authentication. This means that authentication is done per application, rather than per user. All tasks taken on by the application are executed without a default user context, but based on the assigned roles. The application access to the resources is controlled through the assigned roles' permissions.
For information about how to set up Azure Service Principal authentication, see Creating an Azure AD App with Service Principal.
If you are running Microsoft Exchange on an Azure VM and want to automatically obtain Managed Service Identity (MSI) credentials to connect, set AuthScheme to AzureMSI.
If your VM has multiple user-assigned managed identities, you must also specify OAuthClientId.
The CData Sync App can be used to perform administrative tasks with MSGraph Schema. This can be done by specifying the UserId column to execute CUD operations.
Many tables expose a special UserId column. This is designed to be used by an administrator to modify records on another user's account. If
you are not an administrator or do not desire this behavior, do not specify the UserId when performing an INSERT / UPDATE / DELETE operation.
For instance, executing the following will insert a contact for another user:
INSERT INTO Contacts (displayName, CompanyName, UserId) VALUES ('Bill', 'Bob Co', '12345')
The above request will have the overall effect of attempting to add a contact under the resource at /users/12345/contacts. When UserId is not specified, the resources affected will instead be modified under /users/me/contacts. In general if you are not an administrator, you can only affect or view records under /users/me, so it is not recommended to set UserId when you are not an admin.
Note: Specifying UserId in conjunction with an 'OR' operator of any given query is not supported. As an alternative you can use 'UNION' to retrieve the same result set.
Note: The following describes the behavior when Schema is set to EWS. It has no impact on MSGraph.
SELECT ItemId, Surname, EmailAddress1 FROM Contacts WHERE Surname='Smith'
If you wish to request the contents of a message or more information about a contact or calendar event, you will need to set IncludeContent to TRUE, specify the ItemIds of the items, or limit your results to a single item. For example:
SELECT ItemId, Surname, EmailAddress1 FROM Contacts WHERE ItemId='AZQ111222...'OR
SELECT ItemId, Surname, EmailAddress1 FROM Contacts WHERE ItemdId IN ('AZQ111222...', 'AZQ111223...', 'AZQ111224...', 'AZQ111225...')
OR
SELECT ItemId, Surname, EmailAddress1 FROM Contacts WHERE Surname='Smith' LIMIT 1
Finding the FolderId of a subfolder of the Inbox:
SELECT DisplayName, FolderId FROM InboxFinding the FolderId of a Custom Folder that contains Contacts:
SELECT DisplayName, FolderId FROM Contacts WHERE ParentFolderName='publicfoldersroot'
If your public folder is nested, you may need to do a separate SELECT query on the parent custom folder:
SELECT DisplayName, FolderId FROM Contacts WHERE ParentFolderId='AAEuAAAAAAAa...'
Inserting into a subfolder of the Inbox:
INSERT INTO Inbox (Subject, FromEmailAddress, ToRecipients_EmailAddress, ParentFolderId) VALUES ('New email message', '[email protected]', '[email protected]', 'AAEuAAAAAAAa...')
Inserting into a Public Folder that contains Contacts:
INSERT INTO Contacts (GivenName, Surname, EmailAddress1, ParentFolderId) VALUES ('Jill', 'Smith', '[email protected]', 'AAEuAAAAAAAa...')
Updating a Message item in a custom folder:
UPDATE Inbox SET Subject = 'Updated email message' WHERE ItemID = 'AZQ111222...')Deleting a Contact item from a Public Folder:
DELETE FROM Contacts WHERE ItemID = 'AZQ111222...')
This authentication method is typically used by administrators to configure access by a service account.
To impersonate all requests, set the following connection properties at connection time.
To impersonate a user for an individual query, use the pseudo columns of the same name.
This section details a selection of advanced features of the Microsoft Exchange Sync App.
The Sync App supports the use of user defined views, virtual tables whose contents are decided by a pre-configured user defined query. These views are useful when you cannot directly control queries being issued to the drivers. For an overview of creating and configuring custom views, see User Defined Views .
Use SSL Configuration to adjust how Sync App handles TLS/SSL certificate negotiations. You can choose from various certificate formats;. For further information, see the SSLServerCert property under "Connection String Options" .
Configure the Sync App for compliance with Firewall and Proxy, including Windows proxies and HTTP proxies. You can also set up tunnel connections.
For further information, see Query Processing.
By default, the Sync App attempts to negotiate TLS with the server. The server certificate is validated against the default system trusted certificate store. You can override how the certificate gets validated using the SSLServerCert connection property.
To specify another certificate, see the SSLServerCert connection property.
To authenticate to an HTTP proxy, set the following:
Set the following properties:
The CData Sync App models the Microsoft Exchange 2 and Microsoft Exchange APIs as relational tables, views, and stored procedures. These are defined in schema files, which are simple, text-based configuration files.
The available entities, as well as any API limitations and requirements for querying these entities, are documented in EWS Data Model and MSGraph Data Model.
The Data Models illustrate an example of what your Microsoft Exchange environment might look like. The actual data model will be obtained dynamically based on your Microsoft Exchange account.
EWS Data Model describes the schemas available to connect to Microsoft Exchange OnPremise and Microsoft Exchange Online using EWS. You can use tables to work with live Microsoft Exchange data. You can use stored procedures provided by CData Sync App to automate working with Microsoft Exchange data.
MSGraph Data Model describes the schemas available to connect to Microsoft Exchange Online accounts via the Microsoft Graph. You can use tables to work with live Microsoft Exchange data. You can use stored procedures provided by CData Sync App to automate working with Microsoft Exchange data.
The CData Sync App models Microsoft Exchange entities as relational Tables and Stored Procedures. These are defined in schema files, which are simple, text-based configuration files.
API limitations and requirements are documented in this section; you can use the SupportEnhancedSQL feature, set by default, to circumvent most of these limitations.
Stored Procedures are function-like interfaces to Microsoft Exchange. They can be used to search, update, and modify information in Microsoft Exchange.
The Sync App models the data in Microsoft Exchange as a list of tables in a relational database that can be queried using standard SQL statements.
| Name | Description |
| Calendar | Create, update, delete, and query Calendar items. |
| Calendar_OptionalAttendees | The optional attendees for a particular event. An ItemId must be specified when querying this view. |
| Calendar_RequiredAttendees | The required attendees for a particular event. An ItemId must be specified when querying this view. |
| Contacts | Create, update, delete, and query Contacts items. |
| DeletedItems | Create, update, delete, and query Deleted Items. |
| Drafts | Create, update, delete, and query Drafts items. |
| Folders | Create, update, delete, and query subfolders for a given folder. |
| Inbox | Create, update, delete, and query Inbox items. |
| JunkEmail | Create, update, delete, and query Junk Email items. |
| Outbox | Create, update, delete, and query Outbox items. |
| SentItems | Create, update, delete, and query Sent Items. |
| Tasks | Create, update, delete, and query Tasks items. |
Create, update, delete, and query Calendar items.
The Sync App will need the ItemChangeKey to update or delete an item. However, if you are unsure of the ItemChangeKey, the Sync App is able to retrieve it from the Exchange server automatically. Note that this may increase the time it takes to perform a query.
When performing a SELECT operation on the Calendar table, the Sync App will not include individual recurring events by default (only the master item
will be included). Your query will need to include a WHERE clause similar to the following:
SELECT Subject, IsRecurring, Recurrence_StartDate, Recurrence_EndDate, Recurrence_Interval, Recurrence_Type, Recurrence_NumberOfOccurrences, FirstOccurrence_Start FROM Calendar WHERE ItemId = 'myid'If you wish to view the individual recurrences of a recurring event, you'll need to add filters START and END with greaterthan and lessthan operators respectively. The interval between START and END should not be more than 2 years. The API will return atmost 1000 entries for recurring events. Please give the interval between START and END filters accordingly. Your query will need to include a WHERE clause similar to the following:
SELECT * FROM Calendar WHERE start >= '2021-05-11 00:50:59.0' AND end <= '2023-02-28 11:20:30.0'
| Name | Type | ReadOnly | Description |
| ItemId [KEY] | String | True |
Contains the unique identifier of an item in the Exchange store. This property is read-only. |
| MimeContent | String | True |
Contains the native Multipurpose Internet Mail Extensions (MIME) stream of an object that is represented in Base64 binary format. |
| ItemChangeKey | String | True |
Contains the unique change key of an item in the Exchange store. This property is read-only. |
| ParentFolderId | String | False |
Represents the unique identifier of the parent folder that contains the item or folder. This property is read-only. |
| ParentFolderChangeKey | String | True |
Represents the unique change key of the parent folder that contains the item or folder. This property is read-only. |
| ItemClass | String | False |
Represents the message class of an item. |
| Subject | String | False |
Represents the subject for Exchange store items and response objects. The subject is limited to 255 characters. |
| Sensitivity | String | True |
Indicates the sensitivity level of an item. |
| Body | String | False |
Body of the Calendar Item. |
| DateTimeReceived | Datetime | True |
Represents the date and time that an item in a mailbox was received. |
| Size | Integer | True |
Represents the size in bytes of an item. This property is read-only. |
| Categories | String | False |
Represents a collection of strings that identify to which categories an item in the mailbox belongs. |
| Importance | String | False |
Describes the importance of an item. |
| InReplyTo | String | True |
Represents the identifier of the item to which this item is a reply. |
| IsSubmitted | Boolean | True |
Indicates whether an item has been submitted to the Outbox default folder. |
| IsDraft | Boolean | True |
Represents whether an item has not yet been sent. |
| IsFromMe | Boolean | True |
Indicates whether a user sent an item to himself or herself. |
| IsResend | Boolean | True |
Indicates whether the item had previously been sent. |
| IsUnmodified | Boolean | True |
Indicates whether the item has been modified. |
| InternetMessageHeaders | String | True |
Represents the collection of all Internet message headers that are contained within an item in a mailbox. |
| DateTimeSent | Datetime | True |
Represents the date and time that an item in a mailbox was sent. |
| DateTimeCreated | Datetime | True |
Represents the date and time that a given item in the mailbox was created. |
| ReminderDueBy | Datetime | False |
Represents the date and time when the event occurs. |
| ReminderIsSet | Boolean | False |
Indicates whether a reminder has been set for an item in the Exchange store. |
| ReminderMinutesBeforeStart | Integer | False |
Represents the number of minutes before an event occurs when a reminder is displayed. |
| DisplayCc | String | True |
Represents the display string that is used for the contents of the To box. This is the concatenated string of all To recipient display names. |
| DisplayTo | String | True |
Represents a property that is set to true if an item has at least one visible attachment. This property is read-only. |
| HasAttachments | Boolean | True |
Indicates whether an item has attachments. |
| Culture | String | False |
Represents the Culture of an item. |
| Start | Datetime | False |
Represents the start of a duration. |
| End | Datetime | False |
Represents the end of a duration. |
| OriginalStart | Datetime | False |
Represents the original start time of a calendar item. |
| IsAllDayEvent | Boolean | False |
Indicates whether a calendar item or meeting request represents an all-day event. |
| LegacyFreeBusyStatus | String | False |
Represents the free/busy status of the calendar item. |
| Location | String | False |
Represents the location of a meeting, appointment, or persona. |
| When | String | False |
Provides information about when a calendar or meeting item occurs. |
| IsMeeting | Boolean | False |
Indicates whether the calendar item is a meeting or an appointment. |
| IsCancelled | Boolean | False |
Indicates whether an appointment or meeting has been cancelled. |
| IsRecurring | Boolean | True |
Indicates whether a calendar item, meeting request, or task is part of a recurring item. This element is read-only. |
| MeetingRequestWasSent | Boolean | True |
Indicates whether a meeting request has been sent to requested attendees. |
| IsResponseRequested | Boolean | True |
Indicates whether a response to an item is requested. |
| CalendarItemType | String | True |
Represents the type of a calendar item. |
| MyResponseType | String | False |
Contains the status of or response to a calendar item. |
| OrganizerName | String | False |
Defines the name of the mailbox user. |
| OrganizerEmailAddress | String | False |
Defines the Simple Mail Transfer Protocol (SMTP) address of the Organizer mailbox user. |
| OrganizerRoutingType | String | False |
Defines the routing that is used for the Organizer mailbox. The default is SMTP. |
| ConflictingMeetingCount | Integer | True |
Represents the number of meetings that conflict with the calendar item. |
| AdjacentMeetingCount | Integer | True |
Represents the total number of calendar items that are adjacent to a meeting time. |
| Duration | String | True |
Represents the duration of a calendar item. |
| TimeZone | String | True |
Provides a text description of a time zone. |
| AppointmentReplyTime | Datetime | False |
Represents the date and time that an attendee replied to a meeting request. |
| AppointmentSequenceNumber | String | False |
Specifies the sequence number of a version of an appointment. |
| AppointmentState | String | True |
Specifies the status of the appointment. |
| Recurrence_Type | String | False |
Contains the recurrence type for calendar items and meeting requests. The allowed values are RelativeYearlyRecurrence, AbsoluteYearlyRecurrence, RelativeMonthlyRecurrence, AbsoluteMonthlyRecurrence, WeeklyRecurrence, DailyRecurrence. |
| Recurrence_DaysOfWeek | String | False |
Describes days of the week that are used in item recurrence patterns. |
| Recurrence_DayOfWeekIndex | String | False |
Describes which week in a month is used in a relative yearly recurrence pattern. The allowed values are First, Second, Third, Fourth, Last. |
| Recurrence_Month | String | False |
Describes the month when a yearly recurring item occurs. |
| Recurrence_DayOfMonth | Integer | False |
Describes the day in a month on which a recurring item occurs. |
| Recurrence_Interval | Integer | False |
Defines the interval between two consecutive recurring items. |
| Recurrence_FirstDayOfWeek | String | False |
Specifies the first day of the week. |
| Recurrence_Duration | String | False |
Contains the recurrence duration type for calendar items and meeting requests. The allowed values are NoEndRecurrence, EndDateRecurrence, NumberedRecurrence. |
| Recurrence_StartDate | Date | False |
Represents the start date of a recurring task or calendar item. |
| Recurrence_EndDate | Date | False |
Represents the end date of a recurring task or calendar item. |
| Recurrence_NumberOfOccurrences | Integer | False |
Contains the number of occurrences of a recurring item. |
| FirstOccurrence_ItemId | String | False |
Contains the unique identifier of the last occurrence of a recurring calendar item. |
| FirstOccurrence_Start | Datetime | False |
Represents the start time of the last occurrence of a recurring calendar item. |
| FirstOccurrence_End | Datetime | False |
Represents the end time of the last occurrence of a recurring calendar item. |
| FirstOccurrence_OriginalStart | Datetime | False |
Represents the original start time of the last occurrence of a recurring calendar item. |
| LastOccurrence_ItemId | String | False |
Contains the unique identifier of the last occurrence of a recurring calendar item. |
| LastOccurrence_Start | Datetime | False |
Represents the start time of the last occurrence of a recurring calendar item. |
| LastOccurrence_End | Datetime | False |
Represents the end time of the last occurrence of a recurring calendar item. |
| LastOccurrence_OriginalStart | Datetime | False |
Represents the original start time of the last occurrence of a recurring calendar item. |
| ModifiedOccurrences_Aggregate | String | True |
Modified occurrences of the calendar, as aggregate. |
| DeletedOccurrences_Aggregate | String | True |
Deleted occurrences as aggregate. |
| StartTimeZone_Id | String | True |
Represents the unique identifier of the time zone definition for the start time. |
| StartTimeZone_Name | String | True |
Represents the descriptive name of the time zone definition for the start time. |
| EndTimeZone_Id | String | True |
Represents the unique identifier of the time zone definition for the end time. |
| EndTimeZone_Name | String | True |
Represents the descriptive name of the time zone definition for the end time. |
| ConferenceType | Integer | False |
Describes the type of conferencing that is performed with a calendar item (0 = NetMeeting, 1 = NetShow, 2 = Chat. |
| AllowNewTimeProposal | Boolean | False |
Indicates whether a new meeting time can be proposed for a meeting by an attendee. |
| IsOnlineMeeting | Boolean | False |
Indicates whether the meeting is online. |
| MeetingWorkspaceUrl | String | False |
Contains the URL for the meeting workspace that is linked to by the calendar item. |
| NetShowUrl | String | False |
Specifies the URL for a Microsoft NetShow online meeting. |
| EffectiveRights_CreateAssociated | Boolean | True |
Indicates whether a client can create an associated contents table. |
| EffectiveRights_CreateContents | Boolean | True |
Indicates whether a client can create a contents table. |
| EffectiveRights_CreateHierarchy | Boolean | True |
Indicates whether a client can create a hierarchy table. |
| EffectiveRights_Delete | Boolean | True |
Indicates whether a client can delete a folder or item. |
| EffectiveRights_Modify | Boolean | True |
Indicates whether a client can modify a folder or item. |
| EffectiveRights_Read | Boolean | True |
Indicates whether a client can read a folder or item. |
| EffectiveRights_ViewPrivateItems | Boolean | True |
Indicates whether a private item can be viewed. |
| LastModifiedName | String | True |
Contains the display name of the last user to modify an item. |
| LastModifiedTime | Datetime | True |
Indicates when an item was last modified. |
| IsAssociated | Boolean | False |
Indicates whether the item is associated with a folder. |
| WebClientReadFormQueryString | String | True |
Represents a URL to concatenate to the Microsoft Office Outlook Web App endpoint to read an item in Outlook Web App. |
| WebClientEditFormQueryString | String | True |
Represents a URL to concatenate to the Outlook Web App endpoint to edit an item in Outlook Web App. |
| ConversationId | String | True |
Contains the identifier of an item or conversation. |
| ConversationChangeKey | String | True |
Contains the change key of an item or conversation. |
| UniqueBody | String | True |
Represents an HTML fragment or plain-text which represents the unique body of this conversation. |
| UniqueBodyType | String | True |
Describes how the unique item body is stored in the item (HTML or TEXT). |
Pseudo column fields are used in the WHERE clause of SELECT statements and offer a more granular control over the tuples that are returned from the data source.
| Name | Type | Description |
| ImpersonationUser | String |
The Identifier of the user to impersonate. |
| ImpersonationType | String |
The type of Identifier used for the impersonation user (PrincipalName, SID, PrimarySmtpAddress, SmtpAddress). |
| SendMeetingInvitations | String |
The allowed values are SendToNone, SendOnlyToAll, and SendToAllAndSaveCopy. The default is SendToNone. |
| SendCancellationsMode | String |
The allowed values are SendToNone, SendOnlyToAll, and SendToAllAndSaveCopy. The default is SendToNone. |
| SharedMailboxEmail | String |
The email of a shared mailbox. Use this to retrieve the calendar events in a shared mailbox. |
The optional attendees for a particular event. An ItemId must be specified when querying this view.
The Sync App will need the ItemChangeKey to update or delete an item. However, if you are unsure of the ItemChangeKey, the Sync App is able to retrieve it from the Exchange server automatically. Note that this may increase the time it takes to perform a query.
When performing a SELECT operation on the Calendar table, the Sync App will not include individual recurring events by default (only the master item
will be included). If you wish to view the individual recurrences of a recurring event, you'll need to filter the search by the IsRecurring column
and use Start and End to specify a time period. Your query will need to include a WHERE clause similar to the following:
INSERT INTO Calendar_OptionalAttendees (EmailAddress, ItemId, SendMeetingInvitations) VALUES ('[email protected]', 'itemid', 'SendOnlyToChanged')
| Name | Type | ReadOnly | Description |
| EmailAddress [KEY] | String | False | |
| ItemId [KEY] | String | False | |
| Name | String | False |
Pseudo column fields are used in the WHERE clause of SELECT statements and offer a more granular control over the tuples that are returned from the data source.
| Name | Type | Description |
| ImpersonationUser | String |
The Identifier of the user to impersonate. |
| ImpersonationType | String |
The type of Identifier used for the impersonation user (PrincipalName, SID, PrimarySmtpAddress, SmtpAddress). |
| SendMeetingInvitations | String |
The allowed values are SendToNone, SendOnlyToAll, SendOnlyToChanged and SendToAllAndSaveCopy. The default is SendToNone. |
The required attendees for a particular event. An ItemId must be specified when querying this view.
When performing an INSERT operation, you will need to specify EmailAddress and ItemId. Additionally, there is a property called SendMeetingInvitations you can set to decide who is notified when you insert required attendees.
INSERT INTO Calendar_RequiredAttendees (EmailAddress, ItemId, SendMeetingInvitations) VALUES ('[email protected]', 'itemid', 'SendOnlyToChanged')
| Name | Type | ReadOnly | Description |
| EmailAddress [KEY] | String | False | |
| ItemId | String | False | |
| Name | String | False |
Pseudo column fields are used in the WHERE clause of SELECT statements and offer a more granular control over the tuples that are returned from the data source.
| Name | Type | Description |
| ImpersonationUser | String |
The Identifier of the user to impersonate. |
| ImpersonationType | String |
The type of Identifier used for the impersonation user (PrincipalName, SID, PrimarySmtpAddress, SmtpAddress). |
| SendMeetingInvitations | String |
The allowed values are SendToNone, SendOnlyToAll, SendOnlyToChanged and SendToAllAndSaveCopy. The default is SendToNone. |
Create, update, delete, and query Contacts items.
The Sync App will need the ItemChangeKey to update or delete an item. However, if you are unsure of the ItemChangeKey, the Sync App is able to retrieve it from the Exchange server automatically. Note that this may increase the time it takes to perform a query.
| Name | Type | ReadOnly | Description |
| ItemId [KEY] | String | True |
Contains the unique identifier of an item in the Exchange store. This property is read-only. |
| MimeContent | String | True |
Contains the native Multipurpose Internet Mail Extensions (MIME) stream of an object that is represented in Base64 binary format. |
| ItemChangeKey | String | True |
Contains the unique change key of an item in the Exchange store. This property is read-only. |
| ParentFolderId | String | False |
Represents the unique identifier of the parent folder that contains the item or folder. This property is read-only. |
| ParentFolderChangeKey | String | True |
Represents the unique change key of the parent folder that contains the item or folder. This property is read-only. |
| ItemClass | String | False |
Represents the message class of an item. |
| Subject | String | False |
Represents the subject for Exchange store items and response objects. The subject is limited to 255 characters. |
| Sensitivity | String | True |
Indicates the sensitivity level of an item. |
| Body | String | False |
Represents the actual body content of a message. |
| DateTimeReceived | Datetime | True |
Represents the date and time that an item in a mailbox was received. |
| Size | Integer | True |
Represents the size in bytes of an item. This property is read-only. |
| Categories | String | False |
Represents a collection of strings that identify to which categories an item in the mailbox belongs. |
| Importance | String | False |
Describes the importance of an item. |
| IsSubmitted | Boolean | True |
Indicates whether an item has been submitted to the Outbox default folder. |
| InReplyTo | String | True |
Represents the identifier of the item to which this item is a reply. |
| IsDraft | Boolean | True |
Represents whether an item has not yet been sent. |
| IsFromMe | Boolean | True |
Indicates whether a user sent an item to himself or herself. |
| IsResend | Boolean | True |
Indicates whether the item had previously been sent. |
| IsUnmodified | Boolean | True |
Indicates whether the item has been modified. |
| InternetMessageHeaders | String | True |
Represents the collection of all Internet message headers that are contained within an item in a mailbox. |
| DateTimeSent | Datetime | True |
Represents the date and time that an item in a mailbox was sent. |
| DateTimeCreated | Datetime | True |
Represents the date and time that a given item in the mailbox was created. |
| ReminderDueBy | Datetime | False |
Represents the date and time when the event occurs. |
| ReminderIsSet | Boolean | False |
Indicates whether a reminder has been set for an item in the Exchange store. |
| ReminderMinutesBeforeStart | Integer | False |
Represents the number of minutes before an event occurs when a reminder is displayed. |
| DisplayCc | String | True |
Represents the display string that is used for the contents of the Cc box. This is the concatenated string of all Cc recipient display names. |
| DisplayTo | String | True |
Represents the display string that is used for the contents of the To box. This is the concatenated string of all To recipient display names. |
| HasAttachments | Boolean | True |
Represents a property that is set to true if an item has at least one visible attachment. This property is read-only. |
| Culture | String | False |
Represents the culture for a given item in a mailbox. |
| EffectiveRights_CreateAssociated | Boolean | True |
Indicates whether a client can create an associated contents table. |
| EffectiveRights_CreateContents | Boolean | True |
Indicates whether a client can create a contents table. |
| EffectiveRights_CreateHierarchy | Boolean | True |
Indicates whether a client can create a hierarchy table. |
| EffectiveRights_Delete | Boolean | True |
Indicates whether a client can delete a folder or item. |
| EffectiveRights_Modify | Boolean | True |
Indicates whether a client can modify a folder or item. |
| EffectiveRights_Read | Boolean | True |
Indicates whether a client can read a folder or item. |
| EffectiveRights_ViewPrivateItems | Boolean | True |
Indicates whether a private item can be viewed. |
| LastModifiedName | String | True |
Contains the display name of the last user to modify an item. |
| LastModifiedTime | Datetime | True |
Indicates when an item was last modified. This element is read-only. |
| IsAssociated | Boolean | False |
Indicates whether the item is associated with a folder. |
| WebClientReadFormQueryString | String | True |
Represents a URL to concatenate to the Microsoft Office Outlook Web App endpoint to read an item in Outlook Web App. |
| WebClientEditFormQueryString | String | True |
Represents a URL to concatenate to the Outlook Web App endpoint to edit an item in Outlook Web App. |
| ConversationId | String | True |
Identifies a specific conversation in the Exchange store. |
| UniqueBody | String | True |
Represents an HTML fragment or plain-text which represents the unique body of this conversation. |
| UniqueBodyType | String | True |
Describes how the unique item body is stored in the item (HTML or TEXT). |
| FileAs | String | False |
Represents how a contact or distribution list is filed in the Contacts folder. |
| FileAsMapping | String | False |
Defines how to construct what is displayed for a contact. |
| DisplayName | String | False |
Defines the display name of a folder, contact, distribution list, delegate user, location, or rule. |
| GivenName | String | False |
Contains the given name of a contact. |
| Initials | String | False |
Represents the initials of a contact. |
| MiddleName | String | False |
Represents the middle name of a contact. |
| Nickname | String | False |
Represents the nickname of a contact. |
| CompleteName_Title | String | True |
Represents the title of a contact. |
| CompleteName_FirstName | String | True |
Represents the first name of a contact. |
| CompleteName_MiddleName | String | True |
Represents the middle name of a contact. |
| CompleteName_LastName | String | True |
Represents the last name of a contact. |
| CompleteName_Suffix | String | True |
Represents the suffix of a contact. |
| CompleteName_Initials | String | True |
Represents the initials of a contact. |
| CompleteName_FullName | String | True |
Represents the full name of a contact. |
| CompleteName_Nickname | String | True |
Represents the nickname of a contact. |
| CompleteName_YomiFirstName | String | True |
Represents the name used in Japan for the searchable or phonetic spelling of a Japanese first name. |
| CompleteName_YomiLastName | String | True |
Represents the name used in Japan for the searchable or phonetic spelling of a Japanese first name. |
| CompanyName | String | False |
Represents the company name that is associated with a contact. |
| EmailAddress1 | String | False |
Represents a single email address for a contact. |
| EmailAddress2 | String | False |
Represents a single email address for a contact. |
| EmailAddress3 | String | False |
Represents a single email address for a contact. |
| BusinessAddress_Street | String | False |
Represents the Business street address for a contact item. |
| BusinessAddress_City | String | False |
Represents the Business city name for a contact item. |
| BusinessAddress_State | String | False |
Represents the Business state of residence for a contact item. |
| BusinessAddress_Country | String | False |
Represents the Business country or region for a contact item. |
| BusinessAddress_PostalCode | String | False |
Represents the Business postal code for a contact item. |
| HomeAddress_Street | String | False |
Represents the Home street address for a contact item. |
| HomeAddress_City | String | False |
Represents the Home city name for a contact item. |
| HomeAddress_State | String | False |
Represents the Home state of residence for a contact item. |
| HomeAddress_Country | String | False |
Represents the Home country or region for a contact item. |
| HomeAddress_PostalCode | String | False |
Represents the Home postal code for a contact item. |
| OtherAddress_Street | String | False |
Represents the Other street address for a contact item. |
| OtherAddress_City | String | False |
Represents the Other city name for a contact item. |
| OtherAddress_State | String | False |
Represents the Other state of residence for a contact item. |
| OtherAddress_Country | String | False |
Represents the Other country or region for a contact item. |
| OtherAddress_PostalCode | String | False |
Represents the Other postal code for a contact item. |
| AssistantPhone | String | False |
Represents the AssistantPhone number for a contact item. |
| BusinessFax | String | False |
Represents the BusinessFax number for a contact item. |
| BusinessPhone | String | False |
Represents the BusinessPhone number for a contact item. |
| BusinessPhone2 | String | False |
Represents the BusinessPhone2 number for a contact item. |
| Callback | String | False |
Represents the Callback number for a contact item. |
| CarPhone | String | False |
Represents the CarPhone number for a contact item. |
| CompanyMainPhone | String | False |
Represents the CompanyMainPhone number for a contact item. |
| HomeFax | String | False |
Represents the HomeFax number for a contact item. |
| HomePhone | String | False |
Represents the HomePhone number for a contact item. |
| HomePhone2 | String | False |
Represents the HomePhone2 number for a contact item. |
| Isdn | String | False |
Represents the Isdn number for a contact item. |
| MobilePhone | String | False |
Represents the MobilePhone number for a contact item. |
| OtherFax | String | False |
Represents the OtherFax number for a contact item. |
| OtherTelephone | String | False |
Represents the OtherTelephone number for a contact item. |
| Pager | String | False |
Represents the Pager number for a contact item. |
| PrimaryPhone | String | False |
Represents the PrimaryPhone number for a contact item. |
| RadioPhone | String | False |
Represents the RadioPhone number for a contact item. |
| Telex | String | False |
Represents the Telex number for a contact item. |
| TtyTddPhone | String | False |
Represents the TtyTddPhone number for a contact item. |
| AssistantName | String | False |
Represents an assistant to a contact. |
| Birthday | Datetime | False |
Represents the birth date of a contact. |
| BusinessHomePage | String | False |
Represents the Home page (Web address) for the contact. |
| Children_1 | String | False |
Contains the name of the child of a contact. |
| Children_2 | String | False |
Contains the name of the child of a contact. |
| Children_3 | String | False |
Contains the name of the child of a contact. |
| Companies_1 | String | False |
Represents the name of a company associated with a contact. |
| Companies_2 | String | False |
Represents the name of a company associated with a contact. |
| Companies_3 | String | False |
Represents the name of a company associated with a contact. |
| ContactSource | String | False |
Describes whether the contact is located in the Exchange store or Active Directory Domain Services. |
| Department | String | False |
Represents the department of a contact. |
| Generation | String | False |
Represents a generational abbreviation that follows the full name of a contact. |
| ImAddress1 | String | False |
Represents an instant messaging (IM) address for a contact. |
| ImAddress2 | String | False |
Represents an instant messaging (IM) address for a contact. |
| ImAddress3 | String | False |
Represents an instant messaging (IM) address for a contact. |
| JobTitle | String | False |
Represents the job title of a contact. |
| Manager | String | False |
Represents the manager of a contact. |
| Mileage | String | False |
Represents the mileage for a contact item. |
| OfficeLocation | String | False |
Represents the office location of a contact. |
| PostalAddressIndex | String | False |
Represents the display type for the physical address of a contact. |
| Profession | String | False |
Represents the profession of a contact. |
| SpouseName | String | False |
Represents the name of the spouse or partner of the contact. |
| Surname | String | False |
Represents the surname of a contact. |
| WeddingAnniversary | Datetime | False |
Contains the wedding anniversary of a contact. |
| HasPicture | Boolean | False |
Indicates whether the contact item has a file attachment that represents the picture of a contact. |
| PhoneticFullName | String | False |
Contains the full name of a contact, including the first and last name, spelled phonetically. |
| PhoneticFirstName | String | False |
Contains the first name of a contact, spelled phonetically. |
| PhoneticLastName | String | False |
Contains the last name of a contact, spelled phonetically. |
| Alias | String | False |
Contains the email alias of a contact. |
| Notes | String | False |
Contains supplementary contact information. |
| Photo | String | False |
Contains a value that encodes the photo of a contact. |
| UserSMIMECertificate | String | False |
Contains a value that encodes the SMIME certificate of a contact. |
| MSExchangeCertificate | String | False |
Contains a value that encodes the Microsoft Exchange certificate of a contact. |
| DirectoryId | String | False |
Contains the directory Id of a contact. |
| ManagerMailbox | String | False |
Contains SMTP information that identifies the mailbox of the manager of a contact. |
| DirectReports | String | False |
Contains SMTP information that identifies the direct reports of a contact. |
Pseudo column fields are used in the WHERE clause of SELECT statements and offer a more granular control over the tuples that are returned from the data source.
| Name | Type | Description |
| ImpersonationUser | String |
The Identifier of the user to impersonate. |
| ImpersonationType | String |
The type of Identifier used for the impersonation user (PrincipalName, SID, PrimarySmtpAddress, SmtpAddress). |
| SharedMailboxEmail | String |
The email of a shared mailbox. Use this to retrieve the contacts of a shared mailbox. |
Create, update, delete, and query Deleted Items.
When performing a SELECT operation on the DeletedItems table, the Sync App will not include the items in the subfolders under DeletedItems, but only the items contained within the DeletedItems folder.
If you wish to retrieve the items under the DeletedItems subfolders, your will need to specify the ParentFolderId-s in the WHERE clause. You can get every DeletedItems subfolder Id by executing a filtered by ParentFolderName query to the Folders table. You can use the example query below, to retrieve the items within the DeletedItems subfolders:
SELECT * FROM DeletedItems WHERE ParentFolderId IN (SELECT FolderId FROM Folders WHERE ParentFolderName = 'DeletedItems' AND TotalCount > 0)
The Sync App will need the ItemChangeKey to update or delete an item. However, if you are unsure of the ItemChangeKey, the Sync App is able to retrieve it from the Exchange server automatically. Note that this may increase the time it takes to perform a query.
| Name | Type | ReadOnly | Description |
| ItemId [KEY] | String | True |
Contains the unique identifier of an item in the Exchange store. |
| MimeContent | String | True |
Contains the native Multipurpose Internet Mail Extensions (MIME) stream of an object that is represented in Base64 binary format. |
| ItemChangeKey | String | True |
Contains the unique change key of an item in the Exchange store. |
| ParentFolderId | String | False |
Represents the unique identifier of the parent folder that contains the item or folder. |
| ParentFolderChangeKey | String | True |
Represents the unique change key of the parent folder that contains the item or folder. |
| ItemClass | String | False |
Represents the message class of an item. |
| Subject | String | False |
Represents the subject for Exchange store items and response objects. The subject is limited to 255 characters. |
| Sensitivity | String | True |
Indicates the sensitivity level of an item. |
| Body | String | False |
Represents the actual body content of a message. |
| DateTimeReceived | Datetime | True |
Represents the date and time that an item in a mailbox was received. |
| Size | Integer | True |
Represents the size in bytes of an item. This property is read-only. |
| Categories | String | False |
Represents a collection of strings that identify to which categories an item in the mailbox belongs. |
| Importance | String | False |
Describes the importance of an item. |
| InReplyTo | String | False |
Represents the identifier of the item to which this item is a reply. |
| IsSubmitted | Boolean | True |
Indicates whether an item has been submitted to the Outbox default folder. |
| IsDraft | Boolean | True |
Represents whether an item has not yet been sent. |
| IsFromMe | Boolean | True |
Indicates whether a user sent an item to himself or herself. |
| IsResend | Boolean | True |
Indicates whether the item had previously been sent. |
| IsUnmodified | Boolean | True |
Indicates whether the item has been modified. |
| InternetMessageHeaders | String | True |
Represents the collection of all Internet message headers that are contained within an item in a mailbox. |
| DateTimeSent | Datetime | True |
Represents the date and time that an item in a mailbox was sent. |
| DateTimeCreated | Datetime | True |
Represents the date and time that a given item in the mailbox was created. |
| ReminderDueBy | Datetime | False |
Represents the date and time when the event occurs. This is used by the ReminderMinutesBeforeStart element to determine when the reminder is displayed. |
| ReminderIsSet | Boolean | False |
Indicates whether a reminder has been set for an item in the Exchange store. |
| ReminderMinutesBeforeStart | Integer | False |
Represents the number of minutes before an event occurs when a reminder is displayed. |
| DisplayCc | String | True |
Represents the display string that is used for the contents of the To box. This is the concatenated string of all To recipient display names. |
| DisplayTo | String | True |
Represents a property that is set to true if an item has at least one visible attachment. This property is read-only. |
| HasAttachments | Boolean | True |
Indicates whether an item has attachments. |
| Culture | String | False |
Represents the Culture of an item. |
| SenderName | String | False |
Defines the name of the Sender mailbox user. |
| SenderEmailAddress | String | False |
Defines the Simple Mail Transfer Protocol (SMTP) address of the Sender mailbox user. |
| SenderRoutingType | String | False |
Defines the routing that is used for the Sender mailbox. The default is SMTP. |
| ToRecipients_Name | String | False |
Defines the name of the ToRecipient. |
| ToRecipients_EmailAddress | String | False |
Defines the Simple Mail Transfer Protocol (SMTP) address of the ToRecipient. |
| ToRecipients_ItemId | String | False |
Defines the item identifier of a ToRecipient. |
| CcRecipients_Name | String | False |
Defines the name of the CcRecipient. |
| CcRecipients_EmailAddress | String | False |
Defines the Simple Mail Transfer Protocol (SMTP) address of the CcRecipient. |
| CcRecipients_ItemId | String | False |
Defines the item identifier of a CcRecipient. |
| BccRecipients_Name | String | False |
Defines the name of the BccRecipient. |
| BccRecipients_EmailAddress | String | False |
Defines the Simple Mail Transfer Protocol (SMTP) address of the BccRecipient. |
| BccRecipients_ItemId | String | False |
Defines the item identifier of a BccRecipient. |
| IsReadReceiptRequested | Boolean | False |
Indicates whether the sender of an item requests a read receipt. |
| IsDeliveryReceiptRequested | Boolean | False |
Indicates whether the sender of an item requests a delivery receipt. |
| ConversationIndex | String | False |
Contains a binary Id that represents the thread to which this message belongs. |
| ConversationTopic | String | False |
Represents the conversation topic. |
| FromName | String | False |
Defines the name of the From mailbox user. |
| FromEmailAddress | String | False |
Defines the Simple Mail Transfer Protocol (SMTP) address of the From mailbox user. |
| FromRoutingType | String | False |
Defines the routing that is used for the From mailbox. The default is SMTP. |
| InternetMessageId | String | False |
Represents the Internet message identifier of an item. |
| IsRead | Boolean | False |
Indicates whether a message has been read. |
| IsResponseRequested | Boolean | False |
Indicates whether a response to an item is requested. |
| References | String | False |
Represents the Usenet header that is used to associate replies with the original messages. |
| EffectiveRights_CreateAssociated | Boolean | True |
Indicates whether a client can create an associated contents table. |
| EffectiveRights_CreateContents | Boolean | True |
Indicates whether a client can create a contents table. |
| EffectiveRights_CreateHierarchy | Boolean | True |
Indicates whether a client can create a hierarchy table. |
| EffectiveRights_Delete | Boolean | True |
Indicates whether a client can delete a folder or item. |
| EffectiveRights_Modify | Boolean | True |
Indicates whether a client can modify a folder or item. |
| EffectiveRights_Read | Boolean | True |
Indicates whether a client can read a folder or item. |
| EffectiveRights_ViewPrivateItems | Boolean | True |
Indicates whether a private item can be viewed. |
| ReceivedByName | String | False |
Defines the name of the ReceivedBy mailbox user. |
| ReceivedByEmailAddress | String | False |
Defines the Simple Mail Transfer Protocol (SMTP) address of the ReceivedBy mailbox user. |
| ReceivedByRoutingType | String | False |
Defines the routing that is used for the ReceivedBy mailbox. The default is SMTP. |
| ReceivedRepresentingName | String | False |
Defines the name of the ReceivedRepresenting mailbox user. |
| ReceivedRepresentingEmailAddress | String | False |
Defines the Simple Mail Transfer Protocol (SMTP) address of the ReceivedRepresenting mailbox user. |
| ReceivedRepresentingRoutingType | String | False |
Defines the routing that is used for the ReceivedRepresenting mailbox. The default is SMTP. |
| LastModifiedName | String | True |
Contains the display name of the last user to modify an item. |
| LastModifiedTime | Datetime | True |
Indicates when an item was last modified. This element is read-only. |
| IsAssociated | Boolean | False |
Indicates whether the item is associated with a folder. |
| WebClientReadFormQueryString | String | True |
Represents a URL to concatenate to the Microsoft Office Outlook Web App endpoint to read an item in Outlook Web App. |
| WebClientEditFormQueryString | String | True |
Represents a URL to concatenate to the Outlook Web App endpoint to edit an item in Outlook Web App. |
| ConversationId | String | True |
Identifies a specific conversation in the Exchange store. |
| ConversationChangeKey | String | True |
Contains the change key of an item or conversation. |
| UniqueBody | String | True |
Represents an HTML fragment or plain-text which represents the unique body of this conversation. |
| UniqueBodyType | String | True |
Describes how the unique item body is stored in the item (HTML or TEXT). |
| ReminderMessageData_Text | String | False |
Specifies the text of a reminder message. |
| ReminderMessageData_Location | String | False |
Represents the location of a meeting, appointment, or persona. |
| ReminderMessageData_StartTime | Datetime | False |
Specifies the starting time of the item that the reminder is for. |
| ReminderMessageData_EndTime | Datetime | False |
Specifies the ending time of the item that the reminder is for. |
| ReminderMessageData_AssociatedCalendarId | String | True |
Represents the calendar item that is associated with the ReminderMessageData. |
| Attachments | String | True |
Contains a comma-separated list of the Ids of the attached files. |
Pseudo column fields are used in the WHERE clause of SELECT statements and offer a more granular control over the tuples that are returned from the data source.
| Name | Type | Description |
| ImpersonationUser | String |
The Identifier of the user to impersonate. |
| ImpersonationType | String |
The type of Identifier used for the impersonation user (PrincipalName, SID, PrimarySmtpAddress, SmtpAddress). |
| SharedMailboxEmail | String |
The email of a shared mailbox. Use this to retrieve the Deleted items of a shared mailbox. |
Create, update, delete, and query Drafts items.
When performing a SELECT operation on the Drafts table, the Sync App will not include the items in the subfolders under Drafts, but only the items contained within the Drafts folder.
If you wish to retrieve the items under the Drafts subfolders, your will need to specify the ParentFolderId-s in the WHERE clause. You can get every Drafts subfolder Id by executing a filtered by ParentFolderName query to the Folders table. You can use the example query below, to retrieve the items within the Drafts subfolders:
SELECT * FROM Drafts WHERE ParentFolderId IN (SELECT FolderId FROM Folders WHERE ParentFolderName = 'Drafts' AND TotalCount > 0)
The Sync App will need the ItemChangeKey to update or delete an item. However, if you are unsure of the ItemChangeKey, the Sync App is able to retrieve it from the Exchange server automatically. Note that this may increase the time it takes to perform a query.
| Name | Type | ReadOnly | Description |
| ItemId [KEY] | String | True |
Contains the unique identifier of an item in the Exchange store. |
| MimeContent | String | True |
Contains the native Multipurpose Internet Mail Extensions (MIME) stream of an object that is represented in Base64 binary format. |
| ItemChangeKey | String | True |
Contains the unique change key of an item in the Exchange store. |
| ParentFolderId | String | False |
Represents the unique identifier of the parent folder that contains the item or folder. |
| ParentFolderChangeKey | String | True |
Represents the unique change key of the parent folder that contains the item or folder. |
| ItemClass | String | False |
Represents the message class of an item. |
| Subject | String | False |
Represents the subject for Exchange store items and response objects. The subject is limited to 255 characters. |
| Sensitivity | String | True |
Indicates the sensitivity level of an item. |
| Body | String | False |
Represents the actual body content of a message. |
| DateTimeReceived | Datetime | True |
Represents the date and time that an item in a mailbox was received. |
| Size | Integer | True |
Represents the size in bytes of an item. This property is read-only. |
| Categories | String | False |
Represents a collection of strings that identify to which categories an item in the mailbox belongs. |
| Importance | String | False |
Describes the importance of an item. |
| InReplyTo | String | False |
Represents the identifier of the item to which this item is a reply. |
| IsSubmitted | Boolean | True |
Indicates whether an item has been submitted to the Outbox default folder. |
| IsDraft | Boolean | True |
Represents whether an item has not yet been sent. |
| IsFromMe | Boolean | True |
Indicates whether a user sent an item to himself or herself. |
| IsResend | Boolean | True |
Indicates whether the item had previously been sent. |
| IsUnmodified | Boolean | True |
Indicates whether the item has been modified. |
| InternetMessageHeaders | String | True |
Represents the collection of all Internet message headers that are contained within an item in a mailbox. |
| DateTimeSent | Datetime | True |
Represents the date and time that an item in a mailbox was sent. |
| DateTimeCreated | Datetime | True |
Represents the date and time that a given item in the mailbox was created. |
| ReminderDueBy | Datetime | False |
Represents the date and time when the event occurs. This is used by the ReminderMinutesBeforeStart element to determine when the reminder is displayed. |
| ReminderIsSet | Boolean | False |
Indicates whether a reminder has been set for an item in the Exchange store. |
| ReminderMinutesBeforeStart | Integer | False |
Represents the number of minutes before an event occurs when a reminder is displayed. |
| DisplayCc | String | True |
Represents the display string that is used for the contents of the Cc box. This is the concatenated string of all To recipient display names. |
| DisplayTo | String | True |
Represents the display string that is used for the contents of the To box. This is the concatenated string of all To recipient display names. |
| HasAttachments | Boolean | True |
Indicates whether an item has attachments. |
| Culture | String | False |
Represents the Culture of an item. |
| SenderName | String | False |
Defines the name of the Sender mailbox user. |
| SenderEmailAddress | String | False |
Defines the Simple Mail Transfer Protocol (SMTP) address of the Sender mailbox user. |
| SenderRoutingType | String | False |
Defines the routing that is used for the Sender mailbox. The default is SMTP. |
| ToRecipients_Name | String | False |
Defines the name of the ToRecipient. |
| ToRecipients_EmailAddress | String | False |
Defines the Simple Mail Transfer Protocol (SMTP) address of the ToRecipient. |
| ToRecipients_ItemId | String | False |
Defines the item identifier of a ToRecipient. |
| CcRecipients_Name | String | False |
Defines the name of the CcRecipient. |
| CcRecipients_EmailAddress | String | False |
Defines the Simple Mail Transfer Protocol (SMTP) address of the CcRecipient. |
| CcRecipients_ItemId | String | False |
Defines the item identifier of a CcRecipient. |
| BccRecipients_Name | String | False |
Defines the name of the BccRecipient. |
| BccRecipients_EmailAddress | String | False |
Defines the Simple Mail Transfer Protocol (SMTP) address of the BccRecipient. |
| BccRecipients_ItemId | String | False |
Defines the item identifier of a BccRecipient. |
| IsReadReceiptRequested | Boolean | False |
Indicates whether the sender of an item requests a read receipt. |
| IsDeliveryReceiptRequested | Boolean | False |
Indicates whether the sender of an item requests a delivery receipt. |
| ConversationIndex | String | False |
Contains a binary Id that represents the thread to which this message belongs. |
| ConversationTopic | String | False |
Represents the conversation topic. |
| FromName | String | False |
Defines the name of the From mailbox user. |
| FromEmailAddress | String | False |
Defines the Simple Mail Transfer Protocol (SMTP) address of the From mailbox user. |
| FromRoutingType | String | False |
Defines the routing that is used for the From mailbox. The default is SMTP. |
| InternetMessageId | String | False |
Represents the Internet message identifier of an item. |
| IsRead | Boolean | False |
Indicates whether a message has been read. |
| IsResponseRequested | Boolean | False |
Indicates whether a response to an item is requested. |
| References | String | False |
Represents the Usenet header that is used to associate replies with the original messages. |
| EffectiveRights_CreateAssociated | Boolean | True |
Indicates whether a client can create an associated contents table. |
| EffectiveRights_CreateContents | Boolean | True |
Indicates whether a client can create a contents table. |
| EffectiveRights_CreateHierarchy | Boolean | True |
Indicates whether a client can create a hierarchy table. |
| EffectiveRights_Delete | Boolean | True |
Indicates whether a client can delete a folder or item. |
| EffectiveRights_Modify | Boolean | True |
Indicates whether a client can modify a folder or item. |
| EffectiveRights_Read | Boolean | True |
Indicates whether a client can read a folder or item. |
| EffectiveRights_ViewPrivateItems | Boolean | True |
Indicates whether a private item can be viewed. |
| ReceivedByName | String | False |
Defines the name of the ReceivedBy mailbox user. |
| ReceivedByEmailAddress | String | False |
Defines the Simple Mail Transfer Protocol (SMTP) address of the ReceivedBy mailbox user. |
| ReceivedByRoutingType | String | False |
Defines the routing that is used for the ReceivedBy mailbox. The default is SMTP. |
| ReceivedRepresentingName | String | False |
Defines the name of the ReceivedRepresenting mailbox user. |
| ReceivedRepresentingEmailAddress | String | False |
Defines the Simple Mail Transfer Protocol (SMTP) address of the ReceivedRepresenting mailbox user. |
| ReceivedRepresentingRoutingType | String | False |
Defines the routing that is used for the ReceivedRepresenting mailbox. The default is SMTP. |
| LastModifiedName | String | True |
Contains the display name of the last user to modify an item. |
| LastModifiedTime | Datetime | True |
Indicates when an item was last modified. This element is read-only. |
| IsAssociated | Boolean | False |
Indicates whether the item is associated with a folder. |
| WebClientReadFormQueryString | String | True |
Represents a URL to concatenate to the Microsoft Office Outlook Web App endpoint to read an item in Outlook Web App. |
| WebClientEditFormQueryString | String | True |
Represents a URL to concatenate to the Outlook Web App endpoint to edit an item in Outlook Web App. |
| ConversationId | String | True |
Identifies a specific conversation in the Exchange store. |
| ConversationChangeKey | String | True |
Contains the change key of an item or conversation. |
| UniqueBody | String | True |
Represents an HTML fragment or plain-text which represents the unique body of this conversation. |
| UniqueBodyType | String | True |
Describes how the unique item body is stored in the item (HTML or TEXT). |
| ReminderMessageData_Text | String | False |
Specifies the text of a reminder message. |
| ReminderMessageData_Location | String | False |
Represents the location of a meeting, appointment, or persona. |
| ReminderMessageData_StartTime | Datetime | False |
Specifies the starting time of the item that the reminder is for. |
| ReminderMessageData_EndTime | Datetime | False |
Specifies the ending time of the item that the reminder is for. |
| ReminderMessageData_AssociatedCalendarId | String | True |
Represents the calendar item that is associated with the ReminderMessageData. |
| Attachments | String | True |
Contains a comma-separated list of the Ids of the attached files. |
Pseudo column fields are used in the WHERE clause of SELECT statements and offer a more granular control over the tuples that are returned from the data source.
| Name | Type | Description |
| ImpersonationUser | String |
The Identifier of the user to impersonate. |
| ImpersonationType | String |
The type of Identifier used for the impersonation user (PrincipalName, SID, PrimarySmtpAddress, SmtpAddress). |
| SharedMailboxEmail | String |
The email of a shared mailbox. Use this to retrieve the Draft items of a shared mailbox. |
Create, update, delete, and query subfolders for a given folder.
The Sync App will need the FolderChangeKey to update or delete an item. However, if you are unsure of the FolderChangeKey, the Sync App is able to retrieve it from the Exchange server automatically. Note that this may increase the time it take to perform a query.
| Name | Type | ReadOnly | Description |
| FolderId [KEY] | String | True |
Contains the unique identifier of an folder in the Exchange store. |
| FolderChangeKey | String | True |
Contains the unique change key of an folder in the Exchange store. |
| ParentFolderId | String | False |
Represents the unique identifier of the parent folder that contains the item or folder. |
| ParentFolderChangeKey | String | True |
Represents the unique change key of the parent folder that contains the item or folder. |
| FolderClass | String | False |
Represents the folder class for a given folder. |
| DisplayName | String | False |
Contains the display name of a folder. |
| TotalCount | Integer | True |
Represents the total count of items within a given folder. |
| ChildFolderCount | Integer | True |
Represents the number of child folders that are contained within a folder. |
| CanDelete | Boolean | True |
Indicates whether a managed folder can be deleted by a customer. |
| CanRenameOrMove | Boolean | True |
Indicates whether a given managed folder can be renamed or moved by the customer. |
| MustDisplayComment | Boolean | True |
Indicates whether the managed folder comment must be displayed. |
| HasQuota | Boolean | True |
Indicates whether the managed folder has a quota. |
| IsManagedFoldersRoot | Boolean | True |
Indicates whether the managed folder is the root for all managed folders. |
| ManagedFolderId | String | True |
Contains the folder Id of the managed folder. |
| Comment | String | True |
Contains the comment that is associated with a managed folder. |
| StorageQuota | Integer | True |
Describes the storage quota for the managed folder. |
| FolderSize | Integer | True |
Describes the total size of all the contents of a managed folder. |
| HomePage | String | True |
Specifies the URL that will be the default home page for the managed folder. |
| UnreadCount | Integer | True |
Represents the count of unread items within a given folder. |
| EffectiveRights_CreateAssociated | Boolean | True |
Indicates whether a client can create an associated contents table. |
| EffectiveRights_CreateContents | Boolean | True |
Indicates whether a client can create a contents table. |
| EffectiveRights_CreateHierarchy | Boolean | True |
Indicates whether a client can create a hierarchy table. |
| EffectiveRights_Delete | Boolean | True |
Indicates whether a client can delete a folder or item. |
| EffectiveRights_Modify | Boolean | True |
Indicates whether a client can modify a folder or item. |
| EffectiveRights_Read | Boolean | True |
Indicates whether a client can read a folder or item. |
| EffectiveRights_ViewPrivateItems | Boolean | True |
Indicates whether a private item can be viewed. |
| SharingEffectiveRights | String | False |
Indicates the permissions that the user has for the contact data that is being shared. |
| ParentFolderName | String | False |
Represents the distinguished folder Id of the parent folder. |
Pseudo column fields are used in the WHERE clause of SELECT statements and offer a more granular control over the tuples that are returned from the data source.
| Name | Type | Description |
| ImpersonationUser | String |
The Identifier of the user to impersonate. |
| ImpersonationType | String |
The type of Identifier used for the impersonation user (PrincipalName, SID, PrimarySmtpAddress, SmtpAddress). |
| Traversal | String |
Defines how a search is performed. One of [Shallow, Deep, SoftDeleted]. Default values is Shallow |
| SharedMailboxEmail | String |
The email of a shared mailbox. Use this to retrieve the shared folders. |
| Rows@Next | String |
Identifier for the next page of results. Do not set this value manually. |
Create, update, delete, and query Inbox items.
When performing a SELECT operation on the Inbox table, the Sync App will not include the items in the subfolders under Inbox, but only the items contained within the Inbox folder.
If you wish to retrieve the items under the Inbox subfolders, your will need to specify the ParentFolderId-s in the WHERE clause. You can get every Inbox subfolder Id by executing a filtered by ParentFolderName query to the Folders table. You can use the example query below, to retrieve the items within the Inbox subfolders:
SELECT * FROM Inbox WHERE ParentFolderId IN (SELECT FolderId FROM Folders WHERE ParentFolderName = 'Inbox' AND TotalCount > 0)
The Sync App will need the ItemChangeKey to update or delete an item. However, if you are unsure of the ItemChangeKey, the Sync App is able to retrieve it from the Exchange server automatically. Note that this may increase the time it takes to perform a query.
| Name | Type | ReadOnly | Description |
| ItemId [KEY] | String | True |
Contains the unique identifier of an item in the Exchange store. |
| MimeContent | String | True |
Contains the native Multipurpose Internet Mail Extensions (MIME) stream of an object that is represented in Base64 binary format. |
| ItemChangeKey | String | True |
Contains the unique change key of an item in the Exchange store. |
| ParentFolderId | String | False |
Represents the unique identifier of the parent folder that contains the item or folder. |
| ParentFolderChangeKey | String | True |
Represents the unique change key of the parent folder that contains the item or folder. |
| ItemClass | String | False |
Represents the message class of an item. |
| Subject | String | False |
Represents the subject for Exchange store items and response objects. The subject is limited to 255 characters. |
| Sensitivity | String | True |
Indicates the sensitivity level of an item. |
| Body | String | False |
Represents the actual body content of a message. |
| DateTimeReceived | Datetime | True |
Represents the date and time that an item in a mailbox was received. |
| Size | Integer | True |
Represents the size in bytes of an item. This property is read-only. |
| Categories | String | False |
Represents a collection of strings that identify to which categories an item in the mailbox belongs. |
| Importance | String | False |
Describes the importance of an item. |
| InReplyTo | String | False |
Represents the identifier of the item to which this item is a reply. |
| IsSubmitted | Boolean | True |
Indicates whether an item has been submitted to the Outbox default folder. |
| IsDraft | Boolean | True |
Represents whether an item has not yet been sent. |
| IsFromMe | Boolean | True |
Indicates whether a user sent an item to himself or herself. |
| IsResend | Boolean | True |
Indicates whether the item had previously been sent. |
| IsUnmodified | Boolean | True |
Indicates whether the item has been modified. |
| InternetMessageHeaders | String | True |
Represents the collection of all Internet message headers that are contained within an item in a mailbox. |
| DateTimeSent | Datetime | True |
Represents the date and time that an item in a mailbox was sent. |
| DateTimeCreated | Datetime | True |
Represents the date and time that a given item in the mailbox was created. |
| ReminderDueBy | Datetime | False |
Represents the date and time when the event occurs. This is used by the ReminderMinutesBeforeStart element to determine when the reminder is displayed. |
| ReminderIsSet | Boolean | False |
Indicates whether a reminder has been set for an item in the Exchange store. |
| ReminderMinutesBeforeStart | Integer | False |
Represents the number of minutes before an event occurs when a reminder is displayed. |
| DisplayCc | String | True |
Represents the display string that is used for the contents of the To box. This is the concatenated string of all To recipient display names. |
| DisplayTo | String | True |
Represents a property that is set to true if an item has at least one visible attachment. This property is read-only. |
| HasAttachments | Boolean | True |
Indicates whether an item has attachments. |
| Culture | String | False |
Represents the Culture of an item. |
| SenderName | String | False |
Defines the name of the Sender mailbox user. |
| SenderEmailAddress | String | False |
Defines the Simple Mail Transfer Protocol (SMTP) address of the Sender mailbox user. |
| SenderRoutingType | String | False |
Defines the routing that is used for the Sender mailbox. The default is SMTP. |
| ToRecipients_Names | String | False |
Defines the name of the ToRecipient. |
| ToRecipients_EmailAddresses | String | False |
Defines the Simple Mail Transfer Protocol (SMTP) address of the ToRecipient. |
| ToRecipients_ItemIds | String | False |
Defines the item identifier of a ToRecipient. |
| CcRecipients_Names | String | False |
Defines the name of the CcRecipient. |
| CcRecipients_EmailAddresses | String | False |
Defines the Simple Mail Transfer Protocol (SMTP) address of the CcRecipient. |
| CcRecipients_ItemIds | String | False |
Defines the item identifier of a CcRecipient. |
| BccRecipients_Name | String | False |
Defines the name of the BccRecipient. |
| BccRecipients_EmailAddress | String | False |
Defines the Simple Mail Transfer Protocol (SMTP) address of the BccRecipient. |
| BccRecipients_ItemId | String | False |
Defines the item identifier of a BccRecipient. |
| IsReadReceiptRequested | Boolean | False |
Indicates whether the sender of an item requests a read receipt. |
| IsDeliveryReceiptRequested | Boolean | False |
Indicates whether the sender of an item requests a delivery receipt. |
| ConversationIndex | String | False |
Contains a binary Id that represents the thread to which this message belongs. |
| ConversationTopic | String | False |
Represents the conversation topic. |
| FromName | String | False |
Defines the name of the From mailbox user. |
| FromEmailAddress | String | False |
Defines the Simple Mail Transfer Protocol (SMTP) address of the From mailbox user. |
| FromRoutingType | String | False |
Defines the routing that is used for the From mailbox. The default is SMTP. |
| InternetMessageId | String | False |
Represents the Internet message identifier of an item. |
| IsRead | Boolean | False |
Indicates whether a message has been read. |
| IsResponseRequested | Boolean | False |
Indicates whether a response to an item is requested. |
| References | String | False |
Represents the Usenet header that is used to associate replies with the original messages. |
| EffectiveRights_CreateAssociated | Boolean | True |
Indicates whether a client can create an associated contents table. |
| EffectiveRights_CreateContents | Boolean | True |
Indicates whether a client can create a contents table. |
| EffectiveRights_CreateHierarchy | Boolean | True |
Indicates whether a client can create a hierarchy table. |
| EffectiveRights_Delete | Boolean | True |
Indicates whether a client can delete a folder or item. |
| EffectiveRights_Modify | Boolean | True |
Indicates whether a client can modify a folder or item. |
| EffectiveRights_Read | Boolean | True |
Indicates whether a client can read a folder or item. |
| EffectiveRights_ViewPrivateItems | Boolean | True |
Indicates whether a private item can be viewed. |
| ReceivedByName | String | False |
Defines the name of the ReceivedBy mailbox user. |
| ReceivedByEmailAddress | String | False |
Defines the Simple Mail Transfer Protocol (SMTP) address of the ReceivedBy mailbox user. |
| ReceivedByRoutingType | String | False |
Defines the routing that is used for the ReceivedBy mailbox. The default is SMTP. |
| ReceivedRepresentingName | String | False |
Defines the name of the ReceivedRepresenting mailbox user. |
| ReceivedRepresentingEmailAddress | String | False |
Defines the Simple Mail Transfer Protocol (SMTP) address of the ReceivedRepresenting mailbox user. |
| ReceivedRepresentingRoutingType | String | False |
Defines the routing that is used for the ReceivedRepresenting mailbox. The default is SMTP. |
| LastModifiedName | String | True |
Contains the display name of the last user to modify an item. |
| LastModifiedTime | Datetime | True |
Indicates when an item was last modified. This element is read-only. |
| IsAssociated | Boolean | False |
Indicates whether the item is associated with a folder. |
| WebClientReadFormQueryString | String | True |
Represents a URL to concatenate to the Microsoft Office Outlook Web App endpoint to read an item in Outlook Web App. |
| WebClientEditFormQueryString | String | True |
Represents a URL to concatenate to the Outlook Web App endpoint to edit an item in Outlook Web App. |
| ConversationId | String | True |
Identifies a specific conversation in the Exchange store. |
| ConversationChangeKey | String | True |
Contains the change key of an item or conversation. |
| UniqueBody | String | True |
Represents an HTML fragment or plain-text which represents the unique body of this conversation. |
| UniqueBodyType | String | True |
Describes how the unique item body is stored in the item (HTML or TEXT). |
| ReminderMessageData_Text | String | False |
Specifies the text of a reminder message. |
| ReminderMessageData_Location | String | False |
Represents the location of a meeting, appointment, or persona. |
| ReminderMessageData_StartTime | Datetime | False |
Specifies the starting time of the item that the reminder is for. |
| ReminderMessageData_EndTime | Datetime | False |
Specifies the ending time of the item that the reminder is for. |
| ReminderMessageData_AssociatedCalendarId | String | True |
Represents the calendar item that is associated with the ReminderMessageData. |
| Attachments | String | True |
Contains a comma-separated list of the Ids of the attached files. |
Pseudo column fields are used in the WHERE clause of SELECT statements and offer a more granular control over the tuples that are returned from the data source.
| Name | Type | Description |
| ImpersonationUser | String |
The Identifier of the user to impersonate. |
| ImpersonationType | String |
The type of Identifier used for the impersonation user (PrincipalName, SID, PrimarySmtpAddress, SmtpAddress). |
| SharedMailboxEmail | String |
The email of a shared mailbox. Use this to retrieve the inbox items of a shared mailbox. |
Create, update, delete, and query Junk Email items.
| Name | Type | ReadOnly | Description |
| ItemId [KEY] | String | True |
Contains the unique identifier of an item in the Exchange store. |
| MimeContent | String | True |
Contains the native Multipurpose Internet Mail Extensions (MIME) stream of an object that is represented in Base64 binary format. |
| ItemChangeKey | String | True |
Contains the unique change key of an item in the Exchange store. |
| ParentFolderId | String | False |
Represents the unique identifier of the parent folder that contains the item or folder. |
| ParentFolderChangeKey | String | True |
Represents the unique change key of the parent folder that contains the item or folder. |
| ItemClass | String | False |
Represents the message class of an item. |
| Subject | String | False |
Represents the subject for Exchange store items and response objects. The subject is limited to 255 characters. |
| Sensitivity | String | True |
Indicates the sensitivity level of an item. |
| Body | String | False |
Represents the actual body content of a message. |
| DateTimeReceived | Datetime | True |
Represents the date and time that an item in a mailbox was received. |
| Size | Integer | True |
Represents the size in bytes of an item. This property is read-only. |
| Categories | String | False |
Represents a collection of strings that identify to which categories an item in the mailbox belongs. |
| Importance | String | False |
Describes the importance of an item. |
| InReplyTo | String | False |
Represents the identifier of the item to which this item is a reply. |
| IsSubmitted | Boolean | True |
Indicates whether an item has been submitted to the Outbox default folder. |
| IsDraft | Boolean | True |
Represents whether an item has not yet been sent. |
| IsFromMe | Boolean | True |
Indicates whether a user sent an item to himself or herself. |
| IsResend | Boolean | True |
Indicates whether the item had previously been sent. |
| IsUnmodified | Boolean | True |
Indicates whether the item has been modified. |
| InternetMessageHeaders | String | True |
Represents the collection of all Internet message headers that are contained within an item in a mailbox. |
| DateTimeSent | Datetime | True |
Represents the date and time that an item in a mailbox was sent. |
| DateTimeCreated | Datetime | True |
Represents the date and time that a given item in the mailbox was created. |
| ReminderDueBy | Datetime | False |
Represents the date and time when the event occurs. This is used by the ReminderMinutesBeforeStart element to determine when the reminder is displayed. |
| ReminderIsSet | Boolean | False |
Indicates whether a reminder has been set for an item in the Exchange store. |
| ReminderMinutesBeforeStart | Integer | False |
Represents the number of minutes before an event occurs when a reminder is displayed. |
| DisplayCc | String | True |
Represents the display string that is used for the contents of the To box. This is the concatenated string of all To recipient display names. |
| DisplayTo | String | True |
Represents a property that is set to true if an item has at least one visible attachment. This property is read-only. |
| HasAttachments | Boolean | True |
Indicates whether an item has attachments. |
| Culture | String | False |
Represents the Culture of an item. |
| SenderName | String | False |
Defines the name of the Sender mailbox user. |
| SenderEmailAddress | String | False |
Defines the Simple Mail Transfer Protocol (SMTP) address of the Sender mailbox user. |
| SenderRoutingType | String | False |
Defines the routing that is used for the Sender mailbox. The default is SMTP. |
| ToRecipients_Name | String | False |
Defines the name of the ToRecipient. |
| ToRecipients_EmailAddress | String | False |
Defines the Simple Mail Transfer Protocol (SMTP) address of the ToRecipient. |
| ToRecipients_ItemId | String | False |
Defines the item identifier of a ToRecipient. |
| CcRecipients_Name | String | False |
Defines the name of the CcRecipient. |
| CcRecipients_EmailAddress | String | False |
Defines the Simple Mail Transfer Protocol (SMTP) address of the CcRecipient. |
| CcRecipients_ItemId | String | False |
Defines the item identifier of a CcRecipient. |
| BccRecipients_Name | String | False |
Defines the name of the BccRecipient. |
| BccRecipients_EmailAddress | String | False |
Defines the Simple Mail Transfer Protocol (SMTP) address of the BccRecipient. |
| BccRecipients_ItemId | String | False |
Defines the item identifier of a BccRecipient. |
| IsReadReceiptRequested | Boolean | False |
Indicates whether the sender of an item requests a read receipt. |
| IsDeliveryReceiptRequested | Boolean | False |
Indicates whether the sender of an item requests a delivery receipt. |
| ConversationIndex | String | False |
Contains a binary Id that represents the thread to which this message belongs. |
| ConversationTopic | String | False |
Represents the conversation topic. |
| FromName | String | False |
Defines the name of the From mailbox user. |
| FromEmailAddress | String | False |
Defines the Simple Mail Transfer Protocol (SMTP) address of the From mailbox user. |
| FromRoutingType | String | False |
Defines the routing that is used for the From mailbox. The default is SMTP. |
| InternetMessageId | String | False |
Represents the Internet message identifier of an item. |
| IsRead | Boolean | False |
Indicates whether a message has been read. |
| IsResponseRequested | Boolean | False |
Indicates whether a response to an item is requested. |
| References | String | False |
Represents the Usenet header that is used to associate replies with the original messages. |
| EffectiveRights_CreateAssociated | Boolean | True |
Indicates whether a client can create an associated contents table. |
| EffectiveRights_CreateContents | Boolean | True |
Indicates whether a client can create a contents table. |
| EffectiveRights_CreateHierarchy | Boolean | True |
Indicates whether a client can create a hierarchy table. |
| EffectiveRights_Delete | Boolean | True |
Indicates whether a client can delete a folder or item. |
| EffectiveRights_Modify | Boolean | True |
Indicates whether a client can modify a folder or item. |
| EffectiveRights_Read | Boolean | True |
Indicates whether a client can read a folder or item. |
| EffectiveRights_ViewPrivateItems | Boolean | True |
Indicates whether a private item can be viewed. |
| ReceivedByName | String | False |
Defines the name of the ReceivedBy mailbox user. |
| ReceivedByEmailAddress | String | False |
Defines the Simple Mail Transfer Protocol (SMTP) address of the ReceivedBy mailbox user. |
| ReceivedByRoutingType | String | False |
Defines the routing that is used for the ReceivedBy mailbox. The default is SMTP. |
| ReceivedRepresentingName | String | False |
Defines the name of the ReceivedRepresenting mailbox user. |
| ReceivedRepresentingEmailAddress | String | False |
Defines the Simple Mail Transfer Protocol (SMTP) address of the ReceivedRepresenting mailbox user. |
| ReceivedRepresentingRoutingType | String | False |
Defines the routing that is used for the ReceivedRepresenting mailbox. The default is SMTP. |
| LastModifiedName | String | True |
Contains the display name of the last user to modify an item. |
| LastModifiedTime | Datetime | True |
Indicates when an item was last modified. This element is read-only. |
| IsAssociated | Boolean | False |
Indicates whether the item is associated with a folder. |
| WebClientReadFormQueryString | String | True |
Represents a URL to concatenate to the Microsoft Office Outlook Web App endpoint to read an item in Outlook Web App. |
| WebClientEditFormQueryString | String | True |
Represents a URL to concatenate to the Outlook Web App endpoint to edit an item in Outlook Web App. |
| ConversationId | String | True |
Identifies a specific conversation in the Exchange store. |
| ConversationChangeKey | String | True |
Contains the change key of an item or conversation. |
| UniqueBody | String | True |
Represents an HTML fragment or plain-text which represents the unique body of this conversation. |
| UniqueBodyType | String | True |
Describes how the unique item body is stored in the item (HTML or TEXT). |
| ReminderMessageData_Text | String | False |
Specifies the text of a reminder message. |
| ReminderMessageData_Location | String | False |
Represents the location of a meeting, appointment, or persona. |
| ReminderMessageData_StartTime | Datetime | False |
Specifies the starting time of the item that the reminder is for. |
| ReminderMessageData_EndTime | Datetime | False |
Specifies the ending time of the item that the reminder is for. |
| ReminderMessageData_AssociatedCalendarId | String | True |
Represents the calendar item that is associated with the ReminderMessageData. |
| Attachments | String | True |
Contains a comma-separated list of the Ids of the attached files. |
Pseudo column fields are used in the WHERE clause of SELECT statements and offer a more granular control over the tuples that are returned from the data source.
| Name | Type | Description |
| ImpersonationUser | String |
The Identifier of the user to impersonate. |
| ImpersonationType | String |
The type of Identifier used for the impersonation user (PrincipalName, SID, PrimarySmtpAddress, SmtpAddress). |
| SharedMailboxEmail | String |
The email of a shared mailbox. Use this to retrieve the Junk Emails of a shared mailbox. |
Create, update, delete, and query Outbox items.
When performing a SELECT operation on the Outbox table, the Sync App will not include the items in the subfolders under Outbox, but only the items contained within the Outbox folder.
If you wish to retrieve the items under the Outbox subfolders, your will need to specify the ParentFolderId-s in the WHERE clause. You can get every Outbox subfolder Id by executing a filtered by ParentFolderName query to the Folders table. You can use the example query below, to retrieve the items within the Outbox subfolders:
SELECT * FROM Outbox WHERE ParentFolderId IN (SELECT FolderId FROM Folders WHERE ParentFolderName = 'Outbox' AND TotalCount > 0)
The Sync App will need the ItemChangeKey to update or delete an item. However, if you are unsure of the ItemChangeKey, the Sync App is able to retrieve it from the Exchange server automatically. Note that this may increase the time it takes to perform a query.
| Name | Type | ReadOnly | Description |
| ItemId [KEY] | String | True |
Contains the unique identifier of an item in the Exchange store. |
| MimeContent | String | True |
Contains the native Multipurpose Internet Mail Extensions (MIME) stream of an object that is represented in Base64 binary format. |
| ItemChangeKey | String | True |
Contains the unique change key of an item in the Exchange store. |
| ParentFolderId | String | False |
Represents the unique identifier of the parent folder that contains the item or folder. |
| ParentFolderChangeKey | String | True |
Represents the unique change key of the parent folder that contains the item or folder. |
| ItemClass | String | False |
Represents the message class of an item. |
| Subject | String | False |
Represents the subject for Exchange store items and response objects. The subject is limited to 255 characters. |
| Sensitivity | String | True |
Indicates the sensitivity level of an item. |
| Body | String | False |
Represents the actual body content of a message. |
| DateTimeReceived | Datetime | True |
Represents the date and time that an item in a mailbox was received. |
| Size | Integer | True |
Represents the size in bytes of an item. This property is read-only. |
| Categories | String | False |
Represents a collection of strings that identify to which categories an item in the mailbox belongs. |
| Importance | String | False |
Describes the importance of an item. |
| InReplyTo | String | False |
Represents the identifier of the item to which this item is a reply. |
| IsSubmitted | Boolean | True |
Indicates whether an item has been submitted to the Outbox default folder. |
| IsDraft | Boolean | True |
Represents whether an item has not yet been sent. |
| IsFromMe | Boolean | True |
Indicates whether a user sent an item to himself or herself. |
| IsResend | Boolean | True |
Indicates whether the item had previously been sent. |
| IsUnmodified | Boolean | True |
Indicates whether the item has been modified. |
| InternetMessageHeaders | String | True |
Represents the collection of all Internet message headers that are contained within an item in a mailbox. |
| DateTimeSent | Datetime | True |
Represents the date and time that an item in a mailbox was sent. |
| DateTimeCreated | Datetime | True |
Represents the date and time that a given item in the mailbox was created. |
| ReminderDueBy | Datetime | False |
Represents the date and time when the event occurs. This is used by the ReminderMinutesBeforeStart element to determine when the reminder is displayed. |
| ReminderIsSet | Boolean | False |
Indicates whether a reminder has been set for an item in the Exchange store. |
| ReminderMinutesBeforeStart | Integer | False |
Represents the number of minutes before an event occurs when a reminder is displayed. |
| DisplayCc | String | True |
Represents the display string that is used for the contents of the To box. This is the concatenated string of all To recipient display names. |
| DisplayTo | String | True |
Represents a property that is set to true if an item has at least one visible attachment. This property is read-only. |
| HasAttachments | Boolean | True |
Indicates whether an item has attachments. |
| Culture | String | False |
Represents the Culture of an item. |
| SenderName | String | False |
Defines the name of the Sender mailbox user. |
| SenderEmailAddress | String | False |
Defines the Simple Mail Transfer Protocol (SMTP) address of the Sender mailbox user. |
| SenderRoutingType | String | False |
Defines the routing that is used for the Sender mailbox. The default is SMTP. |
| ToRecipients_Name | String | False |
Defines the name of the ToRecipient. |
| ToRecipients_EmailAddress | String | False |
Defines the Simple Mail Transfer Protocol (SMTP) address of the ToRecipient. |
| ToRecipients_ItemId | String | False |
Defines the item identifier of a ToRecipient. |
| CcRecipients_Name | String | False |
Defines the name of the CcRecipient. |
| CcRecipients_EmailAddress | String | False |
Defines the Simple Mail Transfer Protocol (SMTP) address of the CcRecipient. |
| CcRecipients_ItemId | String | False |
Defines the item identifier of a CcRecipient. |
| BccRecipients_Name | String | False |
Defines the name of the BccRecipient. |
| BccRecipients_EmailAddress | String | False |
Defines the Simple Mail Transfer Protocol (SMTP) address of the BccRecipient. |
| BccRecipients_ItemId | String | False |
Defines the item identifier of a BccRecipient. |
| IsReadReceiptRequested | Boolean | False |
Indicates whether the sender of an item requests a read receipt. |
| IsDeliveryReceiptRequested | Boolean | False |
Indicates whether the sender of an item requests a delivery receipt. |
| ConversationIndex | String | False |
Contains a binary Id that represents the thread to which this message belongs. |
| ConversationTopic | String | False |
Represents the conversation topic. |
| FromName | String | False |
Defines the name of the From mailbox user. |
| FromEmailAddress | String | False |
Defines the Simple Mail Transfer Protocol (SMTP) address of the From mailbox user. |
| FromRoutingType | String | False |
Defines the routing that is used for the From mailbox. The default is SMTP. |
| InternetMessageId | String | False |
Represents the Internet message identifier of an item. |
| IsRead | Boolean | False |
Indicates whether a message has been read. |
| IsResponseRequested | Boolean | False |
Indicates whether a response to an item is requested. |
| References | String | False |
Represents the Usenet header that is used to associate replies with the original messages. |
| EffectiveRights_CreateAssociated | Boolean | True |
Indicates whether a client can create an associated contents table. |
| EffectiveRights_CreateContents | Boolean | True |
Indicates whether a client can create a contents table. |
| EffectiveRights_CreateHierarchy | Boolean | True |
Indicates whether a client can create a hierarchy table. |
| EffectiveRights_Delete | Boolean | True |
Indicates whether a client can delete a folder or item. |
| EffectiveRights_Modify | Boolean | True |
Indicates whether a client can modify a folder or item. |
| EffectiveRights_Read | Boolean | True |
Indicates whether a client can read a folder or item. |
| EffectiveRights_ViewPrivateItems | Boolean | True |
Indicates whether a private item can be viewed. |
| ReceivedByName | String | False |
Defines the name of the ReceivedBy mailbox user. |
| ReceivedByEmailAddress | String | False |
Defines the Simple Mail Transfer Protocol (SMTP) address of the ReceivedBy mailbox user. |
| ReceivedByRoutingType | String | False |
Defines the routing that is used for the ReceivedBy mailbox. The default is SMTP. |
| ReceivedRepresentingName | String | False |
Defines the name of the ReceivedRepresenting mailbox user. |
| ReceivedRepresentingEmailAddress | String | False |
Defines the Simple Mail Transfer Protocol (SMTP) address of the ReceivedRepresenting mailbox user. |
| ReceivedRepresentingRoutingType | String | False |
Defines the routing that is used for the ReceivedRepresenting mailbox. The default is SMTP. |
| LastModifiedName | String | True |
Contains the display name of the last user to modify an item. |
| LastModifiedTime | Datetime | True |
Indicates when an item was last modified. This element is read-only. |
| IsAssociated | Boolean | False |
Indicates whether the item is associated with a folder. |
| WebClientReadFormQueryString | String | True |
Represents a URL to concatenate to the Microsoft Office Outlook Web App endpoint to read an item in Outlook Web App. |
| WebClientEditFormQueryString | String | True |
Represents a URL to concatenate to the Outlook Web App endpoint to edit an item in Outlook Web App. |
| ConversationId | String | True |
Identifies a specific conversation in the Exchange store. |
| ConversationChangeKey | String | True |
Contains the change key of an item or conversation. |
| UniqueBody | String | True |
Represents an HTML fragment or plain-text which represents the unique body of this conversation. |
| UniqueBodyType | String | True |
Describes how the unique item body is stored in the item (HTML or TEXT). |
| ReminderMessageData_Text | String | False |
Specifies the text of a reminder message. |
| ReminderMessageData_Location | String | False |
Represents the location of a meeting, appointment, or persona. |
| ReminderMessageData_StartTime | Datetime | False |
Specifies the starting time of the item that the reminder is for. |
| ReminderMessageData_EndTime | Datetime | False |
Specifies the ending time of the item that the reminder is for. |
| ReminderMessageData_AssociatedCalendarId | String | True |
Represents the calendar item that is associated with the ReminderMessageData. |
| Attachments | String | True |
Contains a comma-separated list of the Ids of the attached files. |
Pseudo column fields are used in the WHERE clause of SELECT statements and offer a more granular control over the tuples that are returned from the data source.
| Name | Type | Description |
| ImpersonationUser | String |
The Identifier of the user to impersonate. |
| ImpersonationType | String |
The type of Identifier used for the impersonation user (PrincipalName, SID, PrimarySmtpAddress, SmtpAddress). |
| SharedMailboxEmail | String |
The email of a shared mailbox. Use this to retrieve the outbox items of a shared mailbox. |
Create, update, delete, and query Sent Items.
When performing a SELECT operation on the SentItems table, the Sync App will not include the items in the subfolders under SentItems, but only the items contained within the SentItems folder.
If you wish to retrieve the items under the SentItems subfolders, your will need to specify the ParentFolderId-s in the WHERE clause. You can get every SentItems subfolder Id by executing a filtered by ParentFolderName query to the Folders table. You can use the example query below, to retrieve the items within the SentItems subfolders:
SELECT * FROM SentItems WHERE ParentFolderId IN (SELECT FolderId FROM Folders WHERE ParentFolderName = 'SentItems' AND TotalCount > 0)
The Sync App will need the ItemChangeKey to update or delete an item. However, if you are unsure of the ItemChangeKey, the Sync App is able to retrieve it from the Exchange server automatically. Note that this may increase the time it takes to perform a query.
| Name | Type | ReadOnly | Description |
| ItemId [KEY] | String | True |
Contains the unique identifier of an item in the Exchange store. |
| MimeContent | String | True |
Contains the native Multipurpose Internet Mail Extensions (MIME) stream of an object that is represented in Base64 binary format. |
| ItemChangeKey | String | True |
Contains the unique change key of an item in the Exchange store. |
| ParentFolderId | String | False |
Represents the unique identifier of the parent folder that contains the item or folder. |
| ParentFolderChangeKey | String | True |
Represents the unique change key of the parent folder that contains the item or folder. |
| ItemClass | String | False |
Represents the message class of an item. |
| Subject | String | False |
Represents the subject for Exchange store items and response objects. The subject is limited to 255 characters. |
| Sensitivity | String | True |
Indicates the sensitivity level of an item. |
| Body | String | False |
Represents the actual body content of a message. |
| DateTimeReceived | Datetime | True |
Represents the date and time that an item in a mailbox was received. |
| Size | Integer | True |
Represents the size in bytes of an item. This property is read-only. |
| Categories | String | False |
Represents a collection of strings that identify to which categories an item in the mailbox belongs. |
| Importance | String | False |
Describes the importance of an item. |
| InReplyTo | String | False |
Represents the identifier of the item to which this item is a reply. |
| IsSubmitted | Boolean | True |
Indicates whether an item has been submitted to the Outbox default folder. |
| IsDraft | Boolean | True |
Represents whether an item has not yet been sent. |
| IsFromMe | Boolean | True |
Indicates whether a user sent an item to himself or herself. |
| IsResend | Boolean | True |
Indicates whether the item had previously been sent. |
| IsUnmodified | Boolean | True |
Indicates whether the item has been modified. |
| InternetMessageHeaders | String | True |
Represents the collection of all Internet message headers that are contained within an item in a mailbox. |
| DateTimeSent | Datetime | True |
Represents the date and time that an item in a mailbox was sent. |
| DateTimeCreated | Datetime | True |
Represents the date and time that a given item in the mailbox was created. |
| ReminderDueBy | Datetime | False |
Represents the date and time when the event occurs. This is used by the ReminderMinutesBeforeStart element to determine when the reminder is displayed. |
| ReminderIsSet | Boolean | False |
Indicates whether a reminder has been set for an item in the Exchange store. |
| ReminderMinutesBeforeStart | Integer | False |
Represents the number of minutes before an event occurs when a reminder is displayed. |
| DisplayCc | String | True |
Represents the display string that is used for the contents of the To box. This is the concatenated string of all To recipient display names. |
| DisplayTo | String | True |
Represents a property that is set to true if an item has at least one visible attachment. This property is read-only. |
| HasAttachments | Boolean | True |
Indicates whether an item has attachments. |
| Culture | String | False |
Represents the Culture of an item. |
| SenderName | String | False |
Defines the name of the Sender mailbox user. |
| SenderEmailAddress | String | False |
Defines the Simple Mail Transfer Protocol (SMTP) address of the Sender mailbox user. |
| SenderRoutingType | String | False |
Defines the routing that is used for the Sender mailbox. The default is SMTP. |
| ToRecipients_Names | String | False |
Defines the name of the ToRecipient. |
| ToRecipients_EmailAddresses | String | False |
Defines the Simple Mail Transfer Protocol (SMTP) address of the ToRecipient. |
| ToRecipients_ItemIds | String | False |
Defines the item identifier of a ToRecipient. |
| CcRecipients_Names | String | False |
Defines the name of the CcRecipient. |
| CcRecipients_EmailAddresses | String | False |
Defines the Simple Mail Transfer Protocol (SMTP) address of the CcRecipient. |
| CcRecipients_ItemIds | String | False |
Defines the item identifier of a CcRecipient. |
| BccRecipients_Names | String | False |
Defines the name of the BccRecipient. |
| BccRecipients_EmailAddresses | String | False |
Defines the Simple Mail Transfer Protocol (SMTP) address of the BccRecipient. |
| BccRecipients_ItemIds | String | False |
Defines the item identifier of a BccRecipient. |
| IsReadReceiptRequested | Boolean | False |
Indicates whether the sender of an item requests a read receipt. |
| IsDeliveryReceiptRequested | Boolean | False |
Indicates whether the sender of an item requests a delivery receipt. |
| ConversationIndex | String | False |
Contains a binary Id that represents the thread to which this message belongs. |
| ConversationTopic | String | False |
Represents the conversation topic. |
| FromName | String | False |
Defines the name of the From mailbox user. |
| FromEmailAddress | String | False |
Defines the Simple Mail Transfer Protocol (SMTP) address of the From mailbox user. |
| FromRoutingType | String | False |
Defines the routing that is used for the From mailbox. The default is SMTP. |
| InternetMessageId | String | False |
Represents the Internet message identifier of an item. |
| IsRead | Boolean | False |
Indicates whether a message has been read. |
| IsResponseRequested | Boolean | False |
Indicates whether a response to an item is requested. |
| References | String | False |
Represents the Usenet header that is used to associate replies with the original messages. |
| EffectiveRights_CreateAssociated | Boolean | True |
Indicates whether a client can create an associated contents table. |
| EffectiveRights_CreateContents | Boolean | True |
Indicates whether a client can create a contents table. |
| EffectiveRights_CreateHierarchy | Boolean | True |
Indicates whether a client can create a hierarchy table. |
| EffectiveRights_Delete | Boolean | True |
Indicates whether a client can delete a folder or item. |
| EffectiveRights_Modify | Boolean | True |
Indicates whether a client can modify a folder or item. |
| EffectiveRights_Read | Boolean | True |
Indicates whether a client can read a folder or item. |
| EffectiveRights_ViewPrivateItems | Boolean | True |
Indicates whether a private item can be viewed. |
| ReceivedByName | String | False |
Defines the name of the ReceivedBy mailbox user. |
| ReceivedByEmailAddress | String | False |
Defines the Simple Mail Transfer Protocol (SMTP) address of the ReceivedBy mailbox user. |
| ReceivedByRoutingType | String | False |
Defines the routing that is used for the ReceivedBy mailbox. The default is SMTP. |
| ReceivedRepresentingName | String | False |
Defines the name of the ReceivedRepresenting mailbox user. |
| ReceivedRepresentingEmailAddress | String | False |
Defines the Simple Mail Transfer Protocol (SMTP) address of the ReceivedRepresenting mailbox user. |
| ReceivedRepresentingRoutingType | String | False |
Defines the routing that is used for the ReceivedRepresenting mailbox. The default is SMTP. |
| LastModifiedName | String | True |
Contains the display name of the last user to modify an item. |
| LastModifiedTime | Datetime | True |
Indicates when an item was last modified. This element is read-only. |
| IsAssociated | Boolean | False |
Indicates whether the item is associated with a folder. |
| WebClientReadFormQueryString | String | True |
Represents a URL to concatenate to the Microsoft Office Outlook Web App endpoint to read an item in Outlook Web App. |
| WebClientEditFormQueryString | String | True |
Represents a URL to concatenate to the Outlook Web App endpoint to edit an item in Outlook Web App. |
| ConversationId | String | True |
Identifies a specific conversation in the Exchange store. |
| ConversationChangeKey | String | True |
Contains the change key of an item or conversation. |
| UniqueBody | String | True |
Represents an HTML fragment or plain-text which represents the unique body of this conversation. |
| UniqueBodyType | String | True |
Describes how the unique item body is stored in the item (HTML or TEXT). |
| ReminderMessageData_Text | String | False |
Specifies the text of a reminder message. |
| ReminderMessageData_Location | String | False |
Represents the location of a meeting, appointment, or persona. |
| ReminderMessageData_StartTime | Datetime | False |
Specifies the starting time of the item that the reminder is for. |
| ReminderMessageData_EndTime | Datetime | False |
Specifies the ending time of the item that the reminder is for. |
| ReminderMessageData_AssociatedCalendarId | String | True |
Represents the calendar item that is associated with the ReminderMessageData. |
| Attachments | String | True |
Contains a comma-separated list of the Ids of the attached files. |
Pseudo column fields are used in the WHERE clause of SELECT statements and offer a more granular control over the tuples that are returned from the data source.
| Name | Type | Description |
| ImpersonationUser | String |
The Identifier of the user to impersonate. |
| ImpersonationType | String |
The type of Identifier used for the impersonation user (PrincipalName, SID, PrimarySmtpAddress, SmtpAddress). |
| SharedMailboxEmail | String |
The email of a shared mailbox. Use this to retrieve the sent items of a shared mailbox. |
Create, update, delete, and query Tasks items.
The Sync App will need the ItemChangeKey to update or delete an item. However, if you are unsure of the ItemChangeKey, the Sync App is able to retrieve it from the Exchange server automatically. Note that this may increase the time it takes to perform a query.
In order to INSERT, SELECT, or UPDATE the Recurrence fields in a Task, you'll need to make sure that you only set the fields associated with the Recurrence_Type and Recurrence_Duration fields. Please see the tables below:
Recurrence_Type Values & Associated Fields
| RelativeYearlyRecurrence | Recurrence_DaysOfWeek, Recurrence_DaysOfWeekIndex, Recurrence_Month |
| AbsoluteYearlyRecurrence | Recurrence_DayOfMonth, Recurrence_Month |
| RelativeMonthlyRecurrence | Recurrence_Interval, Recurrence_DaysOfWeek, Recurrence_DaysOfWeekIndex |
| AbsoluteMonthlyRecurrence | Recurrence_Interval, Recurrence_DayOfMonth |
| WeeklyRecurrence | Recurrence_Interval, Recurrence_DaysOfWeek, Recurrence_FirstDayOfWeek |
| Daily | Recurrence_Interval |
| *Regeneration | Recurrence_Interval |
Recurrence_Duration & Associated Fields
| NoEndRecurrence | Recurrence_StartDate |
| EndDateRecurrence | Recurrence_StartDate, Recurrence_EndDate |
| NumberedRecurrence | Recurrence_StartDate, Recurrence_NumberOfOccurrences |
| Name | Type | ReadOnly | Description |
| ItemId [KEY] | String | True |
Contains the unique identifier of an item in the Exchange store. This property is read-only. |
| MimeContent | String | True |
Contains the native Multipurpose Internet Mail Extensions (MIME) stream of an object that is represented in Base64 binary format. |
| ItemChangeKey | String | True |
Contains the unique change key of an item in the Exchange store. This property is read-only. |
| ParentFolderId | String | False |
Represents the unique identifier of the parent folder that contains the item or folder. This property is read-only. |
| ParentFolderChangeKey | String | True |
Represents the unique change key of the parent folder that contains the item or folder. This property is read-only. |
| ItemClass | String | False |
Represents the message class of an item. |
| Subject | String | False |
Represents the subject for Exchange store items and response objects. The subject is limited to 255 characters. |
| Sensitivity | String | True |
Indicates the sensitivity level of an item. |
| Body | String | False |
This field contains the body for the Task. |
| DateTimeReceived | Datetime | True |
Represents the date and time that an item in a mailbox was received. |
| Size | Integer | True |
Represents the size in bytes of an item. This property is read-only. |
| Categories | String | False |
Represents a collection of strings that identify to which categories an item in the mailbox belongs. |
| InReplyTo | String | True |
Represents the identifier of the item to which this item is a reply. |
| IsSubmitted | Boolean | True |
Indicates whether an item has been submitted to the Outbox default folder. |
| IsDraft | Boolean | True |
Represents whether an item has not yet been sent. |
| IsFromMe | Boolean | True |
Indicates whether a user sent an item to himself or herself. |
| IsResend | Boolean | True |
Indicates whether the item had previously been sent. |
| IsUnmodified | Boolean | True |
Indicates whether the item has been modified. |
| InternetMessageHeaders | String | True |
Represents the collection of all Internet message headers that are contained within an item in a mailbox. |
| DateTimeSent | Datetime | True |
Represents the date and time that an item in a mailbox was sent. |
| DateTimeCreated | Datetime | True |
Represents the date and time that a given item in the mailbox was created. |
| ReminderDueBy | Datetime | False |
Represents the date and time when the event occurs. |
| ReminderIsSet | Boolean | False |
Indicates whether a reminder has been set for an item in the Exchange store. |
| ReminderMinutesBeforeStart | Integer | False |
Represents the number of minutes before an event occurs when a reminder is displayed. |
| DisplayCc | String | True |
Represents the display string that is used for the contents of the To box. This is the concatenated string of all To recipient display names. |
| DisplayTo | String | True |
Represents a property that is set to true if an item has at least one visible attachment. This property is read-only. |
| HasAttachments | Boolean | True |
Indicates whether an item has attachments. |
| Culture | String | False |
Represents the Culture of an item. |
| ActualWork | Integer | False |
Represents the actual amount of time that is spent on a task. |
| AssignedTime | Datetime | False |
Represents the time when a task is assigned to a contact. |
| BillingInformation | String | False |
Holds billing information for a task. |
| ChangeCount | Integer | False |
Specifies the version of the task. |
| Companies1 | String | False |
Represents the collection of companies that are associated with a contact or task. |
| Companies2 | String | False |
Represents the collection of companies that are associated with a contact or task. |
| Companies3 | String | False |
Represents the collection of companies that are associated with a contact or task. |
| CompleteDate | Datetime | False |
Represents the date on which a task is completed. |
| Contacts1 | String | False |
Contains a list of contacts who are associated with a task. |
| Contacts2 | String | False |
Contains a list of contacts who are associated with a task. |
| Contacts3 | String | False |
Contains a list of contacts who are associated with a task. |
| DelegationState | String | False |
Represents the status of a delegated task. |
| Delegator | String | False |
Contains the name of the delegator who assigned the task. |
| DueDate | Datetime | False |
Represents the date when a task item is due. |
| IsAssignmentEditable | Boolean | False |
Indicates whether the task is editable or not. |
| IsComplete | Boolean | False |
Indicates whether the task has been completed or not. |
| IsRecurring | Boolean | True |
Indicates whether a task is part of a recurring item. |
| IsTeamTask | Boolean | False |
Indicates whether the task is owned by a team or not. |
| Mileage | String | False |
Represents mileage for a task item. |
| Owner | String | False |
Represents the owner of a task. |
| PercentComplete | Double | False |
Describes the completion status of a task. |
| Recurrence_Type | String | False |
Contains the recurrence type for task items and meeting requests. The allowed values are RelativeYearlyRecurrence, AbsoluteYearlyRecurrence, RelativeMonthlyRecurrence, AbsoluteMonthlyRecurrence, WeeklyRecurrence, DailyRecurrence, DailyRegeneration, WeeklyRegeneration, MonthlyRegeneration, YearlyRegeneration. |
| Recurrence_DaysOfWeek | String | False |
Describes days of the week that are used in item recurrence patterns. |
| Recurrence_DayOfWeekIndex | String | False |
Describes which week in a month is used in a relative yearly recurrence pattern. The allowed values are First, Second, Third, Fourth, Last. |
| Recurrence_Month | String | False |
Describes the month when a yearly recurring item occurs. |
| Recurrence_DayOfMonth | Integer | False |
Describes the day in a month on which a recurring item occurs. |
| Recurrence_Interval | Integer | False |
Defines the interval between two consecutive recurring items. |
| Recurrence_FirstDayOfWeek | String | False |
Specifies the first day of the week. |
| Recurrence_Duration | String | False |
Contains the recurrence duration type for task items and meeting requests. The allowed values are NoEndRecurrence, EndDateRecurrence, NumberedRecurrence. |
| Recurrence_StartDate | Datetime | False |
Represents the start date of a recurring task or calendar item. |
| Recurrence_EndDate | Datetime | False |
Represents the end date of a recurring task or calendar item. |
| Recurrence_NumberOfOccurrences | Integer | False |
Contains the number of occurrences of a recurring item. |
| StartDate | Datetime | False |
Represents the start date of a task item. |
| Status | String | False |
Represents the status of a task item. |
| StatusDescription | String | True |
Contains an explanation of the task status. |
| TotalWork | Integer | False |
Contains a description of how much work is associated with an item. |
| EffectiveRights_CreateAssociated | Boolean | True |
Indicates whether a client can create an associated contents table. |
| EffectiveRights_CreateContents | Boolean | True |
Indicates whether a client can create a contents table. |
| EffectiveRights_CreateHierarchy | Boolean | True |
Indicates whether a client can create a hierarchy table. |
| EffectiveRights_Delete | Boolean | True |
Indicates whether a client can delete a folder or item. |
| EffectiveRights_Modify | Boolean | True |
Indicates whether a client can modify a folder or item. |
| EffectiveRights_Read | Boolean | True |
Indicates whether a client can read a folder or item. |
| EffectiveRights_ViewPrivateItems | Boolean | True |
Indicates whether a private item can be viewed. |
| LastModifiedName | String | True |
Contains the display name of the last user to modify an item. |
| LastModifiedTime | Datetime | True |
Indicates when an item was last modified. |
| IsAssociated | Boolean | False |
Indicates whether the item is associated with a folder. |
| WebClientReadFormQueryString | String | True |
Represents a URL to concatenate to the Microsoft Office Outlook Web App endpoint to read an item in Outlook Web App. |
| WebClientEditFormQueryString | String | True |
Represents a URL to concatenate to the Outlook Web App endpoint to edit an item in Outlook Web App. |
| ConversationId | String | True |
Contains the identifier of an item or conversation. |
| ConversationChangeKey | String | True |
Contains the change key of an item or conversation. |
| UniqueBody | String | False |
Represents an HTML fragment or plain-text which represents the unique body of this conversation. |
| UniqueBodyType | String | False |
Describes how the unique item body is stored in the item (HTML or TEXT). |
Pseudo column fields are used in the WHERE clause of SELECT statements and offer a more granular control over the tuples that are returned from the data source.
| Name | Type | Description |
| ImpersonationUser | String |
The Identifier of the user to impersonate. |
| ImpersonationType | String |
The type of Identifier used for the impersonation user (PrincipalName, SID, PrimarySmtpAddress, SmtpAddress). |
| SharedMailboxEmail | String |
The email of a shared mailbox. Use this to retrieve the task items of a shared mailbox. |
The CData Sync App models Microsoft Exchange objects as relational tables and views. A Microsoft Exchange object has relationships to other objects; in the tables, these relationships are expressed through foreign keys. The following sections show the available API objects and provide more information on executing SQL to Microsoft Exchange APIs.
Schemas for most database objects are defined in simple, text-based configuration files.
The Sync App models the data in Microsoft Exchange as a list of tables in a relational database that can be queried using standard SQL statements.
| Name | Description |
| CalendarGroups | CalendarGroups table for Exchange data provider. |
| Calendars | Calendars table for Exchange data provider. |
| Contacts | Contacts table for Exchange data provider. |
| Events | Events table for Exchange data provider. |
| ExtendedProperties | Create, update, delete, and query Contacts items. |
| Groups | Groups table for Exchange data provider. |
| MailFolders | MailFolders table for Exchange data provider. |
| Messages | Messages table for Exchange data provider. |
| Users | Users table for Exchange data provider. |
CalendarGroups table for Exchange data provider.
| Name | Type | ReadOnly | Description |
| id [KEY] | String | False | |
| changeKey | String | False | |
| classId | String | False | |
| name | String | False |
Pseudo column fields are used in the WHERE clause of SELECT statements and offer a more granular control over the tuples that are returned from the data source.
| Name | Type | Description |
| userId | String |
Calendars table for Exchange data provider.
You can query Calendars by specifying an Id or selecting all:
SELECT * FROM Calendars WHERE Id = 'your Calendar Id goes here'
Select a certain column from the entity and filter by that column:
SELECT Name FROM Calendars WHERE Name LIKE 'John Calendar%'
Note: Unless specifying the AlwaysRequstTableDependencies connection property, or selecting/filtering by the reference CalendarGroupId, the value for CalendarGroupId will remain null.
Specify a Name as a minimum in order to create a new Calendar:
INSERT INTO Calendars (Name) VALUES ('John')
| Name | Type | ReadOnly | Description |
| calendarGroupId | String | False | |
| id [KEY] | String | False | |
| canEdit | Bool | False | |
| canShare | Bool | False | |
| canViewPrivateItems | Bool | False | |
| changeKey | String | False | |
| color | String | False | |
| name | String | False | |
| owner_name | String | False | |
| owner_address | String | False |
Pseudo column fields are used in the WHERE clause of SELECT statements and offer a more granular control over the tuples that are returned from the data source.
| Name | Type | Description |
| userId | String |
Contacts table for Exchange data provider.
You can query Contacts by specifying an Id or selecting all:
SELECT * FROM Contacts WHERE Id = 'your Contact Id goes here'
Select a certain column from the entity and filter by that column:
SELECT GivenName FROM Contacts WHERE GivenName LIKE 'John%'
Specify a GivenName and a Surname as a minimum in order to create a new Contact:
INSERT INTO Contacts (GivenName, Surname) VALUES ('John', 'Smith')
| Name | Type | ReadOnly | Description |
| id [KEY] | String | False | |
| categories | String | False | |
| changeKey | String | False | |
| createdDateTime | Datetime | False | |
| lastModifiedDateTime | Datetime | False | |
| assistantName | String | False | |
| birthday | Datetime | False | |
| businessAddress_street | String | False | |
| businessAddress_city | String | False | |
| businessAddress_state | String | False | |
| businessAddress_countryOrRegion | String | False | |
| businessAddress_postalCode | String | False | |
| businessHomePage | String | False | |
| businessPhones | String | False | |
| children | String | False | |
| companyName | String | False | |
| department | String | False | |
| displayName | String | False | |
| emailAddresses | String | False | |
| fileAs | String | False | |
| generation | String | False | |
| givenName | String | False | |
| homeAddress_street | String | False | |
| homeAddress_city | String | False | |
| homeAddress_state | String | False | |
| homeAddress_countryOrRegion | String | False | |
| homeAddress_postalCode | String | False | |
| homePhones | String | False | |
| imAddresses | String | False | |
| initials | String | False | |
| jobTitle | String | False | |
| manager | String | False | |
| middleName | String | False | |
| mobilePhone | String | False | |
| nickName | String | False | |
| officeLocation | String | False | |
| otherAddress_street | String | False | |
| otherAddress_city | String | False | |
| otherAddress_state | String | False | |
| otherAddress_countryOrRegion | String | False | |
| otherAddress_postalCode | String | False | |
| parentFolderId | String | False | |
| personalNotes | String | False | |
| profession | String | False | |
| spouseName | String | False | |
| surname | String | False | |
| title | String | False | |
| yomiCompanyName | String | False | |
| yomiGivenName | String | False | |
| yomiSurname | String | False |
Pseudo column fields are used in the WHERE clause of SELECT statements and offer a more granular control over the tuples that are returned from the data source.
| Name | Type | Description |
| userId | String |
Events table for Exchange data provider.
You can retrieve all from Events, specify an Event (Id), CalendarId, or you can filter results by a certain column.
Note: Unless specifying the AlwaysRequstTableDependencies connection property, or selecting/filtering by the reference columns CalendarId, the value for CalendarId will remain null.
Note: To retrieve all Events for Other user (Works only in case of OAuthGrantType=CLIENT), you can specify the query like -
SELECT * FROM Events WHERE UserId = '0409f710-2aa9-4f05-8944-ef382160f1d1' AND CalendarId IN (SELECT Id FROM Calendars WHERE UserId = '0409f710-2aa9-4f05-8944-ef382160f1d1')
To create a new event, start and end are required, including the timezone.
INSERT INTO Events (Subject, Body_Content, Start_DateTime, Start_TimeZone, End_DateTime, End_TimeZone) VALUES ('New Test Event', 'Event created using Office365Provider', '2016-01-01T10:00:00', 'UTC', '2016-01-01T11:00:00', 'UTC')
Note: By default this statement will create your event under the default calendar.
| Name | Type | ReadOnly | Description |
| id [KEY] | String | False | |
| categories | String | False | |
| changeKey | String | False | |
| createdDateTime | Datetime | False | |
| lastModifiedDateTime | Datetime | False | |
| attendees | String | False | |
| body_contentType | String | False | |
| body_content | String | False | |
| bodyPreview | String | False | |
| end_dateTime | String | False | |
| end_timeZone | String | False | |
| hasAttachments | Bool | False | |
| iCalUId | String | False | |
| importance | String | False | |
| isAllDay | Bool | False | |
| isCancelled | Bool | False | |
| isOrganizer | Bool | False | |
| isReminderOn | Bool | False | |
| location_displayName | String | False | |
| location_locationEmailAddress | String | False | |
| location_address_street | String | False | |
| location_address_city | String | False | |
| location_address_state | String | False | |
| location_address_countryOrRegion | String | False | |
| location_address_postalCode | String | False | |
| location_coordinates_altitude | Double | False | |
| location_coordinates_latitude | Double | False | |
| location_coordinates_longitude | Double | False | |
| location_coordinates_accuracy | Double | False | |
| location_coordinates_altitudeAccuracy | Double | False | |
| location_locationUri | String | False | |
| location_locationType | String | False | |
| location_uniqueId | String | False | |
| location_uniqueIdType | String | False | |
| locations | String | False | |
| onlineMeetingUrl | String | False | |
| organizer_emailAddress_name | String | False | |
| organizer_emailAddress_address | String | False | |
| originalEndTimeZone | String | False | |
| originalStart | Datetime | False | |
| originalStartTimeZone | String | False | |
| recurrence_pattern_type | String | False | |
| recurrence_pattern_interval | Int | False | |
| recurrence_pattern_month | Int | False | |
| recurrence_pattern_dayOfMonth | Int | False | |
| recurrence_pattern_daysOfWeek | String | False | |
| recurrence_pattern_firstDayOfWeek | String | False | |
| recurrence_pattern_index | String | False | |
| recurrence_range_type | String | False | |
| recurrence_range_startDate | Date | False | |
| recurrence_range_endDate | Date | False | |
| recurrence_range_recurrenceTimeZone | String | False | |
| recurrence_range_numberOfOccurrences | Int | False | |
| reminderMinutesBeforeStart | Int | False | |
| responseRequested | Bool | False | |
| responseStatus_response | String | False | |
| responseStatus_time | Datetime | False | |
| sensitivity | String | False | |
| seriesMasterId | String | False | |
| showAs | String | False | |
| start_dateTime | String | False | |
| start_timeZone | String | False | |
| subject | String | False | |
| transactionId | String | False | |
| type | String | False | |
| webLink | String | False | |
| calendarId | String | False |
Pseudo column fields are used in the WHERE clause of SELECT statements and offer a more granular control over the tuples that are returned from the data source.
| Name | Type | Description |
| groupId | String | |
| userId | String |
Create, update, delete, and query Contacts items.
You can query ExtendedProperties for a specific resource from the following resources: Events, Calendars and Messages. In order to get the value for an extended property you need to specify:
- Entity field, wether it is Message, Event or Calendar
- EntityId, the Id of the resource
- Id, the id of the extended property.
SELECT * FROM ExtendedProperties WHERE Entity = 'Event' AND EntityId = 'AQMkAGRlMWQ5MDg0LWI5ZTQtNDk2Yi1hOTQ1LTU4YzFmMzEwZjlhMgBGAAAD-FjxR3cIwE6TEGSCVtIHcwcAQyR2Iw3coEOaUD1BLt0tnAAAAw8AAABDJHYjDdygQ5pQPUEu3S2cAAZq-GA0AAAA' AND Id = 'String {66f5a359-4659-4830-9070-00047ec6ac6e} Name Color'
You can create an extended property in a resource, by specifying Entity, EntityId, Id of the extended property and its Value.
INSERT INTO ExtendedProperties (Entity, EntityId, Id, Value) VALUES ('Calendar', 'AQMkAGRlMWQ5MDg0LWI5ZTQtNDk2Yi1hOTQ1LTU4YzFmMzEwZjlhMgBGAAAD-FjxR3cIwE6TEGSCVtIHcwcAQyR2Iw3coEOaUD1BLt0tnAAAAwcAAABDJHYjDdygQ5pQPUEu3S2cAASHbEoeAAAA', 'String {66f5a359-4659-4830-9070-00047ec6ac6e} Name Color', 'Yellow')
| Name | Type | ReadOnly | Description |
| Id | String | False |
The Identifier of the extended property |
| Value | String | False |
The value of the extended property |
| Entity | String | False |
The entity type. |
| EntityId | String | False |
The entity id that the extended properties belong to. |
Groups table for Exchange data provider.
Groups require Administrator permissions. To work with them, you must create your own custom OAuth App and set the appropriate OAuthClientId and OAuthClientSecret. In this app, you must configure it to request the Group.Read.All and the Group.ReadWrite.All permissions. This can be done at https://apps.dev.microsoft.com, or in the App Registrations panel at http://portal.azure.com.
To authorize Groups permissions, an administrator must grant the Groups permissions for your organization at large. This can be done via the
administrator authorization endpoint. Simply have the administrator navigate to the following web page and grant permissions. Then
run the OAuth authorization as normal afterwards.
https://login.microsoftonline.com/common/adminconsent?client_id=[YourClientId]&redirect_uri=http://localhost:33333
Note that if your organization has multiple tenants, you may replace the /common/ in the url with the tenant id to indicate which tenant to grant permissions for.
Retrieve all groups, specify a GroupId (Id), or simply filter by a certain column:
SELECT * FROM Groups WHERE Id = 'Group Id here' SELECT Id, Description, DisplayName FROM Groups WHERE Name = 'test'
The following are required to create a new Security Group:
INSERT INTO Groups (DisplayName, MailEnabled, MailNickname, SecurityEnabled) VALUES ('Test group', false, 'test', true)
| Name | Type | ReadOnly | Description |
| id [KEY] | String | False | |
| deletedDateTime | Datetime | False | |
| allowExternalSenders | Bool | False | |
| assignedLicenses | String | False | |
| autoSubscribeNewMembers | Bool | False | |
| classification | String | False | |
| createdDateTime | Datetime | False | |
| description | String | False | |
| displayName | String | False | |
| groupTypes | String | False | |
| hasMembersWithLicenseErrors | Bool | False | |
| isArchived | Bool | False | |
| isSubscribedByMail | Bool | False | |
| licenseProcessingState_state | String | False | |
| String | False | ||
| mailEnabled | Bool | False | |
| mailNickname | String | False | |
| onPremisesLastSyncDateTime | Datetime | False | |
| onPremisesProvisioningErrors | String | False | |
| onPremisesSecurityIdentifier | String | False | |
| onPremisesSyncEnabled | Bool | False | |
| preferredDataLocation | String | False | |
| proxyAddresses | String | False | |
| renewedDateTime | Datetime | False | |
| securityEnabled | Bool | False | |
| unseenCount | Int | False | |
| visibility | String | False |
MailFolders table for Exchange data provider.
Get the mail folder collection directly under the root folder of the signed-in user. The returned collection includes any mail search folders directly under the root:
SELECT * FROM MailFolders SELECT * FROM MailFolders where userId ='1c67f23f-8681-4c67-9c19-253e628442d5'
Note: This operation does not return all mail folders in a mailbox, only the child folders of the root folder. To return all mail folders in a mailbox, each child folder must be traversed separately.
SELECT * FROM CData.MSGraph.MailFolders Where userId ='1c67f23f-8681-4c67-9c19-253e628442d5' and id = 'AQMkAGY1YTc5NjE4LWE4MWYtNDI3Yy1iYgBmYi1hNDk0ZmMxZTJjZDgALgAAAz6irHRWjXlFqioVZIpcig4BAG0Pxgnb-IlHsx0QnxhOmzcAAAIBGAAAAA==' SELECT * FROM CData.MSGraph.MailFolders Where userId ='1c67f23f-8681-4c67-9c19-253e628442d5' and id = (SELECT parentFolderId from CData.MSGraph.MailFolders where userId ='1c67f23f-8681-4c67-9c19-253e628442d5' and displayName = 'Inbox')
| Name | Type | ReadOnly | Description |
| id [KEY] | String | False | |
| childFolderCount | Int | False | |
| displayName | String | False | |
| parentFolderId | String | False | |
| totalItemCount | Int | False | |
| unreadItemCount | Int | False |
Pseudo column fields are used in the WHERE clause of SELECT statements and offer a more granular control over the tuples that are returned from the data source.
| Name | Type | Description |
| userId | String |
Messages table for Exchange data provider.
You can retrieve all from Messages, specify a Message (Id), ParentFolderId, or you can filter results by a certain column:
SELECT * FROM Messages WHERE Id = 'MyMessageId' SELECT * FROM Messages WHERE ParentFolderId = 'MyParentfolderId' SELECT * FROM Messages WHERE ParentFolderId = 'Drafts'
Note: Unless specifying the AlwaysRequstTableDependencies connection property, or selecting/filtering by the reference columns ParentFolderId, the value for ParentFolderId will remain null.
After the insert a new Message will be created in the User's Drafts folder.
INSERT INTO Messages (Subject, Body_Content) VALUES ('New test Email', 'Test Email created.')
| Name | Type | ReadOnly | Description |
| id [KEY] | String | False | |
| categories | String | False | |
| changeKey | String | False | |
| createdDateTime | Datetime | False | |
| lastModifiedDateTime | Datetime | False | |
| bccRecipients | String | False | |
| body_contentType | String | False | |
| body_content | String | False | |
| bodyPreview | String | False | |
| ccRecipients | String | False | |
| conversationId | String | False | |
| flag_completedDateTime_dateTime | String | False | |
| flag_completedDateTime_timeZone | String | False | |
| flag_flagStatus | String | False | |
| from_emailAddress_name | String | False | |
| from_emailAddress_address | String | False | |
| hasAttachments | Bool | False | |
| importance | String | False | |
| inferenceClassification | String | False | |
| internetMessageHeaders | String | False | |
| internetMessageId | String | False | |
| isDeliveryReceiptRequested | Bool | False | |
| isDraft | Bool | False | |
| isRead | Bool | False | |
| isReadReceiptRequested | Bool | False | |
| parentFolderId | String | False | |
| receivedDateTime | Datetime | False | |
| replyTo | String | False | |
| sender_emailAddress_name | String | False | |
| sender_emailAddress_address | String | False | |
| sentDateTime | Datetime | False | |
| subject | String | False | |
| toRecipients | String | False | |
| uniqueBody_contentType | String | False | |
| uniqueBody_content | String | False | |
| webLink | String | False |
Pseudo column fields are used in the WHERE clause of SELECT statements and offer a more granular control over the tuples that are returned from the data source.
| Name | Type | Description |
| userId | String |
Users table for Exchange data provider.
Query the Users table by retrieving everything from Users, specifying a Id, or filtering by a column:
SELECT * FROM Users WHERE Id = '616391f0-32d8-4127-8f25-aa55771d6617' SELECT DisplayName, Id FROM Users WHERE DisplayName LIKE 'John%'
The following are required to create a new organizational User:
INSERT INTO Users (AccountEnabled, DisplayName, MailNickname, UserPrincipalName, PasswordProfile_ForceChangePasswordNextSignIn, PasswordProfile_Password) VALUES (false, 'John Smith', 'JohnS', '[email protected]', true, '123password')
| Name | Type | ReadOnly | Description |
| id [KEY] | String | False | |
| deletedDateTime | Datetime | False | |
| aboutMe | String | False | |
| accountEnabled | Bool | False | |
| ageGroup | String | False | |
| assignedLicenses | String | False | |
| assignedPlans | String | False | |
| birthday | Datetime | False | |
| businessPhones | String | False | |
| city | String | False | |
| companyName | String | False | |
| consentProvidedForMinor | String | False | |
| country | String | False | |
| department | String | False | |
| deviceEnrollmentLimit | Int | False | |
| displayName | String | False | |
| employeeId | String | False | |
| faxNumber | String | False | |
| givenName | String | False | |
| hireDate | Datetime | False | |
| imAddresses | String | False | |
| interests | String | False | |
| isResourceAccount | Bool | False | |
| jobTitle | String | False | |
| legalAgeGroupClassification | String | False | |
| licenseAssignmentStates | String | False | |
| String | False | ||
| mailboxSettings_automaticRepliesSetting_status | String | False | |
| mailboxSettings_automaticRepliesSetting_externalAudience | String | False | |
| mailboxSettings_automaticRepliesSetting_scheduledStartDateTime_dateTime | String | False | |
| mailboxSettings_automaticRepliesSetting_scheduledStartDateTime_timeZone | String | False | |
| mailboxSettings_automaticRepliesSetting_internalReplyMessage | String | False | |
| mailboxSettings_automaticRepliesSetting_externalReplyMessage | String | False | |
| mailboxSettings_archiveFolder | String | False | |
| mailboxSettings_timeZone | String | False | |
| mailboxSettings_language_locale | String | False | |
| mailboxSettings_language_displayName | String | False | |
| mailboxSettings_workingHours_daysOfWeek | String | False | |
| mailboxSettings_workingHours_startTime | Time | False | |
| mailboxSettings_workingHours_endTime | Time | False | |
| mailboxSettings_workingHours_timeZone_name | String | False | |
| mailNickname | String | False | |
| mobilePhone | String | False | |
| mySite | String | False | |
| officeLocation | String | False | |
| onPremisesDistinguishedName | String | False | |
| onPremisesDomainName | String | False | |
| onPremisesExtensionAttributes_extensionAttribute1 | String | False | |
| onPremisesExtensionAttributes_extensionAttribute2 | String | False | |
| onPremisesExtensionAttributes_extensionAttribute3 | String | False | |
| onPremisesExtensionAttributes_extensionAttribute4 | String | False | |
| onPremisesExtensionAttributes_extensionAttribute5 | String | False | |
| onPremisesExtensionAttributes_extensionAttribute6 | String | False | |
| onPremisesExtensionAttributes_extensionAttribute7 | String | False | |
| onPremisesExtensionAttributes_extensionAttribute8 | String | False | |
| onPremisesExtensionAttributes_extensionAttribute9 | String | False | |
| onPremisesExtensionAttributes_extensionAttribute10 | String | False | |
| onPremisesExtensionAttributes_extensionAttribute11 | String | False | |
| onPremisesExtensionAttributes_extensionAttribute12 | String | False | |
| onPremisesExtensionAttributes_extensionAttribute13 | String | False | |
| onPremisesExtensionAttributes_extensionAttribute14 | String | False | |
| onPremisesExtensionAttributes_extensionAttribute15 | String | False | |
| onPremisesImmutableId | String | False | |
| onPremisesLastSyncDateTime | Datetime | False | |
| onPremisesProvisioningErrors | String | False | |
| onPremisesSamAccountName | String | False | |
| onPremisesSecurityIdentifier | String | False | |
| onPremisesSyncEnabled | Bool | False | |
| onPremisesUserPrincipalName | String | False | |
| otherMails | String | False | |
| passwordPolicies | String | False | |
| passwordProfile_password | String | False | |
| passwordProfile_forceChangePasswordNextSignIn | Bool | False | |
| passwordProfile_forceChangePasswordNextSignInWithMfa | Bool | False | |
| pastProjects | String | False | |
| postalCode | String | False | |
| preferredLanguage | String | False | |
| preferredName | String | False | |
| provisionedPlans | String | False | |
| proxyAddresses | String | False | |
| responsibilities | String | False | |
| schools | String | False | |
| showInAddressList | Bool | False | |
| signInSessionsValidFromDateTime | Datetime | False | |
| skills | String | False | |
| state | String | False | |
| streetAddress | String | False | |
| surname | String | False | |
| usageLocation | String | False | |
| userPrincipalName | String | False | |
| userType | String | False |
Views are similar to tables in the way that data is represented; however, views are read-only.
Queries can be executed against a view as if it were a normal table.
| Name | Description |
| CalendarView | Retrieve the ccurrences, exceptions, and single instances of events in a calendar view defined by a time range, from the user's default calendar, or from some other calendar of the user's. |
| EventAttachments | EventAttachments View for Exchange data provider. |
| EventInstances | EventInstances View for Exchange data provider. |
| GroupMembers | Group Members table for Exchange data provider. |
| MessageAttachments | MessageAttachments View for Exchange data provider. |
Retrieve the ccurrences, exceptions, and single instances of events in a calendar view defined by a time range, from the user's default calendar, or from some other calendar of the user's.
Get the occurrences, exceptions, and single instances of events in a calendar view defined by a time range, from the user's default calendar, or from some other calendar of the user's. By default only the event occurrences from the user's default calendar in the range of the last 30 days are returned. You can filter results by CalendarId, Start_DateTime, End_DateTime.
For example the following queries are processed server-side:
SELECT * FROM CalendarView WHERE Start_DateTime >= '2019-12-10 15:00' AND End_DateTime <= '2020-01-10 14:30'
SELECT * FROM CalendarView WHERE CalendarId = 'AQMkAGRlMWQ5MDg0LWI5ZTQtNDk2Yi1hOTQ1LTU4YzFmMzEwZjlhMgBGAAAD-FjxR3cIwE6TEGSCVtIHcwcAQyR2Iw3coEOaUD1BLt0tnAAAAwcAAABDJHYjDdygQ5pQPUEu3S2cAAACC_IAAAA='
NOTE Unless specifying the AlwaysRequestTableDependencies connection property or selecting/filtering by the reference column CalendarId, the value for CalendarId remains null.
| Name | Type | Description |
| id [KEY] | String | |
| categories | String | |
| changeKey | String | |
| createdDateTime | Datetime | |
| lastModifiedDateTime | Datetime | |
| attendees | String | |
| body_contentType | String | |
| body_content | String | |
| bodyPreview | String | |
| end_dateTime | String | |
| end_timeZone | String | |
| hasAttachments | Bool | |
| iCalUId | String | |
| importance | String | |
| isAllDay | Bool | |
| isCancelled | Bool | |
| isOrganizer | Bool | |
| isReminderOn | Bool | |
| location_displayName | String | |
| location_locationEmailAddress | String | |
| location_address_street | String | |
| location_address_city | String | |
| location_address_state | String | |
| location_address_countryOrRegion | String | |
| location_address_postalCode | String | |
| location_coordinates_altitude | Double | |
| location_coordinates_latitude | Double | |
| location_coordinates_longitude | Double | |
| location_coordinates_accuracy | Double | |
| location_coordinates_altitudeAccuracy | Double | |
| location_locationUri | String | |
| location_locationType | String | |
| location_uniqueId | String | |
| location_uniqueIdType | String | |
| locations | String | |
| onlineMeetingUrl | String | |
| organizer_emailAddress_name | String | |
| organizer_emailAddress_address | String | |
| originalEndTimeZone | String | |
| originalStart | Datetime | |
| originalStartTimeZone | String | |
| recurrence_pattern_type | String | |
| recurrence_pattern_interval | Int | |
| recurrence_pattern_month | Int | |
| recurrence_pattern_dayOfMonth | Int | |
| recurrence_pattern_daysOfWeek | String | |
| recurrence_pattern_firstDayOfWeek | String | |
| recurrence_pattern_index | String | |
| recurrence_range_type | String | |
| recurrence_range_startDate | Date | |
| recurrence_range_endDate | Date | |
| recurrence_range_recurrenceTimeZone | String | |
| recurrence_range_numberOfOccurrences | Int | |
| reminderMinutesBeforeStart | Int | |
| responseRequested | Bool | |
| responseStatus_response | String | |
| responseStatus_time | Datetime | |
| sensitivity | String | |
| seriesMasterId | String | |
| showAs | String | |
| start_dateTime | String | |
| start_timeZone | String | |
| subject | String | |
| type | String | |
| webLink | String | |
| calendarId | String |
EventAttachments View for Exchange data provider.
You can query EventAttachments by specifying the Event Id (Requried):
SELECT * FROM [EventAttachments] WHERE EventId = 'event id'
This query will get the Attachments of the specified Event as a list without including their content.
| Name | Type | Description |
| eventId | String | |
| id [KEY] | String | |
| contentType | String | |
| isInline | Bool | |
| lastModifiedDateTime | Datetime | |
| name | String | |
| size | Int | |
| userId | String |
EventInstances View for Exchange data provider.
You can query EventInstances by specifying the Event Id, StartDatetime and EndDateTime. EventId is a required field, instead StartDatetime and EndDateTime have a default range of the last 30 days. If you query filtering only by EventId and the specific event does not exist within this time range, you will get empty results.
SELECT * FROM [EventInstances] WHERE id = 'event id' AND StartDateTime = '2018/01/01' AND EndDateTime = '2018/12/31'
SELECT * FROM [EventInstances] WHERE id = 'event id'
By default, if StartDateTime and EndDateTime filters are not specified, only the event instances from the user's default calendar in the range of the last 30 days will be returned. Otherwise, the query will get the instances of the Event during the period specified by StartDateTime and EndDateTime.
| Name | Type | Description |
| eventId | String | |
| id [KEY] | String | |
| categories | String | |
| changeKey | String | |
| createdDateTime | Datetime | |
| lastModifiedDateTime | Datetime | |
| attendees | String | |
| body_contentType | String | |
| body_content | String | |
| bodyPreview | String | |
| end_dateTime | String | |
| end_timeZone | String | |
| hasAttachments | Bool | |
| iCalUId | String | |
| importance | String | |
| isAllDay | Bool | |
| isCancelled | Bool | |
| isOrganizer | Bool | |
| isReminderOn | Bool | |
| location_displayName | String | |
| location_locationEmailAddress | String | |
| location_address_street | String | |
| location_address_city | String | |
| location_address_state | String | |
| location_address_countryOrRegion | String | |
| location_address_postalCode | String | |
| location_coordinates_altitude | Double | |
| location_coordinates_latitude | Double | |
| location_coordinates_longitude | Double | |
| location_coordinates_accuracy | Double | |
| location_coordinates_altitudeAccuracy | Double | |
| location_locationUri | String | |
| location_locationType | String | |
| location_uniqueId | String | |
| location_uniqueIdType | String | |
| locations | String | |
| onlineMeetingUrl | String | |
| organizer_emailAddress_name | String | |
| organizer_emailAddress_address | String | |
| originalEndTimeZone | String | |
| originalStart | Datetime | |
| originalStartTimeZone | String | |
| recurrence_pattern_type | String | |
| recurrence_pattern_interval | Int | |
| recurrence_pattern_month | Int | |
| recurrence_pattern_dayOfMonth | Int | |
| recurrence_pattern_daysOfWeek | String | |
| recurrence_pattern_firstDayOfWeek | String | |
| recurrence_pattern_index | String | |
| recurrence_range_type | String | |
| recurrence_range_startDate | Date | |
| recurrence_range_endDate | Date | |
| recurrence_range_recurrenceTimeZone | String | |
| recurrence_range_numberOfOccurrences | Int | |
| reminderMinutesBeforeStart | Int | |
| responseRequested | Bool | |
| responseStatus_response | String | |
| responseStatus_time | Datetime | |
| sensitivity | String | |
| seriesMasterId | String | |
| showAs | String | |
| start_dateTime | String | |
| start_timeZone | String | |
| subject | String | |
| type | String | |
| webLink | String |
Group Members table for Exchange data provider.
Groups require Administrator permissions. To work with them, you must create your own custom OAuth App and set the appropriate OAuthClientId and OAuthClientSecret. In this app, you must configure it to request the GroupMember.Read.All and the GroupMember.ReadWrite.All permissions. This can be done at https://apps.dev.microsoft.com, or in the App Registrations panel at http://portal.azure.com.
To authorize GroupMembers permissions, an administrator must grant the GroupMembers permissions for your organization at large. This can be done via the
administrator authorization endpoint. Simply have the administrator navigate to the following web page and grant permissions. Then
run the OAuth authorization as normal afterwards.
https://login.microsoftonline.com/common/adminconsent?client_id=[YourClientId]&redirect_uri=http://localhost:33333
Note that if your organization has multiple tenants, you may replace the /common/ in the url with the tenant id to indicate which tenant to grant permissions for.
The Sync App uses the Microsoft Exchange API to process WHERE clause conditions. The rest of the filter is executed client-side in the Sync App.
For example, the following query is processed server-side:
SELECT * FROM GroupMembers
| Name | Type | Description |
| Id [KEY] | String | |
| GroupId | String | |
| AssistantName | String | |
| BusinessPhones | String | |
| Classification | String | |
| CreatedDateTime | Datetime | |
| CreationOptions | String | |
| DeletedDateTime | Datetime | |
| Description | String | |
| DisplayName | String | |
| ExpirationDateTime | Datetime | |
| GivenName | String | |
| GroupTypes | String | |
| IsAssignableToRole | Boolean | |
| JobTitle | String | |
| String | ||
| MailEnabled | Bool | |
| MailNickname | String | |
| MembershipRule | String | |
| MembershipRuleProcessingState | String | |
| MobilePhone | String | |
| OfficeLocation | String | |
| OnPremisesDomainName | String | |
| OnPremisesLastSyncDateTime | Datetime | |
| OnPremisesNetBiosName | String | |
| OnPremisesProvisioningErrors | String | |
| OnPremisesSamAccountName | String | |
| OnPremisesSecurityIdentifier | String | |
| OnPremisesSyncEnabled | Bool | |
| PreferredDataLocation | String | |
| PreferredLanguage | String | |
| ProxyAddresses | String | |
| RenewedDateTime | Datetime | |
| SecurityEnabled | Bool | |
| Surname | String | |
| UserPrincipalName | String | |
| Visibility | String |
MessageAttachments View for Exchange data provider.
You can query MessageAttachments by specifying the Message Id (Required):
SELECT * FROM [MessageAttachments] WHERE MessageId = 'message id' SELECT * FROM [MessageAttachments] WHERE UserId = '92dfdfc6-f1d4-4965-9f71-30e4da4fa7fe' AND Id = 'AQMkAGRlMWQ5MDg0LWI5ZTQtNDk2Yi1hOTQ1LTU4YzFmMzEwZjlhMgBGAAAD-FjxR3cIwE6TEGSCVtIHcwcAQyR2Iw3coEOaUD1BLt0tnAAAAw4AAABDJHYjDdygQ5pQPUEu3S2cAAhJYnE3AAAAARIAEADUFdfqaYanT5_pTPvzgMYh' AND MessageId = 'AQMkAGRlMWQ5MDg0LWI5ZTQtNDk2Yi1hOTQ1LTU4YzFmMzEwZjlhMgBGAAAD-FjxR3cIwE6TEGSCVtIHcwcAQyR2Iw3coEOaUD1BLt0tnAAAAw4AAABDJHYjDdygQ5pQPUEu3S2cAAhJYnE3AAAA'
This query will get the Attachments of the specified Message as a list without including their content.
| Name | Type | Description |
| messageId | String | |
| id [KEY] | String | |
| contentType | String | |
| isInline | Bool | |
| lastModifiedDateTime | Datetime | |
| name | String | |
| size | Int | |
| userId | String |
The connection string properties are the various options that can be used to establish a connection. This section provides a complete list of the options you can configure in the connection string for this provider. Click the links for further details.
For more information on establishing a connection, see Establishing a Connection.
| Property | Description |
| Platform | The Platform associated with the Exchange server. |
| Schema | Specify the Microsoft Exchange schema. |
| AuthScheme | The scheme used for authentication. Accepted entries are NTLM, Basic, Digest, None, Negotiate, OAuth, AzureAD, AzureServicePrincipal and AzureMSI. |
| Server | The address of the Exchange server to which you are connecting. |
| User | The user who is authenticating to the Exchange site. |
| Password | The password used to authenticate to the Exchange site. |
| Office365Environment | The Office365 Environment to use when establishing a connection. |
| Property | Description |
| AzureTenant | Identifies the Microsoft Exchange tenant being used to access data, either by name (for example, contoso.omnicrosoft.com) or ID. (Conditional). |
| Property | Description |
| OAuthClientId | Specifies the client Id that was assigned the custom OAuth application was created. (Also known as the consumer key.) This ID registers the custom application with the OAuth authorization server. |
| OAuthClientSecret | Specifies the client secret that was assigned when the custom OAuth application was created. (Also known as the consumer secret ). This secret registers the custom application with the OAuth authorization server. |
| OAuthGrantType | Specifies the grant type for the chosen OAuth flow. This value should be the same as the grant_type that was set during OAuth custom application creation. |
| UserId | Specify this UserId in order to access Outlook resources for a specific user. Required when OAuthGrantType is set to 'CLIENT'. |
| Property | Description |
| OAuthJWTCert | The JWT Certificate store. |
| OAuthJWTCertType | The type of key store containing the JWT Certificate. |
| OAuthJWTCertPassword | The password for the OAuth JWT certificate used to access a certificate store that requires a password. If the certificate store does not require a password, leave this property blank. |
| OAuthJWTCertSubject | The subject of the OAuth JWT certificate used to locate a matching certificate in the store. Supports partial matches and the wildcard '*' to select the first certificate. |
| Property | Description |
| KerberosKDC | The Kerberos Key Distribution Center (KDC) service used to authenticate the user. |
| KerberosRealm | The Kerberos Realm used to authenticate the user. |
| KerberosSPN | The service principal name (SPN) for the Kerberos Domain Controller. |
| KerberosUser | The principal name for the Kerberos Domain Controller. Used in the format host/user@realm. |
| KerberosKeytabFile | The Keytab file containing your pairs of Kerberos principals and encrypted keys. |
| KerberosServiceRealm | The Kerberos realm of the service. |
| KerberosServiceKDC | The Kerberos KDC of the service. |
| KerberosTicketCache | The full file path to an MIT Kerberos credential cache file. |
| Property | Description |
| SSLServerCert | Specifies the certificate to be accepted from the server when connecting using TLS/SSL. |
| Property | Description |
| FirewallType | Specifies the protocol the provider uses to tunnel traffic through a proxy-based firewall. |
| FirewallServer | Identifies the IP address, DNS name, or host name of a proxy used to traverse a firewall and relay user queries to network resources. |
| FirewallPort | Specifies the TCP port to be used for a proxy-based firewall. |
| FirewallUser | Identifies the user ID of the account authenticating to a proxy-based firewall. |
| FirewallPassword | Specifies the password of the user account authenticating to a proxy-based firewall. |
| Property | Description |
| ProxyAutoDetect | Specifies whether the provider checks your system proxy settings for existing proxy server configurations, rather than using a manually specified proxy server. |
| ProxyServer | The hostname or IP address of the proxy server that you want to route HTTP traffic through. |
| ProxyPort | The TCP port on your specified proxy server (set in the ProxyServer connection property) that has been reserved for routing HTTP traffic to and from the client. |
| ProxyAuthScheme | Specifies the authentication method the provider uses when authenticating to the proxy server specified in the ProxyServer connection property. |
| ProxyUser | The username of a user account registered with the proxy server specified in the ProxyServer connection property. |
| ProxyPassword | The password associated with the user specified in the ProxyUser connection property. |
| ProxySSLType | The SSL type to use when connecting to the proxy server specified in the ProxyServer connection property. |
| ProxyExceptions | A semicolon separated list of destination hostnames or IPs that are exempt from connecting through the proxy server set in the ProxyServer connection property. |
| Property | Description |
| LogModules | Specifies the core modules to include in the log file. Use a semicolon-separated list of module names. By default, all modules are logged. |
| Property | Description |
| Location | Specifies the location of a directory containing schema files that define tables, views, and stored procedures. Depending on your service's requirements, this may be expressed as either an absolute path or a relative path. |
| BrowsableSchemas | Optional setting that restricts the schemas reported to a subset of all available schemas. For example, BrowsableSchemas=SchemaA,SchemaB,SchemaC . |
| Tables | Optional setting that restricts the tables reported to a subset of all available tables. For example, Tables=TableA,TableB,TableC . |
| Views | Optional setting that restricts the views reported to a subset of the available tables. For example, Views=ViewA,ViewB,ViewC . |
| Property | Description |
| AlwaysRequestTableDependencies | Control whether you want to always retrieve Table Dependencies (Foreign Keys). Setting this to TRUE might slow down queries and increase amount of calls made. |
| BodyType | The BodyType element identifies how the body text is formatted in the response. |
| CustomHeaders | Specifies additional HTTP headers to append to the request headers created from other properties, such as ContentType and From. Use this property to customize requests for specialized or nonstandard APIs. |
| DirectoryRetrievalDepth | Depth level of folder to query Folders and Items. |
| DisableServerSideFiltering | Control whether you want to disable server-side filtering. By default this property is set to False, and server-side filtering is attempted for all columns/tables. |
| GroupId | Specify this GroupId in order to access the OneNote documents for this group. |
| ImpersonationType | The type of identifier to use with impersonation while sending requests to the Exchange site. |
| ImpersonationUser | The user to impersonate while sending requests to the Exchange site. |
| IncludeContent | A boolean indicating if additional content should be retrieved. |
| MaxRows | Specifies the maximum rows returned for queries without aggregation or GROUP BY. |
| Other | Specifies additional hidden properties for specific use cases. These are not required for typical provider functionality. Use a semicolon-separated list to define multiple properties. |
| Pagesize | Specifies the maximum number of results to return from Microsoft Exchange, per page. This setting overrides the default page size set by the datasource, which is optimized for most use cases. |
| PseudoColumns | Specifies the pseudocolumns to expose as table columns. Use the format 'TableName=ColumnName;TableName=ColumnName'. The default is an empty string, which disables this property. |
| Timeout | Specifies the maximum time, in seconds, that the provider waits for a server response before throwing a timeout error. The default is 60 seconds. Set to 0 to disable the timeout. |
| UseInplaceArchive | A boolean indicating whether to use either the in-place archive or the default mailbox. |
| UserDefinedViews | Specifies a filepath to a JSON configuration file defining custom views. The provider automatically detects and uses the views specified in this file. |
This section provides a complete list of the Authentication properties you can configure in the connection string for this provider.
| Property | Description |
| Platform | The Platform associated with the Exchange server. |
| Schema | Specify the Microsoft Exchange schema. |
| AuthScheme | The scheme used for authentication. Accepted entries are NTLM, Basic, Digest, None, Negotiate, OAuth, AzureAD, AzureServicePrincipal and AzureMSI. |
| Server | The address of the Exchange server to which you are connecting. |
| User | The user who is authenticating to the Exchange site. |
| Password | The password used to authenticate to the Exchange site. |
| Office365Environment | The Office365 Environment to use when establishing a connection. |
The Platform associated with the Exchange server.
The Platform associated with the Exchange server.
| Exchange2007* | Target the initial release version of Exchange 2007. |
| Exchange2007_SP1* | Target Exchange 2007 Service Pack 1 (SP1), Exchange 2007 Service Pack 2 (SP2), and Exchange 2007 Service Pack 3 (SP3). |
| Exchange2010 | Target Exchange 2010. |
| Exchange2010_SP1 | Target Exchange 2010 Service Pack 1 (SP1). |
| Exchange2010_SP2 | Target Exchange 2010 Service Pack 2 (SP2) and Exchange 2010 Service Pack 3 (SP3). |
| Exchange2013 | Target Exchange 2013. |
| Exchange2013_SP1 | Target Exchange 2013 Service Pack 1 (SP1). |
| Exchange_Online | Target Exchange Online. |
* - These APIs do not support filtering using the WHERE clause.
Specify the Microsoft Exchange schema.
The schemas available are EWS and MSGraph.
The scheme used for authentication. Accepted entries are NTLM, Basic, Digest, None, Negotiate, OAuth, AzureAD, AzureServicePrincipal and AzureMSI.
Together with Password and User, this field is used to authenticate against the server. Basic is the default option. Use the following options to select your authentication scheme:
The address of the Exchange server to which you are connecting.
Set to the Exchange Web Services URL. For Exchange Online, set it to https://outlook.office365.com/EWS/Exchange.asmx. For Exchange On-Premises, set it to https://<mail-server>/EWS/Exchange.asmx.
The user who is authenticating to the Exchange site.
The username used to authenticate to the Exchange site. NOTE: According to Exchange, Basic authentication (using User and Password) will be deprecated soon.
The password used to authenticate to the Exchange site.
The password used to authenticate to the Exchange site. NOTE: According to Exchange, Basic authentication (using User and Password) will be deprecated soon.
The Office365 Environment to use when establishing a connection.
In most cases, leaving the environment set to global will work. However, if your Office365 Account has been added to a different environment, the Office365Environment may be used to specify which environment. The available values are GLOBAL, CHINA, USGOVTGCC, USGOVTDOD.
This section provides a complete list of the Azure Authentication properties you can configure in the connection string for this provider.
| Property | Description |
| AzureTenant | Identifies the Microsoft Exchange tenant being used to access data, either by name (for example, contoso.omnicrosoft.com) or ID. (Conditional). |
Identifies the Microsoft Exchange tenant being used to access data, either by name (for example, contoso.omnicrosoft.com) or ID. (Conditional).
A tenant is a digital representation of your organization, primarily associated with a domain (for example, microsoft.com). The tenant is managed through a Tenant ID (also known as the directory ID), which is specified whenever you assign users permissions to access or manage Azure resources.
To locate the directory ID in the Azure Portal, navigate to Azure Active Directory > Properties.
Specifying AzureTenant is required when AuthScheme = either AzureServicePrincipal or AzureServicePrincipalCert, or if AuthScheme = AzureAD and the user belongs to more than one tenant.
This section provides a complete list of the OAuth properties you can configure in the connection string for this provider.
| Property | Description |
| OAuthClientId | Specifies the client Id that was assigned the custom OAuth application was created. (Also known as the consumer key.) This ID registers the custom application with the OAuth authorization server. |
| OAuthClientSecret | Specifies the client secret that was assigned when the custom OAuth application was created. (Also known as the consumer secret ). This secret registers the custom application with the OAuth authorization server. |
| OAuthGrantType | Specifies the grant type for the chosen OAuth flow. This value should be the same as the grant_type that was set during OAuth custom application creation. |
| UserId | Specify this UserId in order to access Outlook resources for a specific user. Required when OAuthGrantType is set to 'CLIENT'. |
Specifies the client Id that was assigned the custom OAuth application was created. (Also known as the consumer key.) This ID registers the custom application with the OAuth authorization server.
OAuthClientId is one of a handful of connection parameters that need to be set before users can authenticate via OAuth. For details, see Establishing a Connection.
Specifies the client secret that was assigned when the custom OAuth application was created. (Also known as the consumer secret ). This secret registers the custom application with the OAuth authorization server.
OAuthClientSecret is one of a handful of connection parameters that need to be set before users can authenticate via OAuth. For details, see Establishing a Connection.
Specifies the grant type for the chosen OAuth flow. This value should be the same as the grant_type that was set during OAuth custom application creation.
In most cases, the default grant type should not be modified. For information about the most common OAuth grant types and the trade-offs between them, see https://oauth.net/2/grant-types/.
Specify this UserId in order to access Outlook resources for a specific user. Required when OAuthGrantType is set to 'CLIENT'.
Specify this UserId in order to access Outlook resources for a specific user. Required when OAuthGrantType is set to 'CLIENT'.
This section provides a complete list of the JWT OAuth properties you can configure in the connection string for this provider.
| Property | Description |
| OAuthJWTCert | The JWT Certificate store. |
| OAuthJWTCertType | The type of key store containing the JWT Certificate. |
| OAuthJWTCertPassword | The password for the OAuth JWT certificate used to access a certificate store that requires a password. If the certificate store does not require a password, leave this property blank. |
| OAuthJWTCertSubject | The subject of the OAuth JWT certificate used to locate a matching certificate in the store. Supports partial matches and the wildcard '*' to select the first certificate. |
The JWT Certificate store.
The name of the certificate store for the client certificate.
The OAuthJWTCertType field specifies the type of the certificate store specified by OAuthJWTCert. If the store is password protected, specify the password in OAuthJWTCertPassword.
OAuthJWTCert is used in conjunction with the OAuthJWTCertSubject field in order to specify client certificates. If OAuthJWTCert has a value, and OAuthJWTCertSubject is set, a search for a certificate is initiated. Please refer to the OAuthJWTCertSubject field for details.
Designations of certificate stores are platform-dependent.
The following are designations of the most common User and Machine certificate stores in Windows:
| MY | A certificate store holding personal certificates with their associated private keys. |
| CA | Certifying authority certificates. |
| ROOT | Root certificates. |
| SPC | Software publisher certificates. |
In Java, the certificate store normally is a file containing certificates and optional private keys.
When the certificate store type is PFXFile, this property must be set to the name of the file. When the type is PFXBlob, the property must be set to the binary contents of a PFX file (i.e. PKCS12 certificate store).
The type of key store containing the JWT Certificate.
This property can take one of the following values:
| USER | For Windows, this specifies that the certificate store is a certificate store owned by the current user. Note: This store type is not available in Java. |
| MACHINE | For Windows, this specifies that the certificate store is a machine store. Note: this store type is not available in Java. |
| PFXFILE | The certificate store is the name of a PFX (PKCS12) file containing certificates. |
| PFXBLOB | The certificate store is a string (base-64-encoded) representing a certificate store in PFX (PKCS12) format. |
| JKSFILE | The certificate store is the name of a Java key store (JKS) file containing certificates. Note: this store type is only available in Java. |
| JKSBLOB | The certificate store is a string (base-64-encoded) representing a certificate store in Java key store (JKS) format. Note: this store type is only available in Java. |
| PEMKEY_FILE | The certificate store is the name of a PEM-encoded file that contains a private key and an optional certificate. |
| PEMKEY_BLOB | The certificate store is a string (base64-encoded) that contains a private key and an optional certificate. |
| PUBLIC_KEY_FILE | The certificate store is the name of a file that contains a PEM- or DER-encoded public key certificate. |
| PUBLIC_KEY_BLOB | The certificate store is a string (base-64-encoded) that contains a PEM- or DER-encoded public key certificate. |
| SSHPUBLIC_KEY_FILE | The certificate store is the name of a file that contains an SSH-style public key. |
| SSHPUBLIC_KEY_BLOB | The certificate store is a string (base-64-encoded) that contains an SSH-style public key. |
| P7BFILE | The certificate store is the name of a PKCS7 file containing certificates. |
| PPKFILE | The certificate store is the name of a file that contains a PPK (PuTTY Private Key). |
| XMLFILE | The certificate store is the name of a file that contains a certificate in XML format. |
| XMLBLOB | The certificate store is a string that contains a certificate in XML format. |
| BCFKSFILE | The certificate store is the name of a file that contains an Bouncy Castle keystore. |
| BCFKSBLOB | The certificate store is a string (base-64-encoded) that contains a Bouncy Castle keystore. |
The password for the OAuth JWT certificate used to access a certificate store that requires a password. If the certificate store does not require a password, leave this property blank.
This property specifies the password needed to open the certificate store, but only if the store type requires one. To determine if a password is necessary, refer to the documentation or configuration for your specific certificate store.
The subject of the OAuth JWT certificate used to locate a matching certificate in the store. Supports partial matches and the wildcard '*' to select the first certificate.
The value of this property is used to locate a matching certificate in the store. The search process works as follows:
You can set the value to '*' to automatically select the first certificate in the store. The certificate subject is a comma-separated list of distinguished name fields and values. For example: CN=www.server.com, OU=test, C=US, [email protected]. Common fields include:
| Field | Meaning |
| CN | Common Name. This is commonly a host name like www.server.com. |
| O | Organization |
| OU | Organizational Unit |
| L | Locality |
| S | State |
| C | Country |
| E | Email Address |
If a field value contains a comma, enclose it in quotes. For example: "O=ACME, Inc.".
This section provides a complete list of the Kerberos properties you can configure in the connection string for this provider.
| Property | Description |
| KerberosKDC | The Kerberos Key Distribution Center (KDC) service used to authenticate the user. |
| KerberosRealm | The Kerberos Realm used to authenticate the user. |
| KerberosSPN | The service principal name (SPN) for the Kerberos Domain Controller. |
| KerberosUser | The principal name for the Kerberos Domain Controller. Used in the format host/user@realm. |
| KerberosKeytabFile | The Keytab file containing your pairs of Kerberos principals and encrypted keys. |
| KerberosServiceRealm | The Kerberos realm of the service. |
| KerberosServiceKDC | The Kerberos KDC of the service. |
| KerberosTicketCache | The full file path to an MIT Kerberos credential cache file. |
The Kerberos Key Distribution Center (KDC) service used to authenticate the user.
The Kerberos properties are used when using SPNEGO or Windows Authentication. The Sync App will request session tickets and temporary session keys from the Kerberos KDC service. The Kerberos KDC service is conventionally colocated with the domain controller.
If Kerberos KDC is not specified, the Sync App will attempt to detect these properties automatically from the following locations:
The Kerberos Realm used to authenticate the user.
The Kerberos properties are used when using SPNEGO or Windows Authentication. The Kerberos Realm is used to authenticate the user with the Kerberos Key Distribution Service (KDC). The Kerberos Realm can be configured by an administrator to be any string, but conventionally it is based on the domain name.
If Kerberos Realm is not specified, the Sync App will attempt to detect these properties automatically from the following locations:
The service principal name (SPN) for the Kerberos Domain Controller.
If the SPN on the Kerberos Domain Controller is not the same as the URL that you are authenticating to, use this property to set the SPN.
The principal name for the Kerberos Domain Controller. Used in the format host/user@realm.
If the user you are using for the database doesn't match the user that is in the Kerberos database, this should be set to the Kerberos principal name.
The Keytab file containing your pairs of Kerberos principals and encrypted keys.
The Keytab file containing your pairs of Kerberos principals and encrypted keys.
The Kerberos realm of the service.
The KerberosServiceRealm is the specify the service Kerberos realm when using cross-realm Kerberos authentication.
In most cases, a single realm and KDC machine are used to perform the Kerberos authentication and this property is not required.
This property is available for complex setups where a different realm and KDC machine are used to obtain an authentication ticket (AS request) and a service ticket (TGS request).
The Kerberos KDC of the service.
The KerberosServiceKDC is used to specify the service Kerberos KDC when using cross-realm Kerberos authentication.
In most cases, a single realm and KDC machine are used to perform the Kerberos authentication and this property is not required.
This property is available for complex setups where a different realm and KDC machine are used to obtain an authentication ticket (AS request) and a service ticket (TGS request).
The full file path to an MIT Kerberos credential cache file.
This property can be set if you wish to use a credential cache file that was created using the MIT Kerberos Ticket Manager or kinit command.
This section provides a complete list of the SSL properties you can configure in the connection string for this provider.
| Property | Description |
| SSLServerCert | Specifies the certificate to be accepted from the server when connecting using TLS/SSL. |
Specifies the certificate to be accepted from the server when connecting using TLS/SSL.
If using a TLS/SSL connection, this property can be used to specify the TLS/SSL certificate to be accepted from the server. Any other certificate that is not trusted by the machine is rejected.
This property can take the following forms:
| Description | Example |
| A full PEM Certificate (example shortened for brevity) | -----BEGIN CERTIFICATE----- MIIChTCCAe4CAQAwDQYJKoZIhv......Qw== -----END CERTIFICATE----- |
| A path to a local file containing the certificate | C:\cert.cer |
| The public key (example shortened for brevity) | -----BEGIN RSA PUBLIC KEY----- MIGfMA0GCSq......AQAB -----END RSA PUBLIC KEY----- |
| The MD5 Thumbprint (hex values can also be either space or colon separated) | ecadbdda5a1529c58a1e9e09828d70e4 |
| The SHA1 Thumbprint (hex values can also be either space or colon separated) | 34a929226ae0819f2ec14b4a3d904f801cbb150d |
If not specified, any certificate trusted by the machine is accepted.
Use '*' to signify to accept all certificates. Note that this is not recommended due to security concerns.
This section provides a complete list of the Firewall properties you can configure in the connection string for this provider.
| Property | Description |
| FirewallType | Specifies the protocol the provider uses to tunnel traffic through a proxy-based firewall. |
| FirewallServer | Identifies the IP address, DNS name, or host name of a proxy used to traverse a firewall and relay user queries to network resources. |
| FirewallPort | Specifies the TCP port to be used for a proxy-based firewall. |
| FirewallUser | Identifies the user ID of the account authenticating to a proxy-based firewall. |
| FirewallPassword | Specifies the password of the user account authenticating to a proxy-based firewall. |
Specifies the protocol the provider uses to tunnel traffic through a proxy-based firewall.
A proxy-based firewall (or proxy firewall) is a network security device that acts as an intermediary between user requests and the resources they access. The proxy accepts the request of an authenticated user, tunnels through the firewall, and transmits the request to the appropriate server.
Because the proxy evaluates and transfers data backets on behalf of the requesting users, the users never connect directly with the servers, only with the proxy.
Note: By default, the Sync App connects to the system proxy. To disable this behavior and connect to one of the following proxy types, set ProxyAutoDetect to false.
The following table provides port number information for each of the supported protocols.
| Protocol | Default Port | Description |
| TUNNEL | 80 | The port where the Sync App opens a connection to Microsoft Exchange. Traffic flows back and forth via the proxy at this location. |
| SOCKS4 | 1080 | The port where the Sync App opens a connection to Microsoft Exchange. SOCKS 4 then passes theFirewallUser value to the proxy, which determines whether the connection request should be granted. |
| SOCKS5 | 1080 | The port where the Sync App sends data to Microsoft Exchange. If the SOCKS 5 proxy requires authentication, set FirewallUser and FirewallPassword to credentials the proxy recognizes. |
To connect to HTTP proxies, use ProxyServer and ProxyPort. To authenticate to HTTP proxies, use ProxyAuthScheme, ProxyUser, and ProxyPassword.
Identifies the IP address, DNS name, or host name of a proxy used to traverse a firewall and relay user queries to network resources.
A proxy-based firewall (or proxy firewall) is a network security device that acts as an intermediary between user requests and the resources they access. The proxy accepts the request of an authenticated user, tunnels through the firewall, and transmits the request to the appropriate server.
Because the proxy evaluates and transfers data backets on behalf of the requesting users, the users never connect directly with the servers, only with the proxy.
Specifies the TCP port to be used for a proxy-based firewall.
A proxy-based firewall (or proxy firewall) is a network security device that acts as an intermediary between user requests and the resources they access. The proxy accepts the request of an authenticated user, tunnels through the firewall, and transmits the request to the appropriate server.
Because the proxy evaluates and transfers data backets on behalf of the requesting users, the users never connect directly with the servers, only with the proxy.
Identifies the user ID of the account authenticating to a proxy-based firewall.
A proxy-based firewall (or proxy firewall) is a network security device that acts as an intermediary between user requests and the resources they access. The proxy accepts the request of an authenticated user, tunnels through the firewall, and transmits the request to the appropriate server.
Because the proxy evaluates and transfers data backets on behalf of the requesting users, the users never connect directly with the servers, only with the proxy.
Specifies the password of the user account authenticating to a proxy-based firewall.
A proxy-based firewall (or proxy firewall) is a network security device that acts as an intermediary between user requests and the resources they access. The proxy accepts the request of an authenticated user, tunnels through the firewall, and transmits the request to the appropriate server.
Because the proxy evaluates and transfers data backets on behalf of the requesting users, the users never connect directly with the servers, only with the proxy.
This section provides a complete list of the Proxy properties you can configure in the connection string for this provider.
| Property | Description |
| ProxyAutoDetect | Specifies whether the provider checks your system proxy settings for existing proxy server configurations, rather than using a manually specified proxy server. |
| ProxyServer | The hostname or IP address of the proxy server that you want to route HTTP traffic through. |
| ProxyPort | The TCP port on your specified proxy server (set in the ProxyServer connection property) that has been reserved for routing HTTP traffic to and from the client. |
| ProxyAuthScheme | Specifies the authentication method the provider uses when authenticating to the proxy server specified in the ProxyServer connection property. |
| ProxyUser | The username of a user account registered with the proxy server specified in the ProxyServer connection property. |
| ProxyPassword | The password associated with the user specified in the ProxyUser connection property. |
| ProxySSLType | The SSL type to use when connecting to the proxy server specified in the ProxyServer connection property. |
| ProxyExceptions | A semicolon separated list of destination hostnames or IPs that are exempt from connecting through the proxy server set in the ProxyServer connection property. |
Specifies whether the provider checks your system proxy settings for existing proxy server configurations, rather than using a manually specified proxy server.
When this connection property is set to True, the Sync App checks your system proxy settings for existing proxy server configurations (no need to manually supply proxy server details).
This connection property takes precedence over other proxy settings. Set to False if you want to manually configure the Sync App to connect to a specific proxy server.
To connect to an HTTP proxy, see ProxyServer. For other proxies, such as SOCKS or tunneling, see FirewallType.
The hostname or IP address of the proxy server that you want to route HTTP traffic through.
The Sync App only routes HTTP traffic through the proxy server specified in this connection property when ProxyAutoDetect is set to False. If ProxyAutoDetect is set to True, which is the default, the Sync App instead routes HTTP traffic through the proxy server specified in your system proxy settings.
The TCP port on your specified proxy server (set in the ProxyServer connection property) that has been reserved for routing HTTP traffic to and from the client.
The Sync App only routes HTTP traffic through the proxy server port specified in this connection property when ProxyAutoDetect is set to False. If ProxyAutoDetect is set to True, which is the default, the Sync App instead routes HTTP traffic through the proxy server port specified in your system proxy settings.
For other proxy types, see FirewallType.
Specifies the authentication method the provider uses when authenticating to the proxy server specified in the ProxyServer connection property.
The authentication type can be one of the following:
For all values other than "NONE", you must also set the ProxyUser and ProxyPassword connection properties.
If you need to use another authentication type, such as SOCKS 5 authentication, see FirewallType.
The username of a user account registered with the proxy server specified in the ProxyServer connection property.
The ProxyUser and ProxyPassword connection properties are used to connect and authenticate against the HTTP proxy specified in ProxyServer.
After selecting one of the available authentication types in ProxyAuthScheme, set this property as follows:
| ProxyAuthScheme Value | Value to set for ProxyUser |
| BASIC | The user name of a user registered with the proxy server. |
| DIGEST | The user name of a user registered with the proxy server. |
| NEGOTIATE | The username of a Windows user who is a valid user in the domain or trusted domain that the proxy server is part of, in the format user@domain or domain\user. |
| NTLM | The username of a Windows user who is a valid user in the domain or trusted domain that the proxy server is part of, in the format user@domain or domain\user. |
| NONE | Do not set the ProxyPassword connection property. |
The Sync App only uses this username if ProxyAutoDetect is set to False. If ProxyAutoDetect is set to True, which is the default, the Sync App instead uses the username specified in your system proxy settings.
The password associated with the user specified in the ProxyUser connection property.
The ProxyUser and ProxyPassword connection properties are used to connect and authenticate against the HTTP proxy specified in ProxyServer.
After selecting one of the available authentication types in ProxyAuthScheme, set this property as follows:
| ProxyAuthScheme Value | Value to set for ProxyPassword |
| BASIC | The password associated with the proxy server user specified in ProxyUser. |
| DIGEST | The password associated with the proxy server user specified in ProxyUser. |
| NEGOTIATE | The password associated with the Windows user account specified in ProxyUser. |
| NTLM | The password associated with the Windows user account specified in ProxyUser. |
| NONE | Do not set the ProxyPassword connection property. |
For SOCKS 5 authentication or tunneling, see FirewallType.
The Sync App only uses this password if ProxyAutoDetect is set to False. If ProxyAutoDetect is set to True, which is the default, the Sync App instead uses the password specified in your system proxy settings.
The SSL type to use when connecting to the proxy server specified in the ProxyServer connection property.
This property determines when to use SSL for the connection to the HTTP proxy specified by ProxyServer. You can set this connection property to the following values :
| AUTO | Default setting. If ProxyServer is set to an HTTPS URL, the Sync App uses the TUNNEL option. If ProxyServer is set to an HTTP URL, the component uses the NEVER option. |
| ALWAYS | The connection is always SSL enabled. |
| NEVER | The connection is not SSL enabled. |
| TUNNEL | The connection is made through a tunneling proxy. The proxy server opens a connection to the remote host and traffic flows back and forth through the proxy. |
A semicolon separated list of destination hostnames or IPs that are exempt from connecting through the proxy server set in the ProxyServer connection property.
The ProxyServer is used for all addresses, except for addresses defined in this property. Use semicolons to separate entries.
Note that the Sync App uses the system proxy settings by default, without further configuration needed. If you want to explicitly configure proxy exceptions for this connection, set ProxyAutoDetect to False.
This section provides a complete list of the Logging properties you can configure in the connection string for this provider.
| Property | Description |
| LogModules | Specifies the core modules to include in the log file. Use a semicolon-separated list of module names. By default, all modules are logged. |
Specifies the core modules to include in the log file. Use a semicolon-separated list of module names. By default, all modules are logged.
This property lets you customize the log file content by specifying the logging modules to include. Logging modules categorize logged information into distinct areas, such as query execution, metadata, or SSL communication. Each module is represented by a four-character code, with some requiring a trailing space for three-letter names.
For example, EXEC logs query execution, and INFO logs general provider messages. To include multiple modules, separate their names with semicolons as follows: INFO;EXEC;SSL.
The Verbosity connection property takes precedence over the module-based filtering specified by this property. Only log entries that meet the verbosity level and belong to the specified modules are logged. Leave this property blank to include all available modules in the log file.
For a complete list of available modules and detailed guidance on configuring logging, refer to the Advanced Logging section in Logging.
This section provides a complete list of the Schema properties you can configure in the connection string for this provider.
| Property | Description |
| Location | Specifies the location of a directory containing schema files that define tables, views, and stored procedures. Depending on your service's requirements, this may be expressed as either an absolute path or a relative path. |
| BrowsableSchemas | Optional setting that restricts the schemas reported to a subset of all available schemas. For example, BrowsableSchemas=SchemaA,SchemaB,SchemaC . |
| Tables | Optional setting that restricts the tables reported to a subset of all available tables. For example, Tables=TableA,TableB,TableC . |
| Views | Optional setting that restricts the views reported to a subset of the available tables. For example, Views=ViewA,ViewB,ViewC . |
Specifies the location of a directory containing schema files that define tables, views, and stored procedures. Depending on your service's requirements, this may be expressed as either an absolute path or a relative path.
The Location property is only needed if you want to either customize definitions (for example, change a column name, ignore a column, etc.) or extend the data model with new tables, views, or stored procedures.
Note: Since this Sync App supports multiple schemas, custom schema files for Microsoft Exchange should be structured such that:
Location should always be set to the parent folder, and not to an individual schema's folder.
If left unspecified, the default location is %APPDATA%\\CData\\Exchange Data Provider\\Schema, where %APPDATA% is set to the user's configuration directory:
| Platform | %APPDATA% |
| Windows | The value of the APPDATA environment variable |
| Linux | ~/.config |
Optional setting that restricts the schemas reported to a subset of all available schemas. For example, BrowsableSchemas=SchemaA,SchemaB,SchemaC .
Listing all available database schemas can take extra time, thus degrading performance. Providing a list of schemas in the connection string saves time and improves performance.
Optional setting that restricts the tables reported to a subset of all available tables. For example, Tables=TableA,TableB,TableC .
Listing all available tables from some databases can take extra time, thus degrading performance. Providing a list of tables in the connection string saves time and improves performance.
If there are lots of tables available and you already know which ones you want to work with, you can use this property to restrict your viewing to only those tables. To do this, specify the tables you want in a comma-separated list. Each table should be a valid SQL identifier with any special characters escaped using square brackets, double-quotes or backticks. For example, Tables=TableA,[TableB/WithSlash],WithCatalog.WithSchema.`TableC With Space`.
Note: If you are connecting to a data source with multiple schemas or catalogs, you must specify each table you want to view by its fully qualified name. This avoids ambiguity between tables that may exist in multiple catalogs or schemas.
Optional setting that restricts the views reported to a subset of the available tables. For example, Views=ViewA,ViewB,ViewC .
Listing all available views from some databases can take extra time, thus degrading performance. Providing a list of views in the connection string saves time and improves performance.
If there are lots of views available and you already know which ones you want to work with, you can use this property to restrict your viewing to only those views. To do this, specify the views you want in a comma-separated list. Each view should be a valid SQL identifier with any special characters escaped using square brackets, double-quotes or backticks. For example, Views=ViewA,[ViewB/WithSlash],WithCatalog.WithSchema.`ViewC With Space`.
Note: If you are connecting to a data source with multiple schemas or catalogs, you must specify each view you want to examine by its fully qualified name. This avoids ambiguity between views that may exist in multiple catalogs or schemas.
This section provides a complete list of the Miscellaneous properties you can configure in the connection string for this provider.
| Property | Description |
| AlwaysRequestTableDependencies | Control whether you want to always retrieve Table Dependencies (Foreign Keys). Setting this to TRUE might slow down queries and increase amount of calls made. |
| BodyType | The BodyType element identifies how the body text is formatted in the response. |
| CustomHeaders | Specifies additional HTTP headers to append to the request headers created from other properties, such as ContentType and From. Use this property to customize requests for specialized or nonstandard APIs. |
| DirectoryRetrievalDepth | Depth level of folder to query Folders and Items. |
| DisableServerSideFiltering | Control whether you want to disable server-side filtering. By default this property is set to False, and server-side filtering is attempted for all columns/tables. |
| GroupId | Specify this GroupId in order to access the OneNote documents for this group. |
| ImpersonationType | The type of identifier to use with impersonation while sending requests to the Exchange site. |
| ImpersonationUser | The user to impersonate while sending requests to the Exchange site. |
| IncludeContent | A boolean indicating if additional content should be retrieved. |
| MaxRows | Specifies the maximum rows returned for queries without aggregation or GROUP BY. |
| Other | Specifies additional hidden properties for specific use cases. These are not required for typical provider functionality. Use a semicolon-separated list to define multiple properties. |
| Pagesize | Specifies the maximum number of results to return from Microsoft Exchange, per page. This setting overrides the default page size set by the datasource, which is optimized for most use cases. |
| PseudoColumns | Specifies the pseudocolumns to expose as table columns. Use the format 'TableName=ColumnName;TableName=ColumnName'. The default is an empty string, which disables this property. |
| Timeout | Specifies the maximum time, in seconds, that the provider waits for a server response before throwing a timeout error. The default is 60 seconds. Set to 0 to disable the timeout. |
| UseInplaceArchive | A boolean indicating whether to use either the in-place archive or the default mailbox. |
| UserDefinedViews | Specifies a filepath to a JSON configuration file defining custom views. The provider automatically detects and uses the views specified in this file. |
Control whether you want to always retrieve Table Dependencies (Foreign Keys). Setting this to TRUE might slow down queries and increase amount of calls made.
Control whether you want to always retrieve Table Dependencies (Foreign Keys). Setting this to TRUE might slow down queries and increase amount of calls made.
The BodyType element identifies how the body text is formatted in the response.
The BodyType element identifies how the body text is formatted in the response. The available options are:
Specifies additional HTTP headers to append to the request headers created from other properties, such as ContentType and From. Use this property to customize requests for specialized or nonstandard APIs.
Use this property to add custom headers to HTTP requests sent by the Sync App.
This property is useful when fine-tuning requests to interact with APIs that require additional or nonstandard headers. Headers must follow the format "header: value" as described in the HTTP specifications and each header line must be separated by the carriage return and line feed (CRLF) characters. Important: Use caution when setting this property. Supplying invalid headers may cause HTTP requests to fail.
Depth level of folder to query Folders and Items.
This property must be set in the connection string or the driver uses a default of Depth=1.
Control whether you want to disable server-side filtering. By default this property is set to False, and server-side filtering is attempted for all columns/tables.
To be used in cases when complex queries are attempted and server-side filters are incapable or insufficient for producing the desired output.
Specify this GroupId in order to access the OneNote documents for this group.
Specify this GroupId in order to access the OneNote documents for this group.
The type of identifier to use with impersonation while sending requests to the Exchange site.
The type of identifier to use with impersonation while sending requests to the Exchange site. The pseudo-column of the same name can be used in the SQL query in order to more dynamically impersonate users.
Possible values for ImpersonationType are:
| PrincipalName | Represents the user principal name (UPN) of the account to use for impersonation. This should be the UPN for the domain where the user account exists. |
| SID | Represents the security descriptor definition language (SDDL) form of the security identifier (SID) for the account to use for impersonation. |
| PrimarySmtpAddress | Represents the primary Simple Mail Transfer Protocol (SMTP) address of the account to use for Exchange impersonation. If the primary SMTP address is supplied, it will cost an extra Active Directory directory service lookup in order to obtain the SID of the user. We recommend that you use the SID or UPN if they are available. |
| SmtpAddress | Represents the Simple Mail Transfer Protocol (SMTP) address of the account to use for Exchange Impersonation. If the SMTP address is supplied, it will cost an extra Active Directory lookup in order to obtain the SID of the user. We recommend that you use the SID or UPN if they are available. |
The user to impersonate while sending requests to the Exchange site.
The user to impersonate while sending requests to the Exchange site. The pseudo column of the same name can be used in the SQL query in order to more dynamically impersonate users.
A boolean indicating if additional content should be retrieved.
A boolean indicating if additional content should be retrieved, such as the Body field of an Inbox email. Retrieving all content for a large number of items can be expensive. This property cannot be used with the Folders table, or the Calendar child views.
Specifies the maximum rows returned for queries without aggregation or GROUP BY.
This property sets an upper limit on the number of rows the Sync App returns for queries that do not include aggregation or GROUP BY clauses. This limit ensures that queries do not return excessively large result sets by default.
When a query includes a LIMIT clause, the value specified in the query takes precedence over the MaxRows setting. If MaxRows is set to "-1", no row limit is enforced unless a LIMIT clause is explicitly included in the query.
This property is useful for optimizing performance and preventing excessive resource consumption when executing queries that could otherwise return very large datasets.
Specifies additional hidden properties for specific use cases. These are not required for typical provider functionality. Use a semicolon-separated list to define multiple properties.
This property allows advanced users to configure hidden properties for specialized scenarios. These settings are not required for normal use cases but can address unique requirements or provide additional functionality. Multiple properties can be defined in a semicolon-separated list.
Note: It is strongly recommended to set these properties only when advised by the support team to address specific scenarios or issues.
Specify multiple properties in a semicolon-separated list.
| DefaultColumnSize | Sets the default length of string fields when the data source does not provide column length in the metadata. The default value is 2000. |
| ConvertDateTimeToGMT | Determines whether to convert date-time values to GMT, instead of the local time of the machine. |
| RecordToFile=filename | Records the underlying socket data transfer to the specified file. |
Specifies the maximum number of results to return from Microsoft Exchange, per page. This setting overrides the default page size set by the datasource, which is optimized for most use cases.
You may want to adjust the default pagesize to optimize results for a particular object or service endpoint you are querying. Be aware that increasing the page size may improve performance, but it could also result in higher memory consumption per page.
Specifies the pseudocolumns to expose as table columns. Use the format 'TableName=ColumnName;TableName=ColumnName'. The default is an empty string, which disables this property.
This property allows you to define which pseudocolumns the Sync App exposes as table columns.
To specify individual pseudocolumns, use the following format: "Table1=Column1;Table1=Column2;Table2=Column3"
To include all pseudocolumns for all tables use: "*=*"
Specifies the maximum time, in seconds, that the provider waits for a server response before throwing a timeout error. The default is 60 seconds. Set to 0 to disable the timeout.
This property controls the maximum time, in seconds, that the Sync App waits for an operation to complete before canceling it. If the timeout period expires before the operation finishes, the Sync App cancels the operation and throws an exception.
The timeout applies to each individual communication with the server rather than the entire query or operation. For example, a query could continue running beyond 60 seconds if each paging call completes within the timeout limit.
Setting this property to 0 disables the timeout, allowing operations to run indefinitely until they succeed or fail due to other conditions such as server-side timeouts, network interruptions, or resource limits on the server. Use this property cautiously to avoid long-running operations that could degrade performance or result in unresponsive behavior.
A boolean indicating whether to use either the in-place archive or the default mailbox.
A boolean indicating whether to use either the in-place archive or the default mailbox.
Specifies a filepath to a JSON configuration file defining custom views. The provider automatically detects and uses the views specified in this file.
This property allows you to define and manage custom views through a JSON-formatted configuration file called UserDefinedViews.json. These views are automatically recognized by the Sync App and enable you to execute custom SQL queries as if they were standard database views. The JSON file defines each view as a root element with a child element called "query", which contains the SQL query for the view. For example:
{
"MyView": {
"query": "SELECT * FROM Contacts WHERE MyColumn = 'value'"
},
"MyView2": {
"query": "SELECT * FROM MyTable WHERE Id IN (1,2,3)"
}
}
You can define multiple views in a single file and specify the filepath using this property. For example: UserDefinedViews=C:\Path\To\UserDefinedViews.json. When you use this property, only the specified views are seen by the Sync App.
Refer to User Defined Views for more information.