> ## 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.

# Tác vụ theo lịch trình

> Tự động hóa công việc định kỳ—chạy các tác vụ theo lịch trình hoặc vào những thời điểm cụ thể

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>;
};

Tác vụ theo lịch trình cho phép bạn tự động hóa công việc định kỳ bằng cách để Manus thực hiện các tác vụ theo lịch trình. Thiết lập một lần, và Manus sẽ tự động xử lý—báo cáo hàng ngày, nghiên cứu hàng tuần, phân tích hàng tháng, hoặc bất kỳ quy trình làm việc định kỳ nào.

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

## Bắt đầu nhanh

### Tác vụ một lần

<CodePrompt>
  "Chạy tác vụ này vào 9 giờ sáng mai: Nghiên cứu tin tức AI hàng đầu trong 24 giờ qua
  và gửi email cho tôi bản tóm tắt"
</CodePrompt>

### Tác vụ định kỳ

<CodePrompt>
  "Mỗi thứ Hai lúc 8 giờ sáng, nghiên cứu 5 đối thủ cạnh tranh hàng đầu của chúng tôi và gửi cho tôi
  tóm tắt về bất kỳ cập nhật sản phẩm hoặc tin tức nào từ tuần trước"
</CodePrompt>

### Lịch trình phức tạp

<CodePrompt>
  "Vào ngày 1 hàng tháng, phân tích dữ liệu lưu lượng truy cập trang web của chúng tôi,
  tạo báo cáo với những hiểu biết chính, và đăng nó lên cơ sở dữ liệu Notion của chúng tôi
</CodePrompt>

## Khi nào nên sử dụng Tác vụ theo lịch trình

Sử dụng cho:

* **Nghiên cứu định kỳ** (tóm tắt tin tức hàng ngày, cập nhật đối thủ cạnh tranh hàng tuần)
* **Báo cáo thường xuyên** (phân tích hàng tháng, tóm tắt hiệu suất hàng tuần)
* **Thu thập dữ liệu định kỳ** (cào giá, theo dõi đề cập)
* **Giám sát tự động** (kiểm tra cập nhật, theo dõi thay đổi)

Không sử dụng cho:

* Các tác vụ một lần bạn cần ngay lập tức (chỉ cần chạy chúng bình thường)
* Giám sát thời gian thực (tác vụ theo lịch trình chạy vào những thời điểm cụ thể, không liên tục)

## Ví dụ nhanh

### Ví dụ 1: Bản tin tóm tắt hàng ngày

<CodePrompt>
  "Mỗi ngày làm việc lúc 7 giờ sáng, nghiên cứu tin tức ngành AI từ 24 giờ qua.
  Tập trung vào: thông báo tài trợ, ra mắt sản phẩm và quan hệ đối tác lớn.
  Gửi email cho tôi bản tóm tắt 5 điểm."
</CodePrompt>

**Lịch trình**: Hàng ngày lúc 7 giờ sáng (chỉ các ngày làm việc)

**Đầu ra**: Email với bản tóm tắt tin tức được chọn lọc

### Ví dụ 2: Theo dõi đối thủ cạnh tranh hàng tuần

<CodePrompt>
  "Mỗi thứ Sáu lúc 5 giờ chiều, kiểm tra 10 đối thủ cạnh tranh này xem có: bài đăng blog mới,
  cập nhật sản phẩm, thay đổi giá cả và thông báo tuyển dụng không. Tạo bảng so sánh
  và lưu vào Google Drive."
</CodePrompt>

**Lịch trình**: Hàng tuần (Thứ Sáu lúc 5 giờ chiều)

**Đầu ra**: Bảng so sánh trong Google Drive

### Ví dụ 3: Báo cáo phân tích hàng tháng

<CodePrompt>
  "Vào ngày 1 hàng tháng, phân tích lưu lượng truy cập trang web của tháng trước.
  Tạo một bản trình chiếu với: xu hướng khách truy cập, các trang hàng đầu, nguồn lưu lượng truy cập,
  và thông tin chi tiết quan trọng. Đăng lên Slack #marketing."
</CodePrompt>

**Schedule**: Hàng Monthly (Ngày 1 lúc 9 AM)

**Output**: Bản trình chiếu được đăng lên Slack

## Cách thiết lập

**Bước 1: Mô tả task** Hãy cụ thể về những gì bạn muốn Manus thực hiện.

**Bước 2: Chỉ định Schedule**

* "Mỗi ngày lúc 9 AM"
* "Mỗi thứ Hai lúc 8 AM"
* "Vào ngày 1 hàng Monthly"
* "Mỗi ngày trong tuần lúc 7 AM"
* "Ngày mai lúc 3 PM" (một lần)

**Bước 3: Xác định đầu ra**

* Gửi kết quả qua email cho bạn
* Đăng lên kênh Slack
* Lưu vào Google Drive
* Cập nhật bảng tính
* Gửi qua connector

## Tùy chọn Schedule

| Loại Schedule       | Ví dụ                            | Trường hợp sử dụng                              |
| :------------------ | :------------------------------- | :---------------------------------------------- |
| **Hàng ngày**       | "Mỗi ngày lúc 9 AM"              | Tóm tắt tin tức, chỉ số hàng ngày               |
| **Ngày trong tuần** | "Mỗi ngày trong tuần lúc 8 AM"   | Báo cáo kinh doanh, cập nhật công việc          |
| **Hàng tuần**       | "Mỗi thứ Hai lúc 10 AM"          | Đánh giá hàng tuần, theo dõi đối thủ cạnh tranh |
| **Hàng Monthly**    | "Vào ngày 1 lúc 9 AM"            | Báo cáo Monthly, phân tích Billing              |
| **Tùy chỉnh**       | "Mỗi thứ Ba và thứ Năm lúc 2 PM" | Nhu cầu lặp lại cụ thể                          |
| **Một lần**         | "Ngày mai lúc 3 PM"              | Thực hiện trì hoãn                              |

## Manage Scheduled tasks

**Xem các Schedule đang hoạt động**: Điều hướng đến Settings → Scheduled tasks để xem tất cả các Schedule đang hoạt động.

**Tạm dừng một Schedule**: Tắt bất kỳ Schedule nào tạm thời mà không cần xóa nó.

**Chỉnh sửa một Schedule**: Sửa đổi thời gian, mô tả task hoặc phương thức đầu ra.

**Xóa một Schedule**: Xóa các Schedule mà bạn không cần nữa.

**Xem lịch sử thực hiện**: Xem các lần chạy trước, kết quả và mọi lỗi.

## Mẹo để có Scheduled tasks tốt hơn

**Cụ thể về thời gian**:

* ✅ "Mỗi ngày trong tuần lúc 8 AM EST"
* ❌ "Vào buổi sáng"

**Xác định đầu ra rõ ràng**:

* ✅ "Gửi email cho tôi bản tóm tắt 5 gạch đầu dòng"
* ✅ "Đăng lên kênh Slack #team"
* ❌ "Hãy cho tôi biết những gì bạn tìm thấy"

**Bao gồm phạm vi thời gian cho nghiên cứu**:

* ✅ "Tin tức từ 24 giờ qua"
* ✅ "Cập nhật từ tuần trước"
* ❌ "Tin tức gần đây" (mơ hồ)

**Kiểm tra trước khi lên lịch**:

* Trước tiên hãy chạy thử nhiệm vụ theo cách thủ công để đảm bảo nó hoạt động như mong đợi
* Sau đó thiết lập lịch trình

## Các Trường Hợp Sử Dụng Nhanh

| Trường Hợp Sử Dụng              | Lịch Trình                     | Đầu Ra                |
| :------------------------------ | :----------------------------- | :-------------------- |
| **Giám sát Tin tức**            | Hàng ngày 7 giờ sáng           | Tóm tắt qua email     |
| **Theo dõi Đối thủ cạnh tranh** | Hàng tuần Thứ Sáu 5 giờ chiều  | Báo cáo Google Drive  |
| **Giám sát Mạng xã hội**        | Hàng ngày 9 giờ sáng           | Thông báo Slack       |
| **Báo cáo Phân tích**           | Ngày 1 Hàng tháng              | Bộ slide              |
| **Theo dõi Giá**                | Hàng ngày 6 giờ sáng           | Cập nhật bảng tính    |
| **Tuyển chọn Nội dung**         | Các ngày trong tuần 8 giờ sáng | Bản tóm tắt qua email |

## Câu Hỏi Thường Gặp

<AccordionGroup>
  <Accordion title="Điều gì xảy ra nếu một nhiệm vụ đã lên lịch thất bại?">
    Manus sẽ thông báo cho bạn và ghi lại lỗi. Bạn có thể xem xét vấn đề và điều chỉnh nhiệm vụ.
  </Accordion>

  <Accordion title="Tôi có thể chạy một nhiệm vụ ngay lập tức và đồng thời lên lịch cho nó không?">
    Có. Chạy nó ngay bây giờ để kiểm tra, sau đó thiết lập lịch trình định kỳ.
  </Accordion>

  <Accordion title="Lịch trình sử dụng múi giờ nào">
    Múi giờ tài khoản của bạn (được đặt trong Cài đặt). Bạn có thể chỉ định múi giờ trong lịch trình: "9 AM EST"
  </Accordion>

  <Accordion title="Tôi có thể có bao nhiêu nhiệm vụ đã lên lịch?">
    Tùy thuộc vào gói của bạn. Kiểm tra Cài đặt → Nhiệm vụ đã lên lịch để biết giới hạn của bạn.
  </Accordion>

  <Accordion title="Tôi có thể lên lịch cho các nhiệm vụ Nghiên cứu Rộng rãi không?">
    Có. Bất kỳ nhiệm vụ nào Manus có thể thực hiện đều có thể được lên lịch.
  </Accordion>
</AccordionGroup>

***
