/
FI
fireserviceusa
Search skmtc…
⌘K
Docs
Sign in
Docs
History
Schema
Generate
Filter operations
Account
42
AccountType
6
Activity
15
ActivityType
5
Address
13
AddressType
5
Admin
57
AdminAddressesV2
10
AdminHolidays
6
AdminMagicPlan
6
AdminReconcileAccounts
10
AdminReconcileAddresses
33
AdminReconcileContacts
7
AdminReconcileReferringEntities
7
AdminSiteSettings
2
AdminTempAgencies
5
AdminTempAgencyPayRates
5
AdminTemporaryWorkers
5
AdminVehicles
11
AdSource
6
ArStatement
12
BulkDataExport
4
Calendar
82
get
/api/v1/Calendar/Events/{outlookEventId}/Summary
GET /api/v1/Calendar/Events/{outlookEventId}/Summary
get
/api/v1/Calendar/Events/{outlookEventId}/Notes
GET /api/v1/Calendar/Events/{outlookEventId}/Notes
post
/api/v1/Calendar/Events/{outlookEventId}/Notes
POST /api/v1/Calendar/Events/{outlookEventId}/Notes
put
/api/v1/Calendar/Events/{outlookEventId}/Notes/{noteId}
PUT /api/v1/Calendar/Events/{outlookEventId}/Notes/{noteId}
delete
/api/v1/Calendar/Events/{outlookEventId}/Notes/{noteId}
DELETE /api/v1/Calendar/Events/{outlookEventId}/Notes/{noteId}
get
/api/v1/Calendar/Events/{outlookEventId}/Photos
GET /api/v1/Calendar/Events/{outlookEventId}/Photos
post
/api/v1/Calendar/Events/{outlookEventId}/Photos
POST /api/v1/Calendar/Events/{outlookEventId}/Photos
get
/api/v1/Calendar/Events/{outlookEventId}/Documents
GET /api/v1/Calendar/Events/{outlookEventId}/Documents
post
/api/v1/Calendar/Events/{outlookEventId}/Documents
POST /api/v1/Calendar/Events/{outlookEventId}/Documents
put
/api/v1/Calendar/Events/{outlookEventId}/Photos/{photoId}
PUT /api/v1/Calendar/Events/{outlookEventId}/Photos/{photoId}
delete
/api/v1/Calendar/Events/{outlookEventId}/Photos/{photoId}
DELETE /api/v1/Calendar/Events/{outlookEventId}/Photos/{photoId}
delete
/api/v1/Calendar/Events/{outlookEventId}/Documents/{docId}
DELETE /api/v1/Calendar/Events/{outlookEventId}/Documents/{docId}
get
/api/v1/Calendar/Search/Jobs
get
/api/v1/Calendar/Projects/{projectId}/Jobs
get
/api/v1/Calendar/Search/Projects
get
/api/v1/Calendar/Search/Contacts
get
/api/v1/Calendar/Search/ReferringEntities
get
/api/v1/Calendar/Search/Accounts
post
/api/v1/Calendar/AssociationEmails
post
/api/v1/Calendar/AssociationLossInstruction
get
/api/v1/Calendar/Events
GET /api/v1/Calendar/Events Returns canonical calendar events for all linked users in the date range. Each event includes an Attendees array (all P2 users who have this event in their calendar).
post
/api/v1/Calendar/Events
POST /api/v1/Calendar/Events Creates a new event in Outlook and caches it locally.
get
/api/v1/Calendar/Events/ByOutlookIds
GET /api/v1/Calendar/Events/ByOutlookIds Returns canonical events for specific Outlook IDs (incremental SignalR refresh).
get
/api/v1/Calendar/Events/ByAssociation
GET /api/v1/Calendar/Events/ByAssociation Returns calendar events linked to a single P2 entity via CalendarEventMetadata.
post
/api/v1/Calendar/Events/{outlookEventId}/Respond
POST /api/v1/Calendar/Events/{outlookEventId}/Respond Accepts, tentatively accepts, or declines a meeting invite on the logged-in user's calendar.
post
/api/v1/Calendar/Events/CheckConflicts
POST /api/v1/Calendar/Events/CheckConflicts Scans for events that overlap the proposed time window for each requested user. Used by the create/edit modals to warn about double-booking before saving.
get
/api/v1/Calendar/Events/{outlookEventId}/Metadata
GET /api/v1/Calendar/Events/{outlookEventId}/Metadata Returns P2-specific metadata for an event.
put
/api/v1/Calendar/Events/{outlookEventId}/Metadata
PUT /api/v1/Calendar/Events/{outlookEventId}/Metadata
post
/api/v1/Calendar/Events/{outlookEventId}/AttachmentLink
POST /api/v1/Calendar/Events/{outlookEventId}/AttachmentLink Link this appointment to another so notes/photos/documents are shared.
delete
/api/v1/Calendar/Events/{outlookEventId}/AttachmentLink
DELETE /api/v1/Calendar/Events/{outlookEventId}/AttachmentLink Unlink this appointment from shared notes/photos/documents.
get
/api/v1/Calendar/Events/{outlookEventId}/SyncState
GET /api/v1/Calendar/Events/{outlookEventId}/SyncState Lightweight version stamp for edit-modal stale detection.
get
/api/v1/Calendar/Events/RecentCopySource
GET /api/v1/Calendar/Events/RecentCopySource Returns the current user's most recently P2-created appointment as a copy template.
put
/api/v1/Calendar/Events/{outlookEventId}
PUT /api/v1/Calendar/Events/{outlookEventId} Updates an existing Outlook event and refreshes the local cache.
delete
/api/v1/Calendar/Events/{outlookEventId}
DELETE /api/v1/Calendar/Events/{outlookEventId} Soft-deletes in P2 (keeps row/links/history) and removes from Outlook when synced.
post
/api/v1/Calendar/Events/{outlookEventId}/Restore
POST /api/v1/Calendar/Events/{outlookEventId}/Restore Restores a soft-deleted appointment (optional versionId) and recreates/updates Outlook.
post
/api/v1/Calendar/Events/{outlookEventId}/RestoreVersion/{versionId}
POST /api/v1/Calendar/Events/{outlookEventId}/RestoreVersion/{versionId} Restores appointment fields (and Outlook) to a prior snapshot.
post
/api/v1/Calendar/Users/{userId}/Sync
POST /api/v1/Calendar/Users/{userId}/Sync Syncs one user's Outlook calendar into the canonical event store. Window: 1st of current month UTC through Graph's max calendarView range (~5 years forward).
post
/api/v1/Calendar/Users/{userId}/LinkJobsFromTitles
POST /api/v1/Calendar/Users/{userId}/LinkJobsFromTitles Links this user's already-synced Outlook appointments to an existing P2 job when the title contains an unbroken run of exactly five digits. Appointments that already have a job are left alone.
post
/api/v1/Calendar/Users/{userId}/ApplySyncAppointmentType
POST /api/v1/Calendar/Users/{userId}/ApplySyncAppointmentType Assigns the user's saved Outlook sync appointment type to already-synced appointments that do not already have a type.
post
/api/v1/Calendar/Users/{userId}/Subscribe
POST /api/v1/Calendar/Users/{userId}/Subscribe Creates a Graph webhook subscription for a user's calendar.
delete
/api/v1/Calendar/Users/{userId}/Subscribe
DELETE /api/v1/Calendar/Users/{userId}/Subscribe
get
/api/v1/Calendar/Users/{userId}/Status
GET /api/v1/Calendar/Users/{userId}/Status
get
/api/v1/Calendar/UsersStatus
GET /api/v1/Calendar/UsersStatus
get
/api/v1/Calendar/Webhook
POST /api/v1/Calendar/Webhook Receives Microsoft Graph change notifications.
post
/api/v1/Calendar/Webhook
POST /api/v1/Calendar/Webhook Receives Microsoft Graph change notifications.
post
/api/v1/Calendar/BulkLinkByEmail
POST /api/v1/Calendar/BulkLinkByEmail
post
/api/v1/Calendar/DeduplicateEvents
POST /api/v1/Calendar/DeduplicateEvents Cleans up orphaned canonical events (no junction rows) — only needed after data migrations or bugs.
post
/api/v1/Calendar/ClearLocalCalendarData
POST /api/v1/Calendar/ClearLocalCalendarData Deletes locally cached calendar data so admins can force a fresh sync without unlinking accounts.
post
/api/v1/Calendar/Users/{userId}/RemoveFromAppointments
POST /api/v1/Calendar/Users/{userId}/RemoveFromAppointments Removes this person from every P2 appointment. Appointments that then have nobody left are soft-deleted. Shared appointments stay for the other people. Outlook and the Microsoft link are left alone.
post
/api/v1/Calendar/Users/{userId}/ClearLocalEvents
POST /api/v1/Calendar/Users/{userId}/ClearLocalEvents Deletes one user's cached calendar rows from P2. Outlook, the Microsoft link, and the webhook are left alone. Events other employees are also assigned to stay in P2 for those employees.
post
/api/v1/Calendar/BulkSubscribe
POST /api/v1/Calendar/BulkSubscribe
post
/api/v1/Calendar/BulkUnsubscribe
POST /api/v1/Calendar/BulkUnsubscribe Removes all locally stored Graph webhook subscriptions and attempts to delete them remotely.
post
/api/v1/Calendar/BulkSync
POST /api/v1/Calendar/BulkSync Queues a mailbox pull for every active linked user. Pulls run one at a time.
get
/api/v1/Calendar/Types
GET /api/v1/Calendar/Types
get
/api/v1/Calendar/JobTimelineSync/Preview
GET /api/v1/Calendar/JobTimelineSync/Preview
post
/api/v1/Calendar/JobTimelineSync/Apply
POST /api/v1/Calendar/JobTimelineSync/Apply
get
/api/v1/Calendar/LinkedUsers
GET /api/v1/Calendar/LinkedUsers Returns users who have a usable Microsoft account link. Pass includeUnlinked=true to also include active users without Outlook (for organizer picker).
get
/api/v1/Calendar/Teams
GET /api/v1/Calendar/Teams Active teams for appointment tagging.
get
/api/v1/Calendar/Users/{userId}/DefaultTeam
GET /api/v1/Calendar/Users/{userId}/DefaultTeam Returns the first active team for an organizer (for auto-select).
get
/api/v1/Calendar/Users/{userId}/Teams
GET /api/v1/Calendar/Users/{userId}/Teams Returns all active teams for an organizer (for auto-select).
get
/api/v1/Calendar/Settings
GET /api/v1/Calendar/Settings Calendar UI constants for the SPA.
get
/api/v1/Calendar/FilterPresets
GET /api/v1/Calendar/FilterPresets
post
/api/v1/Calendar/FilterPresets
POST /api/v1/Calendar/FilterPresets
put
/api/v1/Calendar/FilterPresets/{id}
PUT /api/v1/Calendar/FilterPresets/{id}
delete
/api/v1/Calendar/FilterPresets/{id}
DELETE /api/v1/Calendar/FilterPresets/{id}
put
/api/v1/Calendar/FilterPresets/{id}/SetDefault
PUT /api/v1/Calendar/FilterPresets/{id}/SetDefault
put
/api/v1/Calendar/FilterPresets/SetDefaultBuiltin
PUT /api/v1/Calendar/FilterPresets/SetDefaultBuiltin
delete
/api/v1/Calendar/FilterPresets/Default
DELETE /api/v1/Calendar/FilterPresets/Default
put
/api/v1/Calendar/FilterPresets/SetDefaultViewClaim
PUT /api/v1/Calendar/FilterPresets/SetDefaultViewClaim The signed-in user's favorite assigned view. Clears preset and built-in favorites.
post
/api/v1/Calendar/Admin/AppointmentTeams/Clear
POST /api/v1/Calendar/Admin/AppointmentTeams/Clear Removes every team tag from occurrence and series appointments. Outlook is not changed.
post
/api/v1/Calendar/Admin/AppointmentTeams/Reapply
POST /api/v1/Calendar/Admin/AppointmentTeams/Reapply Tags appointments organized or assigned to users with TagAppointmentsWithUserTeams, using only those users' AllowOnCalendar teams.
get
/api/v1/Calendar/Admin/Settings
put
/api/v1/Calendar/Admin/Settings/GeneralOrganizer
put
/api/v1/Calendar/Admin/Settings/OutlookOriginEditPolicy
put
/api/v1/Calendar/Admin/Settings/Integration
get
/api/v1/Calendar/Admin/ViewClaims
post
/api/v1/Calendar/Admin/ViewClaims
put
/api/v1/Calendar/Admin/ViewClaims/{id}
delete
/api/v1/Calendar/Admin/ViewClaims/{id}
get
/api/v1/Calendar/Admin/Audit
GET /api/v1/Calendar/Admin/Audit Finds calendar data mismatches (orphaned events, metadata drift, sync-block inconsistencies).
post
/api/v1/Calendar/Admin/Audit/Resolve
POST /api/v1/Calendar/Admin/Audit/Resolve Deletes orphaned calendar rows/metadata flagged by the audit.
get
/api/v1/Calendar/Events/{outlookEventId}/History
GET /api/v1/Calendar/Events/{outlookEventId}/History
CalendarEventType
5
Category
5
Channel
11
Contact
38
ContactType
6
CopyJobException
4
CustomerPortal
65
Dashboard
29
Division
6
EntityDocuments
9
EntityPhotos
7
Equipment
23
EspJob
18
EspRequest
17
ESPSetup
8
ExternalAuth
2
ExternalPayment
14
FieldDocumentation
7
FingerprintAnalysis
8
FTPRPApproval
12
FTPRPHeaders
9
FTPRPJob
2
FTPRPLines
8
Hobbies
5
HurricaneScopeSheet
4
IntegrationLog
2
InvoicePayment
20
Job
166
JobElement
10
JobHistory
3
JobInactivateReview
4
JobNotice
19
JobPhase
7
JobPhoto
4
JobReferral
17
JobStatus
7
JobType
20
LoginHistory
8
MagicPlanWebhook
4
Note
6
Notification
29
Payment
4
PaymentSettings
6
PaymentSystemSettings
4
Project
52
ProjectReferral
4
ReasonCode
8
Reconcile
8
RefContactClass
5
RefEntityAdminAssignment
2
ReferrersApi
58
ReferringEntitiesHierarchy
3
ReferringEntityClass
5
ReferringEntityRelationships
8
ReferringEntityTypes
5
Reporting
26
ReviewDryLog
3
Role
14
StripeWebhook
2
SubChannel
5
SubJobType
6
SupplyUsage
7
Team
13
TeamPosition
5
TempWorkerSignIns
7
TempWorkerTimeEntries
12
TimeApproval
10
TimeEntry
9
TwilioSms
1
UserPreference
11
Vendors
2
VideoProcessing
3
Videos
14
Xactimate
20
Calendar
Copy
Copy Markdown
Copy Markdown
Copying…
Copied
Copy failed
Changes to DELETE /api/v1/Calendar/Events/{outlookEventId}/AttachmentLink Unlink this appointment from shared notes/photos/documents.
delete
/api/v1/Calendar/Events/{outlookEventId}/AttachmentLink
Nov 5, 2026
4c0bae8fd62a
Revision changes
info
endpoint added