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.
Exchange Online supports authentication via OAuth, as described below. (Azure AD and Azure Service Principal also use custom OAuth applications for authentication.)
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.
Microsoft Exchange provides embedded OAuth credentials that simplify connection from a Desktop application . To connect from a Web application, you must create a custom OAuth application, as described in Creating a Custom OAuth Application.
To connect via OAuth from all authentication flows, you must set AuthScheme to OAuth.
The following subsections describe how to authenticate to Microsoft Exchange from all applicable auth flows. For information about how to create a custom OAuth application, and why you might want to create one even for auth flows that already have embedded OAuth credentials, see Creating a Custom OAuth Application. For a complete list of connection string properties available in Microsoft Exchange, see Connection.
When the access token expires, the Sync App refreshes it automatically.
For information about how to set up Azure Service Principal authentication, see Creating a Custom OAuth Application.
Note: Since the embedded OAuth credentials authenticate on a per-user basis, you cannot use them in a client OAuth flow. You must always create a custom OAuth application to use client credentials.
Authentication via client credentials requires the use of a custom OAuth application. For further information, see Creating a Custom OAuth Application.
After you set these parameters, you are ready to connect.
Authentication with client credentials takes place automatically, just like any other connection, except that no window opens to prompt the user to log in. Because there is no user context, there is no need for a browser popup. Connections are made and handled internally.
If you are running Microsoft Exchange on an Azure VM and want to leverage MSI to connect, set AuthScheme to AzureMSI.
When your VM has multiple user-assigned managed identities, you must also specify OAuthClientId.
To authenticate to Microsoft Exchange using Kerberos, set these properties:
For further information on how to use Kerberos in an Microsoft Exchange environment, see Using Kerberos.
To authenticate to Microsoft Exchange with Kerberos, set AuthScheme to NEGOTIATE.
Authenticating to Microsoft Exchange via Kerberos requires you to define authentication properties and to choose how Kerberos should retrieve authentication tickets.
The Sync App provides three ways to retrieve the required Kerberos ticket, depending on whether or not the KRB5CCNAME and/or KerberosKeytabFile variables exist in your environment.
MIT Kerberos Credential Cache File
This option enables you to use the MIT Kerberos Ticket Manager or kinit command to get tickets. With this option there is no need to set the User or Password connection properties.
This option requires that KRB5CCNAME has been created in your system.
To enable ticket retrieval via MIT Cerberos Credential Cache Files:
If the ticket is successfully obtained, the ticket information appears in Kerberos Ticket Manager and is stored in the credential cache file.
The Sync App uses the cache file to obtain the Kerberos ticket to connect to Microsoft Exchange.
Note: If you would prefer not to edit KRB5CCNAME, you can use the KerberosTicketCache property to set the file path manually. After this is set, the Sync App uses the specified cache file to obtain the Kerberos ticket to connect to Microsoft Exchange.
Keytab File
If your environment lacks the KRB5CCNAME environment variable, you can retrieve a Kerberos ticket using a Keytab File.
To use this method, set the User property to the desired username, and set the KerberosKeytabFile property to a file path pointing to the keytab file associated with the user.
User and Password
If your environment lacks the KRB5CCNAME environment variable and the KerberosKeytabFile property has not been set, you can retrieve a ticket using a user and password combination.
To use this method, set the User and Password properties to the user/password combination that you use to authenticate with Microsoft Exchange.
To enable this kind of cross-realm authentication, set the KerberosRealm and KerberosKDC properties to the values required for user authentication. Also, set the KerberosServiceRealm and KerberosServiceKDC properties to the values required to obtain the service ticket.
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 allows you to define virtual tables, called user defined views, whose contents are decided by a pre-configured query. These views are useful when you cannot directly control queries being issued to the drivers. See User Defined Views for an overview of creating and configuring custom views.
Use SSL Configuration to adjust how Sync App handles TLS/SSL certificate negotiations. You can choose from various certificate formats; see the SSLServerCert property under "Connection String Options" for more information.
Configure the Sync App for compliance with Firewall and Proxy, including Windows proxies and HTTP proxies. You can also set up tunnel connections.
The Sync App offloads as much of the SELECT statement processing as possible to Microsoft Exchange and then processes the rest of the query in memory (client-side).
See Query Processing for more information.
See Logging for an overview of configuration settings that can be used to refine CData logging. For basic logging, you only need to set two connection properties, but there are numerous features that support more refined logging, where you can select subsets of information to be logged using the LogModules connection property.
By default, the Sync App attempts to negotiate SSL/TLS by checking the server's certificate against the system's trusted certificate store.
To specify another certificate, see the SSLServerCert property for the available formats to do so.
To connect through the Windows system proxy, you do not need to set any additional connection properties. To connect to other proxies, set ProxyAutoDetect to false.
In addition, to authenticate to an HTTP proxy, set ProxyAuthScheme, ProxyUser, and ProxyPassword, in addition to ProxyServer and ProxyPort.
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 |
MimeContent | String | True |
Contains the native Multipurpose Internet Mail Extensions (MIME) stream of an object that is represented in Base64 binary format. |
ItemId [KEY] | String | True |
Contains the unique identifier of an item in the Exchange store. This property is read-only. |
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). |
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 |
MimeContent | String | True |
Contains the native Multipurpose Internet Mail Extensions (MIME) stream of an object that is represented in Base64 binary format. |
ItemId [KEY] | String | True |
Contains the unique identifier of an item in the Exchange store. |
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. |
AttachmentIds | String | True |
Contains a comma-separated list of the Ids of the attached files. |
AttachmentNames | String | True |
Contains a comma-separated list of the names of the attached files. |
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. |
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). |
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 |
MimeContent | String | True |
Contains the native Multipurpose Internet Mail Extensions (MIME) stream of an object that is represented in Base64 binary format. |
ItemId [KEY] | String | True |
Contains the unique identifier of an item in the Exchange store. |
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. |
AttachmentIds | String | True |
Contains a comma-separated list of the Ids of the attached files. |
AttachmentNames | String | True |
Contains a comma-separated list of the names of the attached files. |
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. |
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). |
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. |
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). |
ParentFolderName | String |
Represents the distinguished folder Id of the parent folder. |
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 |
MimeContent | String | True |
Contains the native Multipurpose Internet Mail Extensions (MIME) stream of an object that is represented in Base64 binary format. |
ItemId [KEY] | String | True |
Contains the unique identifier of an item in the Exchange store. |
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. |
AttachmentId# | String | True |
Contains a comma-separated list of the Ids of the attached files. |
AttachmentName# | String | True |
Contains a comma-separated list of the names of the attached files. |
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. |
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 |
MimeContent | String | True |
Contains the native Multipurpose Internet Mail Extensions (MIME) stream of an object that is represented in Base64 binary format. |
ItemId [KEY] | String | True |
Contains the unique identifier of an item in the Exchange store. |
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. |
AttachmentIds | String | True |
Contains a comma-separated list of the Ids of the attached files. |
AttachmentNames | String | True |
Contains a comma-separated list of the names of the attached files. |
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. |
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). |
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 |
MimeContent | String | True |
Contains the native Multipurpose Internet Mail Extensions (MIME) stream of an object that is represented in Base64 binary format. |
ItemId [KEY] | String | True |
Contains the unique identifier of an item in the Exchange store. |
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. |
AttachmentIds | String | True |
Contains a comma-separated list of the Ids of the attached files. |
AttachmentNames | String | True |
Contains a comma-separated list of the names of the attached files. |
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. |
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). |
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 |
MimeContent | String | True |
Contains the native Multipurpose Internet Mail Extensions (MIME) stream of an object that is represented in Base64 binary format. |
ItemId [KEY] | String | True |
Contains the unique identifier of an item in the Exchange store. |
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. |
AttachmentIds | String | True |
Contains a comma-separated list of the Ids of the attached files. |
AttachmentNames | String | True |
Contains a comma-separated list of the names of the attached files. |
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. |
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). |
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 |
MimeContent | String | True |
Contains the native Multipurpose Internet Mail Extensions (MIME) stream of an object that is represented in Base64 binary format. |
ItemId [KEY] | String | True |
Contains the unique identifier of an item in the Exchange store. This property is read-only. |
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. |
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_NumberOfOccurences | 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 | 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). |
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.
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. |
Property | Description |
AzureTenant | The Microsoft Online tenant being used to access data. If not specified, your default tenant is used. |
Property | Description |
OAuthClientId | The client Id assigned when you register your application with an OAuth authorization server. |
OAuthClientSecret | The client secret assigned when you register your application with an OAuth authorization server. |
OAuthGrantType | The grant type for the OAuth flow. |
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. |
OAuthJWTCertSubject | The subject of the OAuth JWT 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. |
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 | The certificate to be accepted from the server when connecting using TLS/SSL. |
Property | Description |
FirewallType | The protocol used by a proxy-based firewall. |
FirewallServer | The name or IP address of a proxy-based firewall. |
FirewallPort | The TCP port for a proxy-based firewall. |
FirewallUser | The user name to use to authenticate with a proxy-based firewall. |
FirewallPassword | A password used to authenticate to a proxy-based firewall. |
Property | Description |
ProxyAutoDetect | This indicates whether to use the system proxy settings or not. |
ProxyServer | The hostname or IP address of a proxy to route HTTP traffic through. |
ProxyPort | The TCP port the ProxyServer proxy is running on. |
ProxyAuthScheme | The authentication type to use to authenticate to the ProxyServer proxy. |
ProxyUser | A user name to be used to authenticate to the ProxyServer proxy. |
ProxyPassword | A password to be used to authenticate to the ProxyServer proxy. |
ProxySSLType | The SSL type to use when connecting to the ProxyServer proxy. |
ProxyExceptions | A semicolon separated list of destination hostnames or IPs that are exempt from connecting through the ProxyServer . |
Property | Description |
LogModules | Core modules to be included in the log file. |
Property | Description |
Location | A path to the directory that contains the schema files defining tables, views, and stored procedures. |
BrowsableSchemas | This property restricts the schemas reported to a subset of the available schemas. For example, BrowsableSchemas=SchemaA,SchemaB,SchemaC. |
Tables | This property restricts the tables reported to a subset of the available tables. For example, Tables=TableA,TableB,TableC. |
Views | 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. The possible options are: Best - The response will return the richest available content of body text, HTML - The response will return an item body as HTML, Text - The response will return an item body as plain text. The default is set to Best. |
CustomHeaders | Other headers as determined by the user (optional). |
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 | Limits the number of rows returned when no aggregation or GROUP BY is used in the query. This takes precedence over LIMIT clauses. |
Other | These hidden properties are used only in specific use cases. |
Pagesize | The maximum number of results to return per page from Microsoft Exchange. |
PseudoColumns | This property indicates whether or not to include pseudo columns as columns to the table. |
Timeout | The value in seconds until the timeout error is thrown, canceling the operation. |
UserDefinedViews | A filepath pointing to the JSON configuration file containing your custom views. |
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. |
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.
This should be set to the Exchange Web Services URL. For Exchange Online, you should set it to https://outlook.office365.com/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.
This section provides a complete list of the Azure Authentication properties you can configure in the connection string for this provider.
Property | Description |
AzureTenant | The Microsoft Online tenant being used to access data. If not specified, your default tenant is used. |
The Microsoft Online tenant being used to access data. If not specified, your default tenant is used.
The Microsoft Online tenant being used to access data. For instance, contoso.onmicrosoft.com. Alternatively, specify the tenant Id. This value is the directory Id in the Azure Portal > Azure Active Directory > Properties.
Typically it is not necessary to specify the Tenant. This can be automatically determined by Microsoft when using the OAuthGrantType set to CODE (default). However, it may fail in the case that the user belongs to multiple tenants. For instance, if an Admin of domain A invites a user of domain B to be a guest user. The user will now belong to both tenants. It is a good practice to specify the Tenant, although in general things should normally work without having to specify it.
The AzureTenant is required when setting OAuthGrantType to CLIENT. When using client credentials, there is no user context. The credentials are taken from the context of the app itself. While Microsoft still allows client credentials to be obtained without specifying which Tenant, it has a much lower probability of picking the specific tenant you want to work with. For this reason, we require AzureTenant to be explicitly stated for all client credentials connections to ensure you get credentials that are applicable for the domain you intend to connect to.
This section provides a complete list of the OAuth properties you can configure in the connection string for this provider.
Property | Description |
OAuthClientId | The client Id assigned when you register your application with an OAuth authorization server. |
OAuthClientSecret | The client secret assigned when you register your application with an OAuth authorization server. |
OAuthGrantType | The grant type for the OAuth flow. |
UserId | Specify this UserId in order to access Outlook resources for a specific user. Required when OAuthGrantType is set to 'CLIENT'. |
The client Id assigned when you register your application with an OAuth authorization server.
As part of registering an OAuth application, you will receive the OAuthClientId value, sometimes also called a consumer key, and a client secret, the OAuthClientSecret.
The client secret assigned when you register your application with an OAuth authorization server.
As part of registering an OAuth application, you will receive the OAuthClientId, also called a consumer key. You will also receive a client secret, also called a consumer secret. Set the client secret in the OAuthClientSecret property.
The grant type for the OAuth flow.
The following options are available: CODE,CLIENT,PASSWORD
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. |
OAuthJWTCertSubject | The subject of the OAuth JWT 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. |
The password for the OAuth JWT certificate.
If the certificate store is of a type that requires a password, this property is used to specify that password in order to open the certificate store.
The subject of the OAuth JWT certificate.
When loading a certificate the subject is used to locate the certificate in the store.
If an exact match is not found, the store is searched for subjects containing the value of the property.
If a match is still not found, the property is set to an empty string, and no certificate is selected.
The special value "*" picks the first certificate in the certificate store.
The certificate subject is a comma separated list of distinguished name fields and values. For instance "CN=www.server.com, OU=test, C=US, [email protected]". Common fields and their meanings are displayed below.
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 it must be quoted.
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. |
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 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 | The certificate to be accepted from the server when connecting using TLS/SSL. |
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 | The protocol used by a proxy-based firewall. |
FirewallServer | The name or IP address of a proxy-based firewall. |
FirewallPort | The TCP port for a proxy-based firewall. |
FirewallUser | The user name to use to authenticate with a proxy-based firewall. |
FirewallPassword | A password used to authenticate to a proxy-based firewall. |
The protocol used by a proxy-based firewall.
This property specifies the protocol that the Sync App will use to tunnel traffic through the FirewallServer proxy. Note that 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.
Type | Default Port | Description |
TUNNEL | 80 | When this is set, the Sync App opens a connection to Microsoft Exchange and traffic flows back and forth through the proxy. |
SOCKS4 | 1080 | When this is set, the Sync App sends data through the SOCKS 4 proxy specified by FirewallServer and FirewallPort and passes the FirewallUser value to the proxy, which determines if the connection request should be granted. |
SOCKS5 | 1080 | When this is set, the Sync App sends data through the SOCKS 5 proxy specified by FirewallServer and FirewallPort. If your 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.
The name or IP address of a proxy-based firewall.
This property specifies the IP address, DNS name, or host name of a proxy allowing traversal of a firewall. The protocol is specified by FirewallType: Use FirewallServer with this property to connect through SOCKS or do tunneling. Use ProxyServer to connect to an HTTP proxy.
Note that the Sync App uses the system proxy by default. To use a different proxy, set ProxyAutoDetect to false.
The TCP port for a proxy-based firewall.
This specifies the TCP port for a proxy allowing traversal of a firewall. Use FirewallServer to specify the name or IP address. Specify the protocol with FirewallType.
The user name to use to authenticate with a proxy-based firewall.
The FirewallUser and FirewallPassword properties are used to authenticate against the proxy specified in FirewallServer and FirewallPort, following the authentication method specified in FirewallType.
A password used to authenticate to a proxy-based firewall.
This property is passed to the proxy specified by FirewallServer and FirewallPort, following the authentication method specified by FirewallType.
This section provides a complete list of the Proxy properties you can configure in the connection string for this provider.
Property | Description |
ProxyAutoDetect | This indicates whether to use the system proxy settings or not. |
ProxyServer | The hostname or IP address of a proxy to route HTTP traffic through. |
ProxyPort | The TCP port the ProxyServer proxy is running on. |
ProxyAuthScheme | The authentication type to use to authenticate to the ProxyServer proxy. |
ProxyUser | A user name to be used to authenticate to the ProxyServer proxy. |
ProxyPassword | A password to be used to authenticate to the ProxyServer proxy. |
ProxySSLType | The SSL type to use when connecting to the ProxyServer proxy. |
ProxyExceptions | A semicolon separated list of destination hostnames or IPs that are exempt from connecting through the ProxyServer . |
This indicates whether to use the system proxy settings or not.
This takes precedence over other proxy settings, so you'll need to set ProxyAutoDetect to FALSE in order use custom proxy settings.
To connect to an HTTP proxy, see ProxyServer. For other proxies, such as SOCKS or tunneling, see FirewallType.
The hostname or IP address of a proxy to route HTTP traffic through.
The hostname or IP address of a proxy to route HTTP traffic through. The Sync App can use the HTTP, Windows (NTLM), or Kerberos authentication types to authenticate to an HTTP proxy.
If you need to connect through a SOCKS proxy or tunnel the connection, see FirewallType.
By default, the Sync App uses the system proxy. If you need to use another proxy, set ProxyAutoDetect to false.
The TCP port the ProxyServer proxy is running on.
The port the HTTP proxy is running on that you want to redirect HTTP traffic through. Specify the HTTP proxy in ProxyServer. For other proxy types, see FirewallType.
The authentication type to use to authenticate to the ProxyServer proxy.
This value specifies the authentication type to use to authenticate to the HTTP proxy specified by ProxyServer and ProxyPort.
Note that the Sync App will use the system proxy settings by default, without further configuration needed; if you want to connect to another proxy, you will need to set ProxyAutoDetect to false, in addition to ProxyServer and ProxyPort. To authenticate, set ProxyAuthScheme and set ProxyUser and ProxyPassword, if needed.
The authentication type can be one of the following:
If you need to use another authentication type, such as SOCKS 5 authentication, see FirewallType.
A user name to be used to authenticate to the ProxyServer proxy.
The ProxyUser and ProxyPassword options are used to connect and authenticate against the HTTP proxy specified in ProxyServer.
You can select one of the available authentication types in ProxyAuthScheme. If you are using HTTP authentication, set this to the user name of a user recognized by the HTTP proxy. If you are using Windows or Kerberos authentication, set this property to a user name in one of the following formats:
user@domain domain\user
A password to be used to authenticate to the ProxyServer proxy.
This property is used to authenticate to an HTTP proxy server that supports NTLM (Windows), Kerberos, or HTTP authentication. To specify the HTTP proxy, you can set ProxyServer and ProxyPort. To specify the authentication type, set ProxyAuthScheme.
If you are using HTTP authentication, additionally set ProxyUser and ProxyPassword to HTTP proxy.
If you are using NTLM authentication, set ProxyUser and ProxyPassword to your Windows password. You may also need these to complete Kerberos authentication.
For SOCKS 5 authentication or tunneling, see FirewallType.
By default, the Sync App uses the system proxy. If you want to connect to another proxy, set ProxyAutoDetect to false.
The SSL type to use when connecting to the ProxyServer proxy.
This property determines when to use SSL for the connection to an HTTP proxy specified by ProxyServer. This value can be AUTO, ALWAYS, NEVER, or TUNNEL. The applicable values are the following:
AUTO | Default setting. If the URL is an HTTPS URL, the Sync App will use the TUNNEL option. If the URL is an HTTP URL, the component will use the NEVER option. |
ALWAYS | The connection is always SSL enabled. |
NEVER | The connection is not SSL enabled. |
TUNNEL | The connection is 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 ProxyServer .
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, you need to set ProxyAutoDetect = false, and configure ProxyServer and ProxyPort. To authenticate, set ProxyAuthScheme and set ProxyUser and ProxyPassword, if needed.
This section provides a complete list of the Logging properties you can configure in the connection string for this provider.
Property | Description |
LogModules | Core modules to be included in the log file. |
Core modules to be included in the log file.
Only the modules specified (separated by ';') will be included in the log file. By default all modules are included.
See the Logging page for an overview.
This section provides a complete list of the Schema properties you can configure in the connection string for this provider.
Property | Description |
Location | A path to the directory that contains the schema files defining tables, views, and stored procedures. |
BrowsableSchemas | This property restricts the schemas reported to a subset of the available schemas. For example, BrowsableSchemas=SchemaA,SchemaB,SchemaC. |
Tables | This property restricts the tables reported to a subset of the available tables. For example, Tables=TableA,TableB,TableC. |
Views | Restricts the views reported to a subset of the available tables. For example, Views=ViewA,ViewB,ViewC. |
A path to the directory that contains the schema files defining tables, views, and stored procedures.
The path to a directory which contains the schema files for the Sync App (.rsd files for tables and views, .rsb files for stored procedures). The folder location can be a relative path from the location of the executable. The Location property is only needed if you want to customize definitions (for example, change a column name, ignore a column, and so on) or extend the data model with new tables, views, or stored procedures.
Note: Given that this Sync App supports multiple schemas, the structure for Microsoft Exchange custom schema files is as follows:
If left unspecified, the default location is "%APPDATA%\\CData\\Exchange Data Provider\\Schema" with %APPDATA% being set to the user's configuration directory:
Platform | %APPDATA% |
Windows | The value of the APPDATA environment variable |
Linux | ~/.config |
This property restricts the schemas reported to a subset of the available schemas. For example, BrowsableSchemas=SchemaA,SchemaB,SchemaC.
Listing the schemas from databases can be expensive. Providing a list of schemas in the connection string improves the performance.
This property restricts the tables reported to a subset of the available tables. For example, Tables=TableA,TableB,TableC.
Listing the tables from some databases can be expensive. Providing a list of tables in the connection string improves the performance of the Sync App.
This property can also be used as an alternative to automatically listing views if you already know which ones you want to work with and there would otherwise be too many to work with.
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 that when connecting to a data source with multiple schemas or catalogs, you will need to provide the fully qualified name of the table in this property, as in the last example here, to avoid ambiguity between tables that exist in multiple catalogs or schemas.
Restricts the views reported to a subset of the available tables. For example, Views=ViewA,ViewB,ViewC.
Listing the views from some databases can be expensive. Providing a list of views in the connection string improves the performance of the Sync App.
This property can also be used as an alternative to automatically listing views if you already know which ones you want to work with and there would otherwise be too many to work with.
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 that when connecting to a data source with multiple schemas or catalogs, you will need to provide the fully qualified name of the table in this property, as in the last example here, to avoid ambiguity between tables that 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. The possible options are: Best - The response will return the richest available content of body text, HTML - The response will return an item body as HTML, Text - The response will return an item body as plain text. The default is set to Best. |
CustomHeaders | Other headers as determined by the user (optional). |
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 | Limits the number of rows returned when no aggregation or GROUP BY is used in the query. This takes precedence over LIMIT clauses. |
Other | These hidden properties are used only in specific use cases. |
Pagesize | The maximum number of results to return per page from Microsoft Exchange. |
PseudoColumns | This property indicates whether or not to include pseudo columns as columns to the table. |
Timeout | The value in seconds until the timeout error is thrown, canceling the operation. |
UserDefinedViews | A filepath pointing to the JSON configuration file containing your custom views. |
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 possible options are: Best - The response will return the richest available content of body text, HTML - The response will return an item body as HTML, Text - The response will return an item body as plain text. The default is set to Best.
The BodyType element identifies how the body text is formatted in the response. The possible options are: Best - The response will return the richest available content of body text, HTML - The response will return an item body as HTML, Text - The response will return an item body as plain text. The default is set to Best.
Other headers as determined by the user (optional).
This property can be set to a string of headers to be appended to the HTTP request headers created from other properties, like ContentType, From, and so on.
The headers must be of the format "header: value" as described in the HTTP specifications. Header lines should be separated by the carriage return and line feed (CRLF) characters.
Use this property with caution. If this property contains invalid headers, HTTP requests may fail.
This property is useful for fine-tuning the functionality of the Sync App to integrate with specialized or nonstandard APIs.
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.
Limits the number of rows returned when no aggregation or GROUP BY is used in the query. This takes precedence over LIMIT clauses.
Limits the number of rows returned when no aggregation or GROUP BY is used in the query. This takes precedence over LIMIT clauses.
These hidden properties are used only in specific use cases.
The properties listed below are available for specific use cases. Normal driver use cases and functionality should not require these properties.
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. |
The maximum number of results to return per page from Microsoft Exchange.
The Pagesize property affects the maximum number of results to return per page from Microsoft Exchange. Setting a higher value may result in better performance at the cost of additional memory allocated per page consumed.
This property indicates whether or not to include pseudo columns as columns to the table.
This setting is particularly helpful in Entity Framework, which does not allow you to set a value for a pseudo column unless it is a table column. The value of this connection setting is of the format "Table1=Column1, Table1=Column2, Table2=Column3". You can use the "*" character to include all tables and all columns; for example, "*=*".
The value in seconds until the timeout error is thrown, canceling the operation.
If Timeout = 0, operations do not time out. The operations run until they complete successfully or until they encounter an error condition.
If Timeout expires and the operation is not yet complete, the Sync App throws an exception.
A filepath pointing to the JSON configuration file containing your custom views.
User Defined Views are defined in a JSON-formatted configuration file called UserDefinedViews.json. The Sync App automatically detects the views specified in this file.
You can also have multiple view definitions and control them using the UserDefinedViews connection property. When you use this property, only the specified views are seen by the Sync App.
This User Defined View configuration file is formatted as follows:
For example:
{ "MyView": { "query": "SELECT * FROM Contacts WHERE MyColumn = 'value'" }, "MyView2": { "query": "SELECT * FROM MyTable WHERE Id IN (1,2,3)" } }Use the UserDefinedViews connection property to specify the location of your JSON configuration file. For example:
"UserDefinedViews", C:\Users\yourusername\Desktop\tmp\UserDefinedViews.jsonNote that the specified path is not embedded in quotation marks.