Skip to main content
The Outlook plugin syncs data locally. Use corsair.outlook.db.<entity>.search({ data, limit?, offset? }) with the filters listed per entity.

Calendars

Path: outlook.db.calendars.search
const rows = await corsair.outlook.db.calendars.search({
    data: { /* filters below */ },
    limit: 100,
    offset: 0,
});

Searchable filters

FieldTypeOperators
entity_idstringequals, contains, startsWith, endsWith, in
idstringequals, contains, startsWith, endsWith, in
namestringequals, contains, startsWith, endsWith, in
colorstringequals, contains, startsWith, endsWith, in
hexColorstringequals, contains, startsWith, endsWith, in
isDefaultCalendarbooleanequals
canEditbooleanequals
canSharebooleanequals
ownerstringequals, contains, startsWith, endsWith, in
createdAtdateequals, before, after, between
Every .search() also accepts limit and offset for pagination. .list() is available on the same path without the .search suffix in code — see database operations.

Contacts

Path: outlook.db.contacts.search
const rows = await corsair.outlook.db.contacts.search({
    data: { /* filters below */ },
    limit: 100,
    offset: 0,
});

Searchable filters

FieldTypeOperators
entity_idstringequals, contains, startsWith, endsWith, in
idstringequals, contains, startsWith, endsWith, in
displayNamestringequals, contains, startsWith, endsWith, in
givenNamestringequals, contains, startsWith, endsWith, in
surnamestringequals, contains, startsWith, endsWith, in
emailAddressesstringequals, contains, startsWith, endsWith, in
mobilePhonestringequals, contains, startsWith, endsWith, in
businessPhonesstringequals, contains, startsWith, endsWith, in
jobTitlestringequals, contains, startsWith, endsWith, in
companyNamestringequals, contains, startsWith, endsWith, in
departmentstringequals, contains, startsWith, endsWith, in
officeLocationstringequals, contains, startsWith, endsWith, in
parentFolderIdstringequals, contains, startsWith, endsWith, in
createdAtdateequals, before, after, between
Every .search() also accepts limit and offset for pagination. .list() is available on the same path without the .search suffix in code — see database operations.

Events

Path: outlook.db.events.search
const rows = await corsair.outlook.db.events.search({
    data: { /* filters below */ },
    limit: 100,
    offset: 0,
});

Searchable filters

FieldTypeOperators
entity_idstringequals, contains, startsWith, endsWith, in
idstringequals, contains, startsWith, endsWith, in
subjectstringequals, contains, startsWith, endsWith, in
bodyPreviewstringequals, contains, startsWith, endsWith, in
startstringequals, contains, startsWith, endsWith, in
endstringequals, contains, startsWith, endsWith, in
isAllDaybooleanequals
isCancelledbooleanequals
isOrganizerbooleanequals
isOnlineMeetingbooleanequals
locationstringequals, contains, startsWith, endsWith, in
calendarIdstringequals, contains, startsWith, endsWith, in
organizerstringequals, contains, startsWith, endsWith, in
importancestringequals, contains, startsWith, endsWith, in
sensitivitystringequals, contains, startsWith, endsWith, in
showAsstringequals, contains, startsWith, endsWith, in
webLinkstringequals, contains, startsWith, endsWith, in
createdAtdateequals, before, after, between
Every .search() also accepts limit and offset for pagination. .list() is available on the same path without the .search suffix in code — see database operations.

Folders

Path: outlook.db.folders.search
const rows = await corsair.outlook.db.folders.search({
    data: { /* filters below */ },
    limit: 100,
    offset: 0,
});

Searchable filters

FieldTypeOperators
entity_idstringequals, contains, startsWith, endsWith, in
idstringequals, contains, startsWith, endsWith, in
displayNamestringequals, contains, startsWith, endsWith, in
parentFolderIdstringequals, contains, startsWith, endsWith, in
totalItemCountnumberequals, gt, gte, lt, lte, in
unreadItemCountnumberequals, gt, gte, lt, lte, in
childFolderCountnumberequals, gt, gte, lt, lte, in
isHiddenbooleanequals
createdAtdateequals, before, after, between
Every .search() also accepts limit and offset for pagination. .list() is available on the same path without the .search suffix in code — see database operations.

Messages

Path: outlook.db.messages.search
const rows = await corsair.outlook.db.messages.search({
    data: { /* filters below */ },
    limit: 100,
    offset: 0,
});

Searchable filters

FieldTypeOperators
entity_idstringequals, contains, startsWith, endsWith, in
idstringequals, contains, startsWith, endsWith, in
subjectstringequals, contains, startsWith, endsWith, in
bodyPreviewstringequals, contains, startsWith, endsWith, in
fromstringequals, contains, startsWith, endsWith, in
toRecipientsstringequals, contains, startsWith, endsWith, in
ccRecipientsstringequals, contains, startsWith, endsWith, in
isReadbooleanequals
isDraftbooleanequals
hasAttachmentsbooleanequals
importancestringequals, contains, startsWith, endsWith, in
conversationIdstringequals, contains, startsWith, endsWith, in
parentFolderIdstringequals, contains, startsWith, endsWith, in
sentDateTimedateequals, before, after, between
receivedDateTimedateequals, before, after, between
createdAtdateequals, before, after, between
webLinkstringequals, contains, startsWith, endsWith, in
Every .search() also accepts limit and offset for pagination. .list() is available on the same path without the .search suffix in code — see database operations.