{
  "service": "sling",
  "displayName": "Sling",
  "categories": [
    "Productivity"
  ],
  "authTypes": [
    "api_key"
  ],
  "auth": [
    {
      "type": "api_key",
      "label": "Authorization Token",
      "placeholder": "SLING_AUTHORIZATION_TOKEN",
      "description": "Sling authorization token sent with the Authorization header. Sling's API docs describe this as the authorization token visible in request headers from a Sling client: https://api.getsling.com/."
    }
  ],
  "homepageUrl": "https://getsling.com",
  "actions": [
    {
      "id": "sling.get_current_session",
      "service": "sling",
      "name": "get_current_session",
      "description": "Retrieve the current Sling API session, including user and organization details.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {},
        "additionalProperties": false,
        "description": "No input is required."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "session": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "The Sling session record returned by the API."
          }
        },
        "additionalProperties": false,
        "description": "The current Sling session returned by the connector."
      }
    },
    {
      "id": "sling.get_current_shift",
      "service": "sling",
      "name": "get_current_shift",
      "description": "Retrieve the current shift for the connected Sling user.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {},
        "additionalProperties": false,
        "description": "No input is required."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "shift": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "The Sling shift record returned by the API."
          }
        },
        "additionalProperties": false,
        "description": "The Sling shift returned by the connector."
      }
    },
    {
      "id": "sling.get_detailed_shift",
      "service": "sling",
      "name": "get_detailed_shift",
      "description": "Retrieve supplementary details for one Sling shift.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "shiftId": {
            "anyOf": [
              {
                "type": "integer",
                "minimum": 1,
                "description": "A numeric Sling shift identifier."
              },
              {
                "type": "string",
                "minLength": 1,
                "description": "A string Sling shift identifier."
              }
            ],
            "description": "The Sling shift identifier."
          }
        },
        "additionalProperties": false,
        "description": "Input parameters for a Sling shift-scoped request."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "shift": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "The Sling shift record returned by the API."
          }
        },
        "additionalProperties": false,
        "description": "The Sling shift returned by the connector."
      }
    },
    {
      "id": "sling.get_group",
      "service": "sling",
      "name": "get_group",
      "description": "Retrieve one Sling group by id.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "groupId": {
            "type": "integer",
            "minimum": 1,
            "description": "The Sling group identifier."
          }
        },
        "additionalProperties": false,
        "description": "Input parameters for retrieving one Sling group."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "group": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "The Sling group record returned by the API."
          }
        },
        "additionalProperties": false,
        "description": "The Sling group returned by the connector."
      }
    },
    {
      "id": "sling.get_next_shift",
      "service": "sling",
      "name": "get_next_shift",
      "description": "Retrieve the next shift for the connected Sling user.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "referenceDate": {
            "type": "string",
            "minLength": 1,
            "description": "Only return the first shift after this ISO timestamp."
          }
        },
        "additionalProperties": false,
        "description": "Input parameters for retrieving the next Sling shift for the current user."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "shift": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "The Sling shift record returned by the API."
          }
        },
        "additionalProperties": false,
        "description": "The Sling shift returned by the connector."
      }
    },
    {
      "id": "sling.get_shift",
      "service": "sling",
      "name": "get_shift",
      "description": "Retrieve one Sling shift by id.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "shiftId": {
            "type": "string",
            "minLength": 1,
            "description": "The Sling shift or event identifier."
          },
          "includeTimesheets": {
            "type": "string",
            "enum": [
              "true",
              "full"
            ],
            "description": "How much timesheet data Sling should include."
          }
        },
        "additionalProperties": false,
        "required": [
          "shiftId"
        ],
        "description": "Input parameters for retrieving one Sling shift."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "shift": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "The Sling shift record returned by the API."
          }
        },
        "additionalProperties": false,
        "description": "The Sling shift returned by the connector."
      }
    },
    {
      "id": "sling.get_task",
      "service": "sling",
      "name": "get_task",
      "description": "Retrieve one Sling task by id.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "taskId": {
            "type": "integer",
            "minimum": 1,
            "description": "The Sling task identifier."
          }
        },
        "additionalProperties": false,
        "description": "Input parameters for retrieving one Sling task."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "task": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "The Sling task record returned by the API."
          }
        },
        "additionalProperties": false,
        "description": "The Sling task returned by the connector."
      }
    },
    {
      "id": "sling.get_user",
      "service": "sling",
      "name": "get_user",
      "description": "Retrieve one Sling user by id.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "userId": {
            "type": "integer",
            "minimum": 1,
            "description": "The Sling user identifier."
          }
        },
        "additionalProperties": false,
        "description": "Input parameters for retrieving one Sling user."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "user": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "The Sling user record returned by the API."
          }
        },
        "additionalProperties": false,
        "description": "The Sling user returned by the connector."
      }
    },
    {
      "id": "sling.list_calendar_events",
      "service": "sling",
      "name": "list_calendar_events",
      "description": "List Sling calendar events for one user and organization within an ISO interval.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "orgId": {
            "type": "integer",
            "minimum": 1,
            "description": "The Sling organization identifier."
          },
          "userId": {
            "type": "integer",
            "minimum": 1,
            "description": "The Sling user identifier."
          },
          "dates": {
            "type": "string",
            "minLength": 1,
            "description": "The ISO 8601 interval to fetch, such as 2026-06-24/2026-06-30."
          },
          "locationIds": {
            "type": "array",
            "items": {
              "type": "integer",
              "minimum": 1,
              "description": "One Sling numeric identifier."
            },
            "description": "Sling location ids used to filter calendar events.",
            "minItems": 1
          },
          "positionIds": {
            "type": "array",
            "items": {
              "type": "integer",
              "minimum": 1,
              "description": "One Sling numeric identifier."
            },
            "description": "Sling position ids used to filter calendar events.",
            "minItems": 1
          },
          "tagIds": {
            "type": "array",
            "items": {
              "type": "integer",
              "minimum": 1,
              "description": "One Sling numeric identifier."
            },
            "description": "Sling tag ids used to include calendar events.",
            "minItems": 1
          },
          "excludeTagIds": {
            "type": "array",
            "items": {
              "type": "integer",
              "minimum": 1,
              "description": "One Sling numeric identifier."
            },
            "description": "Sling tag ids used to exclude calendar events.",
            "minItems": 1
          },
          "userIds": {
            "type": "array",
            "items": {
              "type": "integer",
              "minimum": 1,
              "description": "One Sling numeric identifier."
            },
            "description": "Sling user ids used to filter calendar events.",
            "minItems": 1
          },
          "groupIds": {
            "type": "array",
            "items": {
              "type": "integer",
              "minimum": 1,
              "description": "One Sling numeric identifier."
            },
            "description": "Sling group ids used to include calendar events.",
            "minItems": 1
          },
          "excludeGroupIds": {
            "type": "array",
            "items": {
              "type": "integer",
              "minimum": 1,
              "description": "One Sling numeric identifier."
            },
            "description": "Sling group ids used to exclude calendar events.",
            "minItems": 1
          },
          "dayPartIds": {
            "type": "array",
            "items": {
              "type": "integer",
              "minimum": 1,
              "description": "One Sling numeric identifier."
            },
            "description": "Sling day part ids used to include calendar events.",
            "minItems": 1
          },
          "excludeDayPartIds": {
            "type": "array",
            "items": {
              "type": "integer",
              "minimum": 1,
              "description": "One Sling numeric identifier."
            },
            "description": "Sling day part ids used to exclude calendar events.",
            "minItems": 1
          },
          "eventTypes": {
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1,
              "description": "One Sling filter value."
            },
            "description": "Sling event types to include.",
            "minItems": 1
          },
          "groupBy": {
            "type": "string",
            "minLength": 1,
            "description": "The Sling calendar grouping mode."
          },
          "pageSize": {
            "type": "integer",
            "minimum": 1,
            "description": "The number of calendar results to return."
          },
          "page": {
            "type": "integer",
            "minimum": 0,
            "description": "The zero-based calendar result page to return."
          },
          "skipUnscheduled": {
            "type": "boolean",
            "description": "Whether unscheduled shifts should be skipped."
          },
          "showPlanningEvents": {
            "type": "boolean",
            "description": "Whether planning status events should be included."
          }
        },
        "additionalProperties": false,
        "required": [
          "orgId",
          "userId",
          "dates"
        ],
        "description": "Input parameters for listing Sling calendar events for one user."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "events": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {},
              "additionalProperties": true,
              "description": "One Sling calendar event record."
            },
            "description": "The Sling calendar event records returned by the API."
          }
        },
        "additionalProperties": false,
        "description": "The Sling calendar events returned by the connector."
      }
    },
    {
      "id": "sling.list_groups",
      "service": "sling",
      "name": "list_groups",
      "description": "List Sling groups in the current organization with optional filters.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "ids": {
            "type": "array",
            "items": {
              "type": "integer",
              "minimum": 1,
              "description": "One Sling numeric identifier."
            },
            "description": "Only return Sling groups whose ids are in this list.",
            "minItems": 1
          },
          "type": {
            "type": "string",
            "minLength": 1,
            "description": "Only return groups with this Sling group type."
          }
        },
        "additionalProperties": false,
        "description": "Input parameters for listing Sling groups in the current organization."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "groups": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {},
              "additionalProperties": true,
              "description": "One Sling group record."
            },
            "description": "The Sling group records returned by the API."
          }
        },
        "additionalProperties": false,
        "description": "The Sling groups returned by the connector."
      }
    },
    {
      "id": "sling.list_shift_coworkers",
      "service": "sling",
      "name": "list_shift_coworkers",
      "description": "List coworkers for one Sling shift.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "shiftId": {
            "anyOf": [
              {
                "type": "integer",
                "minimum": 1,
                "description": "A numeric Sling shift identifier."
              },
              {
                "type": "string",
                "minLength": 1,
                "description": "A string Sling shift identifier."
              }
            ],
            "description": "The Sling shift identifier."
          }
        },
        "additionalProperties": false,
        "description": "Input parameters for a Sling shift-scoped request."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "coworkers": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {},
              "additionalProperties": true,
              "description": "One Sling coworker record."
            },
            "description": "The Sling coworker records returned by the API."
          }
        },
        "additionalProperties": false,
        "description": "The Sling shift coworkers returned by the connector."
      }
    },
    {
      "id": "sling.list_tasks",
      "service": "sling",
      "name": "list_tasks",
      "description": "List Sling tasks with optional type and cursor-like id filters.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "filter": {
            "type": "string",
            "minLength": 1,
            "description": "Only return tasks that belong to this Sling task type."
          },
          "since": {
            "type": "integer",
            "minimum": 1,
            "description": "Only return tasks with an id greater than this value."
          },
          "before": {
            "type": "integer",
            "minimum": 1,
            "description": "Only return tasks with an id less than this value."
          },
          "pageSize": {
            "type": "integer",
            "minimum": 1,
            "description": "The number of task results to return."
          }
        },
        "additionalProperties": false,
        "description": "Input parameters for listing Sling tasks."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "tasks": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {},
              "additionalProperties": true,
              "description": "One Sling task record."
            },
            "description": "The Sling task records returned by the API."
          }
        },
        "additionalProperties": false,
        "description": "The Sling tasks returned by the connector."
      }
    },
    {
      "id": "sling.list_users",
      "service": "sling",
      "name": "list_users",
      "description": "List Sling users in the current organization with optional filters.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "query": {
            "type": "string",
            "minLength": 1,
            "description": "Only return users with a matching prefix in name, lastname, or email."
          },
          "ids": {
            "type": "array",
            "items": {
              "type": "integer",
              "minimum": 1,
              "description": "One Sling numeric identifier."
            },
            "description": "Only return Sling users whose ids are in this list.",
            "minItems": 1
          },
          "includeDeleted": {
            "type": "boolean",
            "description": "Whether deleted users should be included."
          }
        },
        "additionalProperties": false,
        "description": "Input parameters for listing Sling users in the current organization."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "users": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {},
              "additionalProperties": true,
              "description": "One Sling user record."
            },
            "description": "The Sling user records returned by the API."
          }
        },
        "additionalProperties": false,
        "description": "The Sling users returned by the connector."
      }
    },
    {
      "id": "sling.list_working_users",
      "service": "sling",
      "name": "list_working_users",
      "description": "List Sling users working on a specific date.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "date": {
            "type": "string",
            "minLength": 1,
            "description": "The ISO date for the working-users query."
          }
        },
        "additionalProperties": false,
        "description": "Input parameters for listing users working on a day."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "users": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {},
              "additionalProperties": true,
              "description": "One Sling user record."
            },
            "description": "The Sling user records returned by the API."
          }
        },
        "additionalProperties": false,
        "description": "The Sling users returned by the connector."
      }
    }
  ]
}
