> ## Documentation Index
> Fetch the complete documentation index at: https://manus.im/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# 예약된 작업

> 반복 작업을 자동화하세요—예약 또는 특정 시간에 작업 실행

export const CodePrompt = ({children}) => {
  const [isCopied, setIsCopied] = useState(false);
  const textContent = useMemo(() => {
    const extractText = (children, depth = 0) => {
      const maxDepth = 10;
      if (depth > maxDepth) return '';
      if (children == null) return '';
      if (typeof children === 'string' || typeof children === 'number') {
        return String(children);
      }
      if (Array.isArray(children)) {
        return children.map(child => extractText(child, depth + 1)).join('');
      }
      if (typeof children === 'object' && children.props) {
        return extractText(children.props.children, depth + 1);
      }
      return '';
    };
    return extractText(children);
  }, [children]);
  const handleAskManus = useCallback(() => {
    const url = new URL('https://manus.im');
    if (textContent) {
      url.searchParams.set('q', textContent);
      url.searchParams.set('submit', '1');
    }
    window.open(url.toString(), '_blank');
  }, [textContent]);
  const handleCopy = useCallback(async () => {
    try {
      await navigator.clipboard.writeText(textContent);
      setIsCopied(true);
      setTimeout(() => {
        setIsCopied(false);
      }, 2000);
    } catch (err) {
      const textArea = document.createElement('textarea');
      textArea.value = textContent;
      textArea.style.position = 'fixed';
      textArea.style.opacity = '0';
      document.body.appendChild(textArea);
      textArea.select();
      try {
        document.execCommand('copy');
        setIsCopied(true);
        setTimeout(() => {
          setIsCopied(false);
        }, 2000);
      } catch (fallbackErr) {
        console.error(fallbackErr);
      }
      document.body.removeChild(textArea);
    }
  }, [textContent]);
  return <div className="code-block mt-5 mb-8 not-prose rounded-2xl relative group text-gray-950 dark:text-gray-50 codeblock-light border border-gray-950/10 dark:border-white/10 dark:twoslash-dark bg-transparent dark:bg-transparent">
      <div className="absolute top-3 right-4 flex items-center gap-1.5">
        <div className="z-10 relative">
          <button onClick={handleCopy} className="h-[26px] w-[26px] flex items-center justify-center rounded-md backdrop-blur peer group/copy-button " data-testid="copy-code-button" aria-label="Copy the contents from the code block">
            {isCopied ? <svg width="16" height="11" viewBox="0 0 16 11" fill="none" xmlns="http://www.w3.org/2000/svg" class="fill-primary dark:fill-primary-light">
                <path d="M14.7813 1.21873C15.0751 1.51248 15.0751 1.98748 14.7813 2.2781L6.53135 10.5312C6.2376 10.825 5.7626 10.825 5.47197 10.5312L1.21885 6.28123C0.925098 5.98748 0.925098 5.51248 1.21885 5.22185C1.5126 4.93123 1.9876 4.9281 2.27822 5.22185L5.99697 8.9406L13.7188 1.21873C14.0126 0.924976 14.4876 0.924976 14.7782 1.21873H14.7813Z"></path>
              </svg> : <svg width="18" height="18" viewBox="0 0 18 18" fill="none" xmlns="http://www.w3.org/2000/svg" className="w-4 h-4 text-gray-400 group-hover/copy-button:text-gray-500 dark:text-white/40 dark:group-hover/copy-button:text-white/60">
                <path d="M14.25 5.25H7.25C6.14543 5.25 5.25 6.14543 5.25 7.25V14.25C5.25 15.3546 6.14543 16.25 7.25 16.25H14.25C15.3546 16.25 16.25 15.3546 16.25 14.25V7.25C16.25 6.14543 15.3546 5.25 14.25 5.25Z" stroke="currentColor" strokeWidth="1.5" strokeLinecap="round" strokeLinejoin="round"></path>
                <path d="M2.80103 11.998L1.77203 5.07397C1.61003 3.98097 2.36403 2.96397 3.45603 2.80197L10.38 1.77297C11.313 1.63397 12.19 2.16297 12.528 3.00097" stroke="currentColor" strokeWidth="1.5" strokeLinecap="round" strokeLinejoin="round"></path>
              </svg>}
          </button>
          <div aria-hidden="true" className="absolute top-11 left-1/2 transform whitespace-nowrap -translate-x-1/2 -translate-y-1/2 peer-hover:opacity-100 opacity-0 text-white rounded-lg px-1.5 py-0.5 text-xs bg-primary-dark">
            {isCopied ? 'Copied' : 'Copy'}
          </div>
        </div>
        <div className="z-10 relative">
          <button onClick={handleAskManus} className="h-[26px] w-[26px] flex items-center justify-center rounded-md backdrop-blur peer group/ask-manus " id="ask-ai-code-block-button" aria-label="Ask Manus">
            <svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" className="w-4 h-4 text-gray-400 group-hover/ask-manus:text-gray-500 dark:text-white/40 dark:group-hover/ask-manus:text-white/60">
              <path d="M22 17a2 2 0 0 1-2 2H6.828a2 2 0 0 0-1.414.586l-2.202 2.202A.71.71 0 0 1 2 21.286V5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2z" />
              <path d="M12 8v6" />
              <path d="M9 11h6" />
            </svg>
          </button>
          <div aria-hidden="true" className="absolute top-11 left-1/2 transform whitespace-nowrap -translate-x-1/2 -translate-y-1/2 peer-hover:opacity-100 opacity-0 text-white rounded-lg px-1.5 py-0.5 text-xs bg-primary-dark">
            Ask Manus
          </div>
        </div>
      </div>

      <div className="w-0 min-w-full max-w-full py-3.5 px-4 h-full dark:bg-codeblock relative text-sm leading-6 children:!my-0 children:!shadow-none children:!bg-transparent transition-[height] duration-300 ease-in-out code-block-background [&_*]:ring-0 [&_*]:outline-0 [&_*]:focus:ring-0 [&_*]:focus:outline-0 [&_pre>code]:pr-[3rem] [&_pre>code>span.line-highlight]:min-w-[calc(100%+3rem)] [&_pre>code>span.line-diff]:min-w-[calc(100%+3rem)] rounded-2xl bg-white overflow-x-auto scrollbar-thin scrollbar-thumb-rounded scrollbar-thumb-black/15 hover:scrollbar-thumb-black/20 active:scrollbar-thumb-black/20 dark:scrollbar-thumb-white/20 dark:hover:scrollbar-thumb-white/25 dark:active:scrollbar-thumb-white/25" style={{
    fontVariantLigatures: 'none',
    height: 'auto',
    backgroundColor: 'rgb(255, 255, 255)'
  }}>
        <div className="font-mono whitespace-pre leading-6">{children}</div>
      </div>
    </div>;
};

예약된 작업은 Manus가 예약에 따라 작업을 실행하도록 하여 반복 작업을 자동화할 수 있게 합니다. 한 번 설정하면 Manus가 자동으로 처리합니다—일일 보고서, 주간 연구, 월간 분석 또는 기타 반복되는 워크플로.

<iframe src="https://www.youtube.com/embed/X1z7ZgXm1Lo" title="YouTube video player" frameborder="0" className="w-full aspect-video rounded-xl" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen />

## 빠른 시작

### 일회성 작업

<CodePrompt>
  "내일 오전 9시에 이 작업을 실행하세요: 지난 24시간 동안의 주요 AI 뉴스 연구
  및 요약을 이메일로 보내주세요"
</CodePrompt>

### 반복 작업

<CodePrompt>
  "매주 월요일 오전 8시에 상위 5개 경쟁사를 연구하고 저에게
  지난 주 제품 업데이트 또는 뉴스 요약을 보내주세요"
</CodePrompt>

### 복잡한 일정

<CodePrompt>
  "매월 1일에 웹사이트 트래픽 데이터를 분석하고,
  주요 통찰력이 포함된 보고서를 만들고 Notion 데이터베이스에 게시하세요
</CodePrompt>

## 예약된 작업 사용 시점

사용 대상:

* **반복적인 연구** (일일 뉴스 요약, 주간 경쟁사 업데이트)
* **정기 보고서** (월간 분석, 주간 성과 요약)
* **주기적인 데이터 수집** (가격 스크래핑, 언급 추적)
* **자동화된 모니터링** (업데이트 확인, 변경 사항 추적)

사용하지 않는 대상:

* 지금 당장 필요한 일회성 작업 (그냥 정상적으로 실행하세요)
* 실시간 모니터링 (예약된 작업은 특정 시간에 실행되며 지속적으로 실행되지 않습니다)

## 빠른 예시

### 예시 1: 일일 뉴스 요약

<CodePrompt>
  "매주 평일 오전 7시에 지난 24시간 동안의 AI 산업 뉴스를 연구하세요.
  초점: 자금 조달 발표, 제품 출시 및 주요 파트너십.
  5가지 요약 목록을 이메일로 보내주세요."
</CodePrompt>

**계획**: 매일 오전 7시 (평일만)

**출력**: 선별된 뉴스 요약이 포함된 이메일

### 예시 2: 주간 경쟁사 추적

<CodePrompt>
  "매주 금요일 오후 5시에 이 10개 경쟁사에서 다음을 확인하세요: 새 블로그 게시물,
  제품 업데이트, 가격 변경 및 채용 공고. 비교
  테이블을 만들고 Google Drive에 저장하세요."
</CodePrompt>

**계획**: 매주 (금요일 오후 5시)

**출력**: Google Drive의 비교 테이블

### 예시 3: 월간 분석 보고서

<CodePrompt>
  "매월 1일에 지난달 웹사이트 트래픽을 분석하세요.
  방문자 추이, 인기 페이지, 트래픽 소스 및
  핵심 통찰력을 담은 슬라이드 덱을 만듭니다. Slack #marketing에 게시합니다."
</CodePrompt>

**일정**: 매월 (매월 1일 오전 9시)

**출력**: Slack에 게시된 슬라이드 덱

## 설정 방법

**단계 1: 작업 설명** Manus가 수행하기를 원하는 작업을 구체적으로 명시하세요.

**단계 2: 일정 지정**

* "매일 오전 9시"
* "매주 월요일 오전 8시"
* "매월 1일"
* "매주 평일 오전 7시"
* "내일 오후 3시" (일회성)

**단계 3: 출력 정의**

* 결과를 이메일로 보내기
* Slack 채널에 게시
* Google Drive에 저장
* 스프레드시트 업데이트
* 연결기를 통해 전송

## 일정 옵션

| 일정 유형      | 예시                  | 사용 사례           |
| :--------- | :------------------ | :-------------- |
| **매일**     | "매일 오전 9시"          | 뉴스 요약, 일일 지표    |
| **평일**     | "매주 평일 오전 8시"       | 업무 보고서, 작업 업데이트 |
| **매주**     | "매주 월요일 오전 10시"     | 주간 검토, 경쟁사 추적   |
| **매월**     | "매월 1일 오전 9시"       | 월간 보고서, 청구 분석   |
| **사용자 지정** | "매주 화요일과 목요일 오후 2시" | 특정 반복 요구 사항     |
| **일회성**    | "내일 오후 3시"          | 지연 실행           |

## 예약된 작업 관리

**활성 일정 보기**: 설정 → 예약된 작업으로 이동하여 모든 활성 일정을 확인합니다.

**일시 중지**: 일정을 삭제하지 않고 일시적으로 비활성화합니다.

**일정 편집**: 시간, 작업 설명 또는 출력 방법을 수정합니다.

**일정 삭제**: 더 이상 필요하지 않은 일정을 제거합니다.

**실행 기록 보기**: 과거 실행, 결과 및 오류를 확인합니다.

## 더 나은 예약된 작업을 위한 팁

**시간을 구체적으로 지정**:

* ✅ "매주 평일 오전 8시(EST)"
* ❌ "오전에"

**명확한 출력 정의**:

* ✅ "5가지 핵심 요약을 이메일로 보내주세요"
* ✅ "Slack #team 채널에 게시"
* ❌ "찾은 내용을 알려주세요"

**조사 대상 시간 범위 포함**:

* ✅ "지난 24시간 동안의 뉴스"
* ✅ "지난 주 이후의 업데이트"
* ❌ "최근 뉴스" (모호함)

**예약 전 테스트**:

* 예상대로 작동하는지 확인하기 위해 먼저 작업을 수동으로 실행
* 그런 다음 계획을 설정

## 빠른 사용 사례

| 사용 사례           | 계획           | 출력               |
| :-------------- | :----------- | :--------------- |
| **뉴스 모니터링**     | 매일 오전 7시     | 이메일 요약           |
| **경쟁사 추적**      | 매주 금요일 오후 5시 | Google Drive 보고서 |
| **소셜 미디어 모니터링** | 매일 오전 9시     | Slack 알림         |
| **분석 보고서**      | 매월 1일        | 슬라이드 자료          |
| **가격 추적**       | 매일 오전 6시     | 스프레드시트 업데이트      |
| **콘텐츠 큐레이션**    | 주중 오전 8시     | 이메일 다이제스트        |

## 일반적인 질문

<AccordionGroup>
  <Accordion title="예약된 작업이 실패하면 어떻게 되나요?">
    Manus가 사용자에게 알리고 오류를 기록합니다. 문제를 검토하고 작업을 조정할 수 있습니다.
  </Accordion>

  <Accordion title="작업을 즉시 실행하고 동시에 예약할 수 있나요?">
    예. 지금 실행하여 테스트한 다음 반복 계획을 설정하세요.
  </Accordion>

  <Accordion title="계획의 시간대는 무엇인가요?">
    사용자 계정 시간대입니다 (설정에서 지정). 계획에서 시간대를 지정할 수 있습니다: "오전 9시 EST"
  </Accordion>

  <Accordion title="예약된 작업을 몇 개까지 가질 수 있나요?">
    사용자의 요금제에 따라 다릅니다. 제한 사항은 설정 → Scheduled Tasks에서 확인하세요.
  </Accordion>

  <Accordion title="Wide Research 작업을 예약할 수 있나요?">
    예. Manus가 수행할 수 있는 모든 작업은 예약할 수 있습니다.
  </Accordion>
</AccordionGroup>

***
